我从我的 MATLAB 实现中调用了一个 CUDA 内核;但是我的 CPU 结果比我的 GPU 实现要快。我知道更大的矩阵可以获得更好的性能,但是当我也尝试使用大尺寸时,我会得到较低的 GPU 性能。
结果是: CPU:0.000006 GPU:0.00134 我的内核和 MATLAB 代码如下:
提前致谢!
matrix.cu
__global__ void matrix_mult2(double *A, double *B, double * C) {
int x = threadIdx.x;
C[x] = A[x] * B[x];
}
main.m
kernel = parallel.gpu.CUDAKernel( 'matrix_mult2.ptx', ...
'matrix_mult2.cu' );
kernel.ThreadBlockSize = [25,1,1];
kernel.GridSize = [1,1];
A = parallel.gpu.GPUArray.rand(5,5,'double');
B = parallel.gpu.GPUArray.rand(5,5,'double');
C = parallel.gpu.GPUArray.zeros(5,5);
C = feval(kernel,A,B,C);