【发布时间】:2012-08-27 19:14:35
【问题描述】:
我正在尝试在 ubuntu 下使用 GPUmat(MATLAB)。
对于我的系统,GPUstart 运行良好,没有任何错误消息,如下所示:
Starting GPU
- GPUmat version: 0.280
- Required CUDA version: 4.2
There is 1 device supporting CUDA
CUDA Driver Version: 4.20
CUDA Runtime Version: 3.0
Device 0: "GeForce GT 520"
CUDA Capability Major revision number: 2
CUDA Capability Minor revision number: 1
Total amount of global memory: 1073283072 bytes
- CUDA compute capability 2.1
...done
- Loading module EXAMPLES_CODEOPT
- Loading module EXAMPLES_NUMERICS
-> numerics21.cubin
- Loading module NUMERICS
-> numerics21.cubin
- Loading module RAND
但是当我尝试创建像 ' a = GPUdouble(rand(2)); 这样的变量时' 出现以下错误信息
Error using mxNumericArrayToGPUtypePtr
Unable to allocate memory using cudaMalloc
Error in GPUdouble (line 52)
p.slot = mxNumericArrayToGPUtypePtr(p,
double(A));
我猜不出发生这种情况的任何原因。你能给我一些建议来解决这个问题吗?非常感谢您的帮助。
p.s) 第一次使用时,由于库问题,GPUstart 无法正常工作。于是我按照GPUmat开发者的建议,将CUDA 4.2的所有库移到了matlab库文件夹中。
谢谢!
【问题讨论】:
-
如果您删除
rand,是否会发生同样的事情?例如,a = GPUdouble(2). -
您安装了不兼容的 CUDA 运行时版本。 GPUStart 告诉您“所需的 CUDA 版本:4.2”,但您已安装 CUDA 3.0 工具包。
-
@talonmies 请张贴作为答案。
-
看起来问题已解决,但请确保包含问题的出现,因为 matlab 提供了自己的 cuda 工具包副本并替换了 LD_LIBRARY_PATH 以使其库优先。
标签: matlab memory-management cuda gpu