火炬中的'cuda''cudnn''cunn'和'cutorch'有啥区别和关系?
Posted
技术标签:
【中文标题】火炬中的\'cuda\'\'cudnn\'\'cunn\'和\'cutorch\'有啥区别和关系?【英文标题】:What is the difference and relation among 'cuda' 'cudnn' 'cunn' and 'cutorch' in torch?火炬中的'cuda''cudnn''cunn'和'cutorch'有什么区别和关系? 【发布时间】:2016-11-06 18:29:45 【问题描述】:我看到许多火炬代码使用:
require cudnn
require cunn
require cutorch
这些包是做什么用的?他们和 Cuda 是什么关系?
【问题讨论】:
【参考方案1】:所有 3 个都用于 torch7 的 CUDA GPU 实现。
cutorch 是 torch7 的 cuda 后端,为 torch 中的 CUDA 实现提供各种支持,例如用于 GPU 内存中张量的 CudaTensor。在与 GPU 交互时还添加了一些有用的功能。
cunn 在 nn 库之上提供了额外的模块,主要是将这些 nn 模块透明地转换为 GPU CUDA 版本。这使得通过 cuda 轻松地将神经网络切换到 GPU 和反之亦然!
cuDNN 是 NVIDIA 的 cuDNN 库的封装,该库是针对 CUDA 优化的库,包含各种快速 GPU 实现,例如卷积网络和 RNN 模块。
【讨论】:
那么我可以在没有 CUDNN 的情况下使用 CUDA 吗?【参考方案2】:不知道“cutorch”是什么,但据我了解:
Cuda:使用 GPU 的库。
cudnn:在 GPU 上执行神经网络的库(可能使用 Cuda 与 GPU 通信)
来源:https://www.quora.com/What-is-CUDA-and-cuDNN
【讨论】:
以上是关于火炬中的'cuda''cudnn''cunn'和'cutorch'有啥区别和关系?的主要内容,如果未能解决你的问题,请参考以下文章