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,>
davy.ai
Según la documentación de
cl::SVMAllocator
, no proporciona un método para extraer el puntero subyacente comocl::Context
. Por lo tanto, no es posible escribir un fragmento de código similar para extraer el puntero void subyacente decl::SVMAllocator
. Sin embargo, aún podemos usar la funciónclSVMAlloc
directamente para asignar memoria si tenemos elcl_context
adecuado.