在矩阵乘法,为什么 Matlab这么快?
下面是使用 MATLAB R2011a + 并行计算工具箱在一个带有特斯拉C2070的机器上的结果:
>> A = rand(1024); gA = gpuArray(A);
% warm up by executing the operations a couple of times, and then:
>> tic, C = A * A; toc
Elapsed time is 0.075396 seconds.
>> tic, gC = gA * gA; toc
Elapsed time is 0.008621 seconds.
对于矩阵乘法,MATLAB使用了高度优化的库,这就是为什么普通的MATLAB矩阵乘法是如此快速的原因。 gpuArray 版本使用岩浆 。
使用 R2014a K20c的机器更新,以及新的timeit 和 gputimeit 函数:
>> A = rand(1024); gA = gpuArray(A);
>> timeit(@()A*A)
ans =
0.0324
>> gputimeit(@()gA*gA)
ans =
0.0022
本文探讨了MATLAB中矩阵乘法的高效实现原理。通过使用高度优化的库,普通MATLAB矩阵乘法表现出极高的运行速度。进一步地,利用gpuArray及GPU加速,实现了比CPU更快的运算速度。
1326

被折叠的 条评论
为什么被折叠?



