无论我如何重新安装CUDA驱动程序和工具包,在键入gpuDevice()时,它总是显示s:
CUDADevice with properties:
Name: 'Quadro K2000M'
Index: 1
ComputeCapability: '3.0'
SupportsDouble: 1
DriverVersion: 6.5000
ToolkitVersion: 5.5000
MaxThreadsPerBlock: 1024
MaxShmemPerBlock: 49152
MaxThreadBlockSize: [1024 1024 64]
MaxGridSize: [2.1475e+09 65535 65535]
SIMDWidth: 32
TotalMemory: 2.1475e+09
FreeMemory: 2.0431e+09
MultiprocessorCount: 2
ClockRateKHz: 745000
ComputeMode: 'Default'
GPUOverlapsTransfers: 1
KernelExecutionTimeout: 0
CanMapHostMemory: 1
DeviceSupported: 1
DeviceSelected: 1
Run Code Online (Sandbox Code Playgroud)
我不明白.为什么工具包版本总是5.5?我可以升级到6.5吗?
我不明白为什么这个问题得到了投票.当我尝试在MEX中使用CUDA时,这是我想到的第一个问题.
正如@Robert所提到的,你必须使用相同的cuda版本,但如果你使用简单的技巧(我使用CUDA 6.0和MATLAB CUDA版本是5.0)则不一定.为了使它工作,您不需要复杂的过程,也不mex需要编译所有.cu文件并将xml文件(如Link中)复制到要编译的目录.在matlab命令中输入以下两行,
!nvcc -O3 -DNDEBUG -c mexGPUExample.cu -Xcompiler -fPIC -I/MATLAB_ROOT/extern/include -I/MATLAB_ROOT/toolbox/distcomp/gpu/extern/include;
mex mexGPUExample.o -L/usr/local/cuda-6.0/lib64 -L/MATLAB_ROOT/bin/glnxa64 -lcudart -lcufft -lmwgpu
Run Code Online (Sandbox Code Playgroud)
然后,即使你的ToolkitVersion不匹配,它也会神奇地工作.(将/ MATLAB_ROOT更改为您的matlab根路径)
关于您的问题,安装的CUDA版本与MATLAB使用的CUDA不同.
如果你去
/matlabroot/bin/maci64 (OS X)
/matlabroot/bin/glnxa64 (unix variant)
Run Code Online (Sandbox Code Playgroud)
根据您的操作系统,您可以看到[动态链接库,共享库]
libcudart.5.5.[dylib, so]
libcublas.5.5.[dylib, so]
libcufft.5.5.[dylib, so]
Run Code Online (Sandbox Code Playgroud)
这些是MATLAB使用的库.要使matlab使用系统库,请按照以下说明操作.(仅限MAC)
总共,
install_name_tool更改库链接使MATLAB使用System CUDA库,默认的MATLAB CUDA库版本为5.5,如果要使用最新的库,请阅读以下内容
/Applications/MATLAB_R2014a.app/bin/maci64(MAC)或MATLAB_ROOT/bin/glxna64(LINUX)请参阅库的依赖关系,libmwgpu.[dylib, so]这是使用CUDA时加载的条目库
结果看起来像
dnab404675:maci64用户$ otool -L libmwgpu.dylib libmwgpu.dylib:@ rpath/libmwgpu.dylib(兼容版本0.0.0,当前版本0.0.0)
....一些图书馆
@ rpath/libcublas.5.5.dylib(兼容版本5.5.0,当前版本5.5.20)@ rpath/libcudart.5.5.dylib(兼容版本5.5.0,当前版本5.5.20)@rpath/libcufft.5.5.dylib (兼容版本5.5.0,当前版本5.5.20)
... 和更多
我们的目标是要修改的库相关cublas,cudart,cufft以
/usr/local/cuda/lib/libcublas.dylib(兼容版本5.5.0,当前版本5.5.20)/usr/local/cuda/lib/libcudart.dylib(兼容版本5.5.0,当前版本5.5.20) /usr/local/cuda/lib/libcufft.dylib(兼容版本5.5.0,当前版本5.5.20)
请注意,如果您键入gpuDevice,它仍会将其显示为工具包版本5.但它会加载新版本.那我们怎么做呢?
只需输入
sudo install_name_tool -change @ rpath/libcufft.5.5.dylib /usr/local/cuda/lib/libcufft.dylib libmwgpu.dylib
sudo install_name_tool -change @ rpath/libcudart.5.5.dylib /usr/local/cuda/lib/libcudart.dylib libmwgpu.dylib
sudo install_name_tool -change @rpath/libcublas.5.5.dylib /usr/local/cuda/lib/libcublas.dylib libmwgpu.dylib
我仍然不知道如何在Linux中更改共享库路径.可能必须使用十六进制编辑器,如HT From Stackoverflow Answer
| 归档时间: |
|
| 查看次数: |
2418 次 |
| 最近记录: |