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、归一化、激活、逐点和张量转换
- 计算约束和内存约束运算的融合
- 运行时融合引擎,用于在运行时生成常见融合模式的内核
- 针对融合注意力等重要专业模式进行优化
- 选择适用于给定问题大小的合适实现的启发式方法
- 将受内存限制的运算融合到 matmul 和卷积的输入和输出中
- 专用于注意力和卷积等模式的融合
- 支持前向和反向传播
- 用于预测适用于给定问题大小的最佳实现的启发式算法
- 开源 C++前端 API
- 序列化和反序列化支持
cuDNN 加速框架
cuDNN 加速了广泛使用的深度学习框架,包括 Caffe2, Chainer, Keras, MATLAB, MxNet, PaddlePaddle, PyTorch 和TensorFlow。