Produto de tensor paralelo de Kronecker em GPUs usando CUDA

Eu estou trabalhando em paralelo [este arquivo] [1] em GPU usando [arquivo PTX com matlab parallel.gpu.CUDAkernel] [2]. Meu problema com [kron tensor product] [3] é o seguinte. Meu código deve multiplicar dois vetoreskron(a,b) multiplicando cada elemento do primeiro vetora=<32x1> pelos todos os elementos do outro vetorb=<1x32> e o tamanho do vetor de saída serák<32x32>=a.*b. Eu tentei escrevê-lo em C ++ e funcionou, como eu só preocupação sobre a soma de todos os elementos da matriz 2d. Eu pensei que eu poderia tornar mais fácil como array 1D porquem=sum(sum(kron(a,b))) é o código em que estou trabalhando

for(i=0;i<32;i++)
 for(j=0;j<32;j++)
   k[i*32+j]=a[i]*b[j]

Significava ter oa[i]o elemento multiplicar por cada elementob e eu pensei em ir com32 blocos com cada bloco tem um32 threads e o código deve ser

__global__ void myKrom(int* c,int* a, int*b) {
  int i=blockDim.x*blockIdx.x+threadIdx.x;
  while(i<32) {
    c[i]=a[blockIdx.x]+b[blockDim.x*blockIdx.x+threadIdx.x];
  }

Isso deve fazer o truque como oblockIdx.x é o loop externo, mas isso não aconteceu. Poderia algum corpo me dizer onde, posso pedir uma maneira paralela para fazer a soma paralela.

questionAnswers(2)

yourAnswerToTheQuestion