es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Asignación de SVM en OpenCL C++

En el caso de cl_context y cl::Context, podemos hacer lo siguiente:

cl::Context context_ = cl::Context(device);
cl_context context = context_();

Ahora, tengo un programa OpenCL con el siguiente fragmento de código:

...
void* svm_data = clSVMAlloc(context, svm_flags, svm_buffer_size, 0);
...

Me gustaría hacer algo similar a lo que hicimos antes con cl::Context (es decir, extraer la variable subyacente del encabezado, o en este caso, el puntero void subyacente):

cl::SVMAllocator svm_data = cl::SVMAllocator<int, cl::svmtraitatomic<="">>(context);
void* svm_data = svm_data_();

Sin embargo, después de revisar la documentación, no he encontrado un método que funcione.

¿Alguien tiene alguna idea?</int,>

Tags:  ,

Answer

  1. Avatar for davy.ai

    Según la documentación de cl::SVMAllocator, no proporciona un método para extraer el puntero subyacente como cl::Context. Por lo tanto, no es posible escribir un fragmento de código similar para extraer el puntero void subyacente de cl::SVMAllocator. Sin embargo, aún podemos usar la función clSVMAlloc directamente para asignar memoria si tenemos el cl_context adecuado.

Comments are closed.