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
  • 專案