matlab中利用GPU加速仿真的配置

1.下载白皮书:Accelerating Matlab with CUDA,主要是有关NVMEX的介绍

2.下载NVMEX工具:http://www.cs.ucf.edu/~janaka/gpu/using_nvmex.htm,按照要求配置, 需要特别注意的其中的批处理文件nvmexopts,其中的很多信息比较老,VS的版本还是2005, 在VS2008下会报错:无法打开文件kernel32.lib(LNK1104)

【问题解决】在nvmexopts中编辑
Try1)查了一下环境变量的库路径(LIB),Program Files/Microsoft Visual Studio 9.0/VC/lib是在的;查lib目录,果然找不到kernel32.lib文件。
Try2)看到我的SDK路径还是vs2005时候的路径:Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Lib,已经无效了,而Visual Studio 9.0/VC下没有PlatformSDK目录。
Try3)百度说,vs2008的SDK路径应该是这个:C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib,查了一下,C盘果然有这个瑙鲁。(注意:无论安装目录在哪里,都在C盘)
Try4)在环境变量LIB添加上述SDK目录,cl,成功!

nvmexopts文件中相应的地方都需要修改,包括/include,/lib,/bin等等,否则会出现"mt"不是有效的命令之类的错误

3.写好一个mex接口函数文件,注意GPU只能处理float类型的数据,需要将double转换成float后再处理

4.nvmex编译过程中如果出现PATH下找不到"cl.exe"之类的错误,请编辑nvmexopts中PATH环境变量,将VSINSTALLDIR设置成当前VS版本的安装目录

5.mexFunction中尽量不要用cutilsafecall()函数等,用到的库相互之间牵扯太多,麻烦而且容易出错

6.VS的SDK版本修改从2.0改为3.5

7.调试mexFunction比较简单,可以使用mexPrintf()函数,随时打印出数据观察,可以使用%d,%f等形式输出

8.出现找不到ctil32D.dll的错误时,要把C:/ProgramData/NVIDIA Corporation/NVIDIA GPU Computing SDK/C/bin/win32/Debug加入PATH环境变量。

==================

不要使用VS与MATLAB联调,要做到断点调试很难啊,尤其是在.cu文件情况下,不知道开勇老师提出的建立dll的方法是否可以达到,没有尝试。

你可能感兴趣的:(CUDA,百度,matlab,dll,Path,float)