How to set all one gpuArray in mex?

2 visualizaciones (últimos 30 días)
wei zhang
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.

Respuesta aceptada

Edric Ellis
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').

Más respuestas (0)

Categorías

Más información sobre GPU CUDA and MEX Programming en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by