Domanda

Nel mio codice cingencl che uso clSetKernelArg Per creare "dimensione variabile" __local Memoria per l'uso nei miei kernel, che non è disponibile in OpenCl di per sé. Vedi il mio esempio:

clSetKernelArg(clKernel, ArgCounter++, sizeof(cl_mem), (void *)&d_B);
...
clSetKernelArg(clKernel, ArgCounter++, sizeof(float)*block_size*block_size, NULL);
...
kernel="    
    matrixMul(__global float* C,
                   ...
              __local float* A_temp,
                  ...
             )"
{...

La mia domanda è ora: come fare lo stesso in piopencl?

Ho guardato attraverso gli esempi che derivano da Pyopencl, ma l'unica cosa che ho trovato è stato un approccio usando i modelli, che mi sembra come me come l'ho capito come un eccesso. Vedi esempio.

kernel = """
        __kernel void matrixMul(__global float* C,...){
                     ... 
            __local float A_temp[ %(mem_size) ];
                     ...
        }

Che cosa mi consiglia?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top