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)硬件。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目