CUDA内核计算二维数组的列均值

时间:2019-01-20 21:42:38

标签: arrays parallel-processing cuda

我想创建一个内核,将两个5x5 2d数组的列的均值添加到第三个1d数组中。

逻辑:

for(int j=0; j<N; j++)
{
    float suma = 0;

    for(int i=0; i<N; i++)
        suma += a[i][j] + b[i][j];

    c[j] = suma / N;    
    cout<<c[j]<<endl;
}

1 个答案:

答案 0 :(得分:1)

计算(1,)=平均值((:,))+平均值((:,))的Cuda内核:

 __global__ void meanKernel(float *c,float *a, float *b)
{
   int col = blockIdx.x* blockDim.x + threadIdx.x;
   float sum = 0;
   if (col<N)
   {

       for (int i=0; i<N; i++){
        sum += a[i*5+col] + b[i*5+col];


       c[col] = sum/5;
       }
      }

 }