How to set all one gpuArray in mex?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
wei zhang
el 16 de Feb. de 2021
Respondida: Edric Ellis
el 16 de Feb. de 2021
Hi,
I need to set a all-one double gpuArray. I think I could use mxGPUCreateGPUArray to initial it. But it seems mxGPUCreateGPUArray could only initial a all-zero array like below.
mxGPUArray *x = mxGPUCreateGPUArray(ndim, dims, mxDOUBLE_CLASS, mxREAL, MX_GPU_INITIALIZE_VALUES);
Is there any good way to do this? Do I need to write a kernel function to do it with cuda function? Thank you.
0 comentarios
Respuesta aceptada
Edric Ellis
el 16 de Feb. de 2021
You basically have two options: either create and uninitialized mxGPUArray and fill the values using CUDA code (either a kernel, or one of the cuMemset* variants if your data type is small enough), or pass in to your MEX function an array of ones that you create in MATLAB using ones(...,'gpuArray').
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre GPU CUDA and MEX Programming en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!