Iは以下のように行列に取り組ん4つのCUDAカーネルを有する:(最初のコンボリューションを除く)基本的にすべてのカーネル呼び出す複数のカーネル、グローバルメモリパフォーマンス - CUDA
convolution<<<>>>(A,B);
multiplybyElement1<<<>>>(B);
multiplybyElement2<<<>>>(A);
multiplybyElement3<<<>>>(C);
// A + B + C with CUBLAS' cublasSaxpy
をすることにより、マトリックスの各要素の乗算を行います一定の値が固定メモリにハードコードされています(高速化のため)。
は私が
multiplyBbyX_AbyY_CbyZ<<<>>>(B,A,C)
のようなものを呼び出すことにより、単一の一つにこれらのカーネルに参加すべきか?おそらくそれは助けないだろうが、私は私が正しく理解している場合あなたに三つの「multiplybyElement」カーネルをマージする必要がある場合は、あなたが求めている
両方のバージョンをテストしてどちらが良いか確認できますか?とにかく、カーネルコールですでにメモリー内のデータを再利用しているため、パフォーマンスに違いがあるとは思えません。 – Tudor