BobMcDear/attorch

A subset of PyTorch's neural network modules, written in Python using OpenAI's Triton.

解决的问题

attorch 为 PyTorch 的 nn 模块提供了一个易读、自包含且易于修改的替代方案。它允许开发人员在无需编写原始 CUDA 内核所需的专业技术知识的情况下,以基于 Triton 内核的效率创建自定义深度学习算子。

工作原理

该项目完全使用 OpenAI 的 Triton 编写。它实现了各种神经网络层(如卷积、注意力机制和各种激活函数)以及数学函数。它支持前向和后向传播,适用于训练和推理。为了简化集成,它包含一种回退机制(attorch.nn),当特定的 attorch 模块不可用,或者卷积和池化等对性能要求极高的层由 PyTorch 处理效果更好时,会自动使用 PyTorch 层。

适用对象

专为想要开发自定义深度学习算子,需要比纯 PyTorch 实现更高的性能提升,但又无法编写 CUDA 内核的研究人员和开发人员设计。

亮点

  • Triton 驱动:使用 OpenAI 的 Triton 进行高效的 GPU 计算。
  • 无需 CUDA:无需编写 CUDA 代码即可实现高性能内核。
  • 广泛的层支持:包括 MultiheadAttentionBatchNorm 以及具有可选内核融合功能的各种激活函数在内的广泛层。
  • 训练与推理:完全支持前向和后向传播。
  • PyTorch 集成:提供回退接口以确保与现有 PyTorch 工作流的兼容性。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目