在Matlab中开始使用CUDA

时间:2011-04-19 17:30:03

标签: matlab cuda

嘿那里, 我需要在Matlab中开始使用Cuda。由于我需要比matlab提供的更多功能,我需要编写自己的c ++代码,例如:我想在1..N GPU处理器上运行我的程序并比较结果以计算加速,这是Matlab本身不支持的(因为Matlab总是优化自己使用所有处理器)。

现在我想知道如何最好地开始。我已经阅读了很多论文,但我仍然想知道这些文件的内容是什么:

.CU .cubin .ptx .mex

那么我需要去哪个方向?将我的代码写入.cu文件而不是编译它(使用哪个工具?

我的电脑是:

Q9550与GTX460, Win7 x64, Matlab R2010b x64, Visual Express C ++ 2008(免费 - > 32位版本), Cuda Toolkit 3.2(64位), 最新的Nvidia驱动程序和GPU编程SDK 3.2.16_win_64

如何上车?当我尝试打开GPU Programming SDK中的一个示例时,例如文件vectorAdd_vc90.vcproj ouf ot C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 3.2\C\src\vectorAdd

我得到了

“发生以下XML解析错误:

文件:C:\ ProgramData \ NVIDIA Corporation \ NVIDIA GPU Computing SDK 3.2 \ C \ src \ vectorAdd \ vectorAdd_vc90.vcproj 行:22 专栏:4 Fehlermeldung: 用户构建文件“C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ VCProjectDefaults \ NvCudaRuntimeApi.rules”未找到或无法加载 无法加载文件“C:\ ProgramData \ NVIDIA Corporation \ NVIDIA GPU Computing SDK 3.2 \ C \ src \ vectorAdd \ vectorAdd_vc90.vcproj”

当我打开vectorAdd.cu时,我找不到任何方法来编译它以在Matlab中运行它。也许在没有Visual Studio的情况下完全工作也是可能的,所以我在Notepad ++中编写代码并自行编译?

非常感谢你们!

2 个答案:

答案 0 :(得分:2)

如果您有权访问Parallel Computing Toolbox,则可以直接使用GPU使用GPUArrays。您还可以使用parallel.gpu.CUDAKernel对象

更轻松地集成自己的手写CUDA代码

答案 1 :(得分:0)

如果并行工具箱不可用,您仍然可以使用mexFunction功能来使用GPU

http://www.mathworks.com.au/help/distcomp/create-and-run-mex-files-containing-cuda-code.html

我认为这不适用于早于2013a的版本。在这种情况下,您可以编写mexfunction入口点并包含cuda函数调用以将内存传入和传出设备

http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/