Producto de tensor de Kronecker paralelo en GPU utilizando CUDA

Estoy trabajando en paralelismo [este archivo] [1] en GPU usando [archivo PTX con matlab parallel.gpu.CUDAkernel] [2]. Mi problema con [kron tensor product] [3] es el siguiente. Mi código debe multiplicar dos vectoreskron(a,b) multiplicando cada elemento del primer vectora=<32x1> por todos los elementos del otro vectorb=<1x32> y el tamaño del vector de salida serák<32x32>=a.*b. Intenté escribirlo en C ++ y funcionó, ya que solo me preocupa sumar todos los elementos de la matriz 2d. Pensé que puedo hacerlo fácil como matriz 1D porquem=sum(sum(kron(a,b))) es el código en el que estoy trabajando

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

Significaba tener ela[i]El elemento se multiplica por cada elemento enb y pensé en ir con32 bloques con cada bloque tiene una32 hilos y el código debe 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];
  }

Eso debería hacer el truco como elblockIdx.x Es el bucle externo, pero no lo hizo. ¿Podría algún cuerpo decirme dónde, puedo pedir una forma paralela para hacer la suma paralela?

Respuestas a la pregunta(2)

Su respuesta a la pregunta