Dao-AILab/causal-conv1d

Causal depthwise conv1d in CUDA, with a PyTorch interface

解決的問題

提供高度優化的 CUDA 實作,用於因果深度可分 1D 卷積,這是在 AI 模型中進行序列建模的關鍵元件。它以專用內核取代標準的 PyTorch conv1d 操作,該內核在因果運算(輸出僅依賴於過去與當前步驟)中更具效率。

工作原理

本專案實作自訂 CUDA 內核,執行深度可分 1D 卷積。支援多種精度格式(fp32、fp16、bf16)與卷積核大小 2、3、4。直接整合至 PyTorch,作為一個函數 causal_conv1d_fn,接收輸入張量、權重,以及可選的偏置與激活函數(如 SiLU 或 Swish)。

適用對象

需要高效、底層 CUDA 實作因果卷積的開發者與研究人員,用於建構高效率序列模型或狀態空間模型(SSMs)。

特色亮點

  • 面向因果深度可分 1D 卷積的優化 CUDA 內核。
  • 支援 fp32、fp16 與 bf16 精度。
  • 支援卷積核大小 2、3 與 4。
  • 內建支援可選的 SiLU 與 Swish 激活函數。
  • 兼容 NVIDIA(CUDA)與 AMD(ROCm)硬體。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案