How to set all one gpuArray in mex?

3 ビュー (過去 30 日間)
wei zhang
wei zhang 2021 年 2 月 16 日
回答済み: Edric Ellis 2021 年 2 月 16 日
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.

採用された回答

Edric Ellis
Edric Ellis 2021 年 2 月 16 日
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 件)

カテゴリ

Help Center および File ExchangeGPU CUDA and MEX Programming についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by