我在测试使用Matlab2018a并行gpu计算编程步骤,安装从英伟达官网下载的 cuda_9.2.148_win10
开发环境是VS2017,勾选安装 适用于桌面的 VC++ 2015.3 v14.00 (v140) 工具集
1.安装结束后,我们在计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和CUDA_PATH_V9_0两个环境变量。
新建环境变量配置
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.2
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
打开cmd
>set cuda
查看配置效果
2.首先启动cmd DOS命令窗口,默认进来的是c:\users\Admistrator>路径,输入 cd .. 两次如下
C:\Users\HASEE>cd..
C:\Users>cd..
C:\>cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\demo_suite
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\demo_suite
分别输入deviceQuery.exe 和 bandwidthTest.exe,运行结果,Rsult=PASS则说明通过。
>> setenv('Path','C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\bin')
>> ! nvcc -ptx VecAdd.cu %VecAdd.cu是用户构建的一个GPU函数
nvcc fatal : Cannot find compiler 'cl.exe' in PATH
解决方法
>> mex -setup
已将 options 文件 'C:\Users\HASEE\AppData\Roaming\MathWorks\MATLAB\R2018a\mex_C_win64.xml' 重命名为 'C:\Users\HASEE\AppData\Roaming\MathWorks\MATLAB\R2018a\mex_C_win64_backup.xml'。
MEX 配置为使用 'Microsoft Visual C++ 2017 (C)' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
包含 2^32-1 个以上元素的 MATLAB 变量。您需要
更新代码以利用新的 API。
您可以在以下网址找到更多的相关信息:
https://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。
要选择不同的语言,请从以下选项中选择一种命令:
mex -setup C++
mex -setup FORTRAN
>>
将微软VS安装目录例如 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
添加到环境变量 系统变量PATH中
以上路径仅以我安装的 Visual Studio 2017 为例,你可能需要自己找到cl.exe真正的路径。
最后要确保英伟达开发工具 cuda_9.2.148_win10安装完后必须手动配置添加环境变量!Matlab报错变成了下面的内容。
c1xx: fatal error C1083: 无法打开源文件: “VecAdd.cu”: No such file or directory
VecAdd.cu