torch中'cuda''cudnn''cunn'和'cutorch'有什么区别和关系?

What is the difference and relation among 'cuda' 'cudnn' 'cunn' and 'cutorch' in torch?

我看到很多火炬代码使用:

require cudnn
require cunn
require cutorch

这些包有什么用?他们和Cuda是什么关系?

所有 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 模块。

不确定 'cutorch' 是什么,但据我了解:

Cuda:使用 GPU 的库。

cudnn:在 GPU 上做神经网络的库(可能使用 Cuda 与 GPU 对话)

来源:https://www.quora.com/What-is-CUDA-and-cuDNN