如果你有一个与CUDA兼容的NVIDIA GPU并且安装了Parallel Computing Toolbox,你可以试试这个:
N = 1000000; M = 1000; I = ceil(M*gpuArray.rand(1,N)); J = ceil(M*gpuArray.rand(1,N)); R = gpuArray.randn(1,M); R1 = R(I); R2 = R(J); Q = exp(-(R1-R2).^2);
代码将在引擎盖上并行化,并在GPU上在数千个线程上执行。在我的机器上(CPU Xeon E5-2665,GPU Tesla K20)我在CPU(串行)和GPU之间获得了超过10倍的加速。