【问题标题】:Why I cannot make GPUvariable ? (Unable to allocate memory using cudaMalloc)为什么我不能使 GPUvariable ? (无法使用 cudaMalloc 分配内存)
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2015-02-22
    • 2016-03-03
    • 1970-01-01
    • 2013-12-22
    相关资源
    最近更新 更多