NVIDIA cuDNN公司

NVIDIA CUDA®深层神经网络库(cuDNN)是一个GPU加速的基元库,用于深度神经网络.cuDNN为标准例程(如前向和后向卷积、注意力、matmul、池化和规范化)提供了高度调优的实现。


主要功能

加速学习

cuDNN提供针对Tensor Cores的内核,以在计算机绑定操作上提供最佳可用性能。它提供了针对给定问题大小选择正确内核的启发式方法。

表达式操作图API

用户将计算定义为张量操作图。为了方便起见,cuDNN库既有直接的C API,也有开源的C++前端。大多数用户选择前端作为cuDNN的入口点。

Fusion支持

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


深度神经网络

深度学习神经网络跨越了计算机视觉、会话人工智能和推荐系统,并在自动驾驶汽车和智能语音助手等方面取得了突破。NVIDIA的GPU加速的深度学习框架加快了这些技术的培训时间,将多日培训减少到了几个小时。cuDNN为云、嵌入式设备和自动驾驶汽车中的深度神经网络提供了高性能、低延迟推理所需的基础库。

特征

  • 加速的计算机绑定操作,如卷积和matmul
  • 优化的内存绑定操作,如池、softmax、归一化、激活、逐点和张量转换
  • 计算机绑定和内存绑定操作的融合
  • 运行时融合引擎,在运行时为常见融合模式生成内核
  • 优化融合注意力等重要专业模式
  • 针对给定问题规模选择正确实现的启发式方法

cuDNN Graph API和Fusion

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


  • 将内存限制操作灵活地融合到数学和卷积的输入和输出中
  • 将注意力和卷积等模式与规范化进行专门融合
  • 支持正向和反向传播
  • 预测给定问题规模的最佳实现的启发式方法
  • 开源C++前端API
  • 序列化和反序列化支持

以下是cuDNN Graph API描述的操作图示例。


卷积Fwd然后是具有两个操作的DAG
资料来源:cuDNN文件


Mha-fprop公司cuDNN操作图
资料来源:cuDNN文件


Mha-bprop公司cuDNN操作图
资料来源:cuDNN文件


cuDNN加速框架

cuDNN加速了广泛使用的深度学习框架,包括咖啡2,主持人,喀拉拉邦,MATLAB软件,MxNet公司,飞桨,PyTorch公司、和TensorFlow公司.




cuDNN最新消息


相关库和软件

NVIDIA NeMo™公司

NeMo是一个端到端的云计算框架,供开发人员构建、定制和部署具有数十亿参数的生成性AI模型。

了解更多信息

NVIDIA TensorRT™公司

TensorRT是一个用于高性能深度学习推理的软件开发工具包。

了解更多信息

NVIDIA优化框架

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

NVIDIA集合通信库

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

了解更多信息

cuDNN开发商调查

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


进行两分钟的调查

cuDNN入门