NVIDIA cuDNN

NVIDIA CUDA® 深度神经网络库 (cuDNN) 是用于深度神经网络。cuDNN 为标准例程 (如前向和反向卷积、注意力、matmul、池化和归一化) 提供了高度调优的实现。


主要特性

加速学习

cuDNN 提供针对 Tensor Core 的内核,可在计算受限的运算中提供出色的性能。它提供了用于选择适合给定问题大小的核函数的启发式算法。

富有表现力的 Op Graph API

用户将计算定义为张量运算图。cuDNN 库有一个直接的 C API 和一个开源 C++前端,以便于使用。大多数用户选择前端作为 cuDNN 的入口。

融合支持

cuDNN 支持计算约束和内存约束操作的融合。常见的通用融合模式通常通过运行时内核生成实现。专门的融合模式通过预编写的内核进行优化。


深度神经网络

深度学习神经网络涵盖计算机视觉、对话式 AI 和推荐系统,并且带来了自动驾驶汽车和智能语音助手等突破性成果。 NVIDIA 的 GPU 加速深度学习框架可加快这些技术的训练速度,将多日会议缩短到几小时。cuDNN 提供云、嵌入式设备和自动驾驶汽车中深度神经网络高性能、低延迟推理所需的基础库。

特性

  • 像卷积和 matmul 这样的计算密集型操作
  • 经过优化的内存绑定运算,如池化、softmax、归一化、激活、逐点和张量转换
  • 计算约束和内存约束运算的融合
  • 运行时融合引擎,用于在运行时生成常见融合模式的内核
  • 针对融合注意力等重要专业模式进行优化
  • 选择适用于给定问题大小的合适实现的启发式方法

cuDNN Graph API 和融合

cuDNN Graph API 旨在表达深度学习中的常见计算模式。cuDNN 图表将操作表示为节点,并将张量表示为边缘,类似于常规深度学习框架中的数据流图。通过 cuDNN Graph API 可以轻松访问 C++前端 API(推荐) 以及更低级别的 C 后端 API(适用于 C++不适用的特殊情况)。


  • 将受内存限制的运算融合到 matmul 和卷积的输入和输出中
  • 专用于注意力和卷积等模式的融合
  • 支持前向和反向传播
  • 用于预测适用于给定问题大小的最佳实现的启发式算法
  • 开源 C++前端 API
  • 序列化和反序列化支持

以下是由 cuDNN Graph API 描述的运算图示例。


ConvolutionFwd 然后是包含两个操作的 DAG
来源:cuDNN 文档


Mha-fpropcuDNN 运算图
来源:cuDNN 文档


Mha-bpropcuDNN 运算图
来源:cuDNN 文档


cuDNN 加速框架

cuDNN 加速了广泛使用的深度学习框架,包括 Caffe2, Chainer, Keras, MATLAB, MxNet, PaddlePaddle, PyTorchTensorFlow




最新的 cuDNN 新闻


相关库和软件

NVIDIA NeMo™

NeMo 是一个端到端的云原生框架,可供开发者构建、定制和部署具有数十亿参数的生成式 AI 模型。

了解详情

NVIDIA TensorRT™

TensorRT 是用于高性能深度学习推理的软件开发套件。

了解详情

NVIDIA 优化框架

深度学习框架提供通过高级编程接口设计、训练和验证深度神经网络的构建块。

NVIDIA 集合通信库

NCCL 是一个通信库,用于高带宽、低延迟的 GPU 加速网络

了解详情

cuDNN 开发者调查

回答关于您的开发环境和用例的几个问题,帮助改进 cuDNN。


填写 2 分钟调查

更多资源

探索 cuDNN 论坛

阅读 cuDNN 文档

开始使用 cuDNN