我看到许多火炬代码使用:
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 通信)