I did a lot of work with CUDA MEX files before gpuArray was an option. Now I would like to simplify my interface to these MEX files by allowing them to access data that the user has stored in gpuArrays -- but I do not want to rewrite all my code.
So: what I need is a way for my MEX code to access a gpuArray's internal pointer to GPU memory, and other metadata. Is there a way to do this?
I suppose I would also need access to the Parallel Computing Toolbox's CUDA context for this to work.

 採用された回答

Edric Ellis
Edric Ellis 2011 年 7 月 14 日

0 投票

You're right that you need Parallel Computing Toolbox to access gpuArray functionality. We don't offer a MEX interface with gpuArrays, but we do offer the CUDAKernel which allows you to use gpuArrays together with hand-written CUDA code. Here's the doc for CUDAKernel.
We think that CUDAKernel is easier to use than a MEX layer because you only need to write the "__global__" entry points for CUDA, you don't need to write any of the code to marshal data in and out of mxArrays.

4 件のコメント

Jim Mutch
Jim Mutch 2011 年 7 月 14 日
Thanks for the reply. It may indeed be easier for new code development, but not necessarily for people with existing CUDA MEX files.
King Fisher
King Fisher 2011 年 11 月 27 日
Edric,
I ve tested the MATLAB .cu code and generate a .ptx file for it. But when I execute it on matlab the following error occurs:
??? Error using ==> iParseToken at 266
Unsupported type in argument specification "fahad.cu".
Error in ==>
/usr/local/Matlab/2011a/toolbox/distcomp/gpu/+parallel/+internal/+gpu/handleKernelArgs.p>iParseCPrototype at 192
Error in ==>
/usr/local/Matlab/2011a/toolbox/distcomp/gpu/+parallel/+internal/+gpu/handleKernelArgs.p>handleKernelArgs at 79
To let you clear that Gpu is funtioning well in my Matlab environment for other functions ,example, gpuarray().
Would you please figure out the problem !
Walter Roberson
Walter Roberson 2011 年 11 月 27 日
King Fisher, I recommend that you start a new Question for this.
Daniel Armyr
Daniel Armyr 2013 年 3 月 18 日
With the release of 2013a, though, you can do what the original poster wanted. See this: http://www.mathworks.se/help/distcomp/create-and-run-mex-files-containing-cuda-code.html

サインインしてコメントする。

その他の回答 (1 件)

John Melonakos
John Melonakos 2011 年 7 月 17 日

0 投票

Jacket users have access to the Jacket SDK that has advantages over the other two approaches: http://blog.accelereyes.com/blog/2010/10/29/jacket_sdk_trumps_mex/

1 件のコメント

Jim Mutch
Jim Mutch 2011 年 7 月 17 日
Perhaps, but in my question I said "I do not want to rewrite all my code". So this is off topic.
Do you guys need to pop up in every GPU-related thread?

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange で GPU Computing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by