Matlab 为什么我不能使gpv可变?(无法使用cudaMalloc分配内存)

Matlab 为什么我不能使gpv可变?(无法使用cudaMalloc分配内存),matlab,memory-management,cuda,gpu,Matlab,Memory Management,Cuda,Gpu,我试图在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:

我试图在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库文件夹中


谢谢大家!

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


您需要将CUDA toolkit更新为受支持的版本。

如果删除
rand
,是否会发生同样的情况?例如,
a=GPUdouble(2)
。您安装了不兼容的CUDA运行时版本。GPUStart告诉您“必需的CUDA版本:4.2”,但您已经安装了CUDA 3.0工具包。@Talonmes请作为答案发布。问题似乎已经解决,但请确保包括问题产生的原因,因为matlab提供了自己的CUDA工具包副本,并替换了LD_LIBRARY_路径,以赋予其库优先级。