在矩阵乘法,为什么 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