Я использую компьютерное зрение, используя CUDA. Следующий код занимает около 20 секунд.Почему этот оператор в ядре CUDA медленный?
__global__ void nlmcuda_kernel(float* fpOMul,/*other input args*/){
float fpODenoised[75];
/*Do awesome stuff to compute fpODenoised*/
//inside nested loops:(This is the statement that is the bottleneck in the code.)
fpOMul[ii * iwl * iwxh + iindex * iwxh + il] = fpODenoised[ii * iwl +iindex];
}
, если я заменю это заявление с
fpOMul[ii * iwl * iwxh + iindex * iwxh + il] = 2.0f;
код вряд ли занимает несколько секунд, чтобы закончить.
Почему заданный показатель замедляется и как я могу заставить его работать быстро?