NVIDIA cuDNN
NVIDIA CUDA® 深度神经网络库 (cuDNN) 是一个 GPU 加速的深度神经网络基元库,能够以高度优化的方式实现标准例程(如前向和反向卷积、池化层、归一化和激活层)。
全球的深度学习研究人员和框架开发者都依赖 cuDNN 来实现高性能 GPU 加速。借助 cuDNN,研究人员和开发者可以专注于训练神经网络及开发软件应用,而不必花时间进行低层级的 GPU 性能调整。cuDNN 可加速广泛应用的深度学习框架,包括 Caffe2、Chainer、Keras、MATLAB、MxNet、PaddlePaddle、PyTorch 和 TensorFlow。如需获取经 NVIDIA 优化且已在框架中集成 cuDNN 的深度学习框架容器,请访问 NVIDIA GPU CLOUD 了解详情并开始使用。
![图表显示,A100 的速度比使用了 cuDNN 8.1 的 V100 快 5 倍以上](http://web.archive.org./web/20240403105921im_/https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/cudnn/cudnn_chart.png)
在 21.02 NGC 容器上比较使用 cuDNN 7.6.5 的单个 DGX-1V 服务器与使用 cuDNN 8.1.1 的 DGX-A100 的吞吐量。端到端性能趋于收敛。
cuDNN 8.3 的新变化
cuDNN 8.3 针对 A100 GPU 进行了优化,可提供高达 V100 GPU 5 倍的开箱即用性能,并且包含适用于对话式 AI 和计算机视觉等应用的新优化和 API。它已经过重新设计,可实现易用性和应用集成,同时还能为开发者提供更高的灵活性。
cuDNN 8.3 的亮点包括:
- 为基于转换器的模型提供优化加速
- 运行时融合,通过新的运算符、启发式算法和融合迅速编译内核
- 将下载包大小缩减 30%
cuDNN 8.3 现以六个较小的库的形式提供,能够更精细地集成到应用中。开发者可以下载 cuDNN,也可从 NGC 上的框架容器中将其提取出来。
阅读新的 cuDNN 版本说明,获取新特性和增强功能的详细列表。
cuDNN 的主要特性
- 为各种常用卷积实现了 Tensor Core 加速,包括 2D 卷积、3D 卷积、分组卷积、深度可分离卷积以及包含 NHWC 和 NCHW 输入及输出的扩张卷积
- 为诸多计算机视觉和语音模型优化了内核,包括 ResNet、ResNext、EfficientNet、EfficientDet、SSD、MaskRCNN、Unet、VNet、BERT、GPT-2、Tacotron2 和 WaveGlow
- 支持 FP32、FP16、BF16 和 TF32 浮点格式以及 INT8 和 UINT8 整数格式
- 4D 张量的任意维排序、跨步和子区域意味着可轻松集成到任意神经网络实现中
- 能为各种 CNN 体系架构上的融合运算提速
在数据中心和移动 GPU 中采用 Ampere、Turing、Volta、Pascal、Maxwell 和 Kepler GPU 体系架构的 Windows 和 Linux 系统均支持 cuDNN。
cuDNN 加速框架
![cuDNN 加速框架合作伙伴徽标](http://web.archive.org./web/20240403105921im_/https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/cuda/images/deeplearning/Thumbnails/dl_logos_wide_002.png)
cuDNN 资源
- NVIDIA 深度学习 SDK 文档
- 深入了解 cuDNN 8 网络会议
- 有关在 cuDNN 中进行 Tensor Core 编程的博客
-
相关的库和软件:
- NCCL:用于 GPU 间的快速通信
- cuBLAS:用于 GPU 加速的 BLAS 例程
- DALI:用于快速执行 AI 数据预处理
- NVIDIA GPU Cloud:用于容器
- 查找 NVIDIA 开发者论坛上的其他 cuDNN 开发者
- 如有疑问或要提供反馈,请通过以下方式联系我们:cuDNN@nvidia.com
- 如要报告错误或问题,请在 NVIDIA 开发者专区进行注册