无法在 Torch 中导入(需要)“cutorch”

Posted

技术标签:

【中文标题】无法在 Torch 中导入(需要)“cutorch”【英文标题】:Unable to import (require) 'cutorch' in Torch 【发布时间】:2016-07-18 15:28:20 【问题描述】:

我的机器上安装了 CUDA 7.5,并按照说明 here 安装了 Torch。在安装 Torch 之前,我将 CMake 升级到了 3.2.x.x 版本。然后我使用以下命令安装了cutorchcunn

luarocks install cutorch
luarocks install cunn

在安装 cutorch 时,我看到一些消息说在我的机器上找到了 CUDA 7.5。但是,我无法使用require 'cotorch 导入cutorch,当我尝试在终端中使用torch (th) 解释器运行它时出现以下错误:

THCudaCheck FAIL file=/tmp/luarocks_cutorch-scm-1-8316/cutorch/lib/THC/THCGeneral.c line=17 error=30 : unknown error
/home/amir/torch/install/share/lua/5.1/trepl/init.lua:384: cuda runtime error (30) : unknown error at /tmp/luarocks_cutorch-scm-1-8316/cutorch/lib/THC/THCGeneral.c:17
stack traceback:
    [C]: in function 'error'
    /home/amir/torch/install/share/lua/5.1/trepl/init.lua:384: in function 'require'
    [string "_RESULT=require "cutorch""]:1: in main chunk
    [C]: in function 'xpcall'
    /home/amir/torch/install/share/lua/5.1/trepl/init.lua:651: in function 'repl'
    ...amir/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:199: in main chunk
    [C]: at 0x00406670  

然后我按照说明here 能够使用 Eclipse 编写 Lua/Torch 代码。在那里,尝试执行require 'cutorch' 时出现以下错误:

qlua: /home/amir/torch/install/share/lua/5.1/cutorch/init.lua:2: cannot load '/home/amir/torch/install/lib/lua/5.1/libcutorch.so'
stack traceback:
    [C]: at 0x7f05cf9709e0
    [C]: in function 'require'
    /home/amir/torch/install/share/lua/5.1/cutorch/init.lua:2: in main chunk
    [C]: in function 'require'
    /home/amir/workspace/test/src/main.lua:2: in function 'main'
    /home/amir/workspace/test/src/main.lua:6: in main chunk

不过,文件libcutorch.so 位于上述目录中。 This 也没有帮助我解决问题。有谁知道我应该解决这个问题吗?

当我输入luarocks list 时,我得到以下信息:

Installed rocks:
----------------

argcheck
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

cudnn
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

cunn
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

cunnx
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

cutorch
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

cwrap
   scm-1 (installed) - /home/amir/.luarocks/lib/luarocks/rocks
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

dok
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

env
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

fftw3
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

gnuplot
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

graph
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

graphicsmagick
   1.scm-0 (installed) - /home/amir/torch/install/lib/luarocks/rocks

image
   1.1.alpha-0 (installed) - /home/amir/torch/install/lib/luarocks/rocks

lbase64
   20120820-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

lua-cjson
   2.1devel-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

luaffi
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

luafilesystem
   1.6.3-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

luasocket
   3.0rc1-2 (installed) - /home/amir/torch/install/lib/luarocks/rocks

nn
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

nngraph
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

nnx
   0.1-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

optim
   1.0.5-0 (installed) - /home/amir/torch/install/lib/luarocks/rocks

paths
   scm-1 (installed) - /home/amir/.luarocks/lib/luarocks/rocks
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

penlight
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

qtlua
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

qttorch
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

signal
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

sundown
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

sys
   1.1-0 (installed) - /home/amir/torch/install/lib/luarocks/rocks

threads
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

torch
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

trepl
   scm-1 (installed) - /home/amir/torch/install/lib/luarocks/rocks

xlua
   1.0-0 (installed) - /home/amir/torch/install/lib/luarocks/rocks

【问题讨论】:

在终端中执行ldd /home/amir/torch/install/lib/lua/5.1/libcutorch.so,看看它是否正确链接到所有依赖项。 @siavashk 似乎正确链接到所有依赖项。当我运行命令时,我得到了类似libluaT.so => /home/amir/torch/install/lib/libluaT.so (0x00007fd568c94000) 【参考方案1】:

好的,这是解决问题的方法(感谢 Torch7 谷歌小组的 alban desmaison):

确保您按照我在问题中提到的所有步骤操作,以确保正确安装了 CUDA。 如果你安装了 Theano,执行sudo python 然后做import theano 然后转到 CUDA 示例文件夹和 make 示例之一(不管是哪一个) 然后做./[name_of_the_sample] 然后 Torch 就可以轻松使用 CUDA 后端了

如果您没有安装 Theano,请尝试使用 sudo 运行 CUDA 示例。 重要的一步是能够运行 CUDA 示例之一。

现在一切就绪!

【讨论】:

这是否意味着在运行任何 CUDA 示例之前 CUDA 实际上并未完全构建? 不,我认为缺少一些指向 CUDA 库的链接。虽然有办法解决这个问题,但我不记得如何【参考方案2】:

试试sudo bash /torch/update.sh

【讨论】:

以上是关于无法在 Torch 中导入(需要)“cutorch”的主要内容,如果未能解决你的问题,请参考以下文章

在 luarocks 中安装 cutorch 时无法构建“cutorch”

无法在 Swift 中导入 ObjectMapper

无法在文件中导入 FBSDKWebDialog

无法在反应中导入css文件

为啥 POD 文件无法在 Xcode 中导入目标项目头文件?

无法在 Swift XMPP 客户端中导入客户端证书