【问题标题】:cuda torch integration - CudaTensor class not foundcuda 火炬集成 - 未找到 CudaTensor 类
【发布时间】:2017-06-06 07:18:28
【问题描述】:

可能我对这里的依赖堆栈不够熟悉,但我安装了一个使用 Torch 和 CUDA 的深度学习项目:https://github.com/donglixp/lang2logic

运行项目(例如通过发出:./pretrain.sh seq2seq jobqueries lstm),我收到此错误:

THCudaCheck FAIL file=/tmp/luarocks_cutorch-scm-1-1028/cutorch/lib/THC/THCGeneral.c line=66 error=30 : unknown error
package cunn not found! 
package cutorch not found!  
If cutorch and cunn are installed, your CUDA toolkit may be improperly configured.  
Check your CUDA toolkit installation, rebuild cutorch and cunn, and try again.  
Falling back on CPU mode    
~/torch/install/share/lua/5.1/torch/File.lua:343: unknown Torch class <torch.CudaTensor>

顺便说一句,最后一个错误是由这段不言自明的 lua 代码发出的,它检查 CudaTensor 类的可用性:

 if not torch.factory(className) then
    error(string.format('unknown Torch class <%s>', tostring(className)))
 end

得到这个错误后,我还通过以下命令安装了Lua的cutorchcunn,好像已经完成了。

luarocks install cutorch
luarocks install cunn

但我仍然遇到同样的错误。

我注意到的唯一安装怪癖是 luarocks install class 似乎什么都不做,而且我不是作为原作者在 Scientific Linux 上运行,而是在 Ubuntu 16.04 上运行。

我已经通过以下方式安装了 CUDA:sudo apt-get install nvidia-cuda-toolkit

您将如何解决此集成错误?

谢谢!

【问题讨论】:

  • 我想知道 CudaTensor 是 CUDA 类还是由任何 lua rock 定义的类。查看一些源代码,我倾向于假设前者。

标签: lua torch


【解决方案1】:

我宁愿只留下评论,但我还没有足够的声誉,所以就这样吧。

您似乎遇到了安装问题。最明显的尝试是通过rm -rf ~/torch 完全卸载torch,然后按照链接的说明重新安装它(用他们的替换ClassNLLCriterion.cu 文件)。通常,按照指令here 应该为您安装cutorchcunn,但您始终可以通过luarocks 安装它们,正如您所提到的。这也是为什么luarocks install class 没有做任何事情的原因,因为它已经安装好了。

在回答您的评论时,torch.CudaTensor 顾名思义是在cutorch 中定义的火炬类。它的行为与 torch 库中的任何其他 Tensor 类一样,但它存在于 GPU 上。

有关如何安装 Torch 的更多信息可能会有所帮助。

您当然还需要一个兼容 CUDA 的设备才能使用 cutorch。

【讨论】:

    猜你喜欢
    • 2020-07-06
    • 2021-06-24
    • 2016-12-02
    • 2019-07-27
    • 2018-01-24
    • 2019-08-17
    • 2022-11-07
    • 2021-12-13
    • 2020-11-24
    相关资源
    最近更新 更多