确定可以轻松放入可用 RAM 的矩阵大小。例如,如果您有一台 4 GB 的机器,您应该能够轻松地存储一个占用大约 800 MB 的矩阵。将此值存储在变量
Mb中。使用以下信息计算可以存储在 Mb 兆字节内存中的最大矩阵维度 N。
一兆字节有
1024千字节一千字节是
1024字节一个浮点数是
8 bytes。
N × N矩阵包含N^2浮点数。调用您计算的 N
nmax。(b) 创建两个随机矩阵
A,B每个矩阵的大小为Nmax × Nmax。使用 MATLAB 函数tic和toc,确定计算乘积 所需的时间(秒)AB。Nmax × Nmax确定计算矩阵-矩阵乘积所需的浮点运算(加法和乘法)(2/3)n^3.的数量 使用此数字来估计您的计算机每秒可以执行的浮点运算(“触发器”)的数量。跟注这个翻牌率flops。
% Part A
nmax = sqrt((1600*1024*1024)/8); % 8GB of RAM
% Part B
A = (nmax:nmax);
B = (nmax:nmax);
tic
prod = A*B;
prod_time = toc
flops = (2/3)*(prod).^3
一切运行良好,但我觉得我没有为值A和B. 我究竟做错了什么?