2012-09-03 88 views
0

我想在Ubuntu下使用GPUmat(MATLAB)。为什么我不能制作GPU变量? (无法使用cudaMalloc分配内存)

对于我的系统,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 

但是当我尝试创建像'一个= GPUdouble变量(RAND(2)); “ 出现

Error using mxNumericArrayToGPUtypePtr 
Unable to allocate memory using cudaMalloc 

Error in GPUdouble (line 52) 
      p.slot = mxNumericArrayToGPUtypePtr(p, 
      double(A)); 

以下错误消息这是为什么hapenning我无法猜测任何理由的。你能给我一些建议来解决这个问题吗?我非常感谢你的帮助。

p.s)由于库问题,第一次,GPUstart不起作用。所以我根据GPUmat开发人员的建议将CUDA 4.2的所有库移动到了matlab库文件夹中。

谢谢!

+0

如果您删除'rand',是否会发生同样的事情?例如,'a = GPUdouble(2)'。 –

+0

您有一个不兼容的CUDA运行时版本。 GPUStart会告诉您“必需的CUDA版本:4.2”,但您已安装CUDA 3.0工具包。 – talonmies

+1

@talonmies请发表回答。 – harrism

回答

1

您安装的CUDA运行时版本不兼容。 GPUStart会告诉您“必需的CUDA版本:4.2”,但您已安装CUDA 3.0工具包。

您需要将您的CUDA工具包更新到支持的版本。

相关问题