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);