Hugging Face CUDA 核函數代理技能
讓代理能編寫 CUDA 核函數
技能組件
- GPU 優化指南: 針對 NVIDIA H100、A100 與 T4 GPU 的架構感知指導,涵蓋計算能力、共享記憶體大小與頻寬特性。
- 整合模式: 針對將核函數整合至
diffusers與transformers函式庫的具體指導與常見陷阱。 - 核函數範本: 為 BF16、FP16 與 FP32 精度的向量化記憶體存取模式。
- 工作流程: 用於獨立核函數微基準測試與端到端管線比較的範本。
- Hub 整合: 使用
get_kernel從 HuggingFace Kernel Hub 載入社群核函數的說明。
安裝與使用
此技能透過 kernels 套件分發。可使用 kernels skills add cuda-kernels 指令安裝至各種代理環境(Claude Code、Cursor、Codex、OpenCode)。安裝後,使用者可指示代理構建特定核函數,例如「針對 transformers 中 Qwen3-8B 模型的 H100 向量化 RMSNorm 核函數」。
效能基準測試
為驗證此技能,Hugging Face 使用 H100 80GB HBM3 GPU 以 BFloat16 精度,在兩個實際目標上測試了代理生成的核函數。
Diffusers:LTX-Video
代理為 LTX-Video 影片生成管線產生了 RMSNorm、RoPE 3D、GEGLU 與 AdaLN 核函數。
- 獨立 RMSNorm 效能: 自訂核函數相較於 PyTorch 基線平均提升 1.88 倍,頻寬效率達 H100 理論最大值的 34.7%。
- 端到端效能: 優化後的核函數相較於基線提升 1.06 倍(從 12.58 it/s 提升至 13.52 it/s)。結合
torch.compile後,提升幅度增至 1.43 倍。
Transformers:Qwen3-8B
代理為 Qwen3-8B 大型語言模型構建了 RMSNorm 核函數,該模型使用了 65 個 RMSNorm 模組。
- 獨立 RMSNorm 效能: 自訂核函數相較於 PyTorch 基線平均提升 1.94 倍。
- 擴展性: 隨著序列長度的增加,提升幅度從 128 token 時的 1.58 倍提升至 8192 token 時的 2.47 倍,有效將長上下文推理的 RMSNorm 延遲減半。
從生成到透過 Kernel Hub 發佈
代理技能負責開發階段,而 HuggingFace Kernel Hub 負責發佈。以下為發佈代理生成核函數的工作流程:
- 專案結構: 代理依照
kernel-builder版型產生專案,包含kernel_src/(CUDA 原始碼)、torch-ext/(C++ 綁定)以及build.toml設定檔,指定目標 GPU 的 CUDA 能力(例如 H100 為「9.0」)。 - 多變體建置: 開發者使用 Nix flake 為所有必要的 PyTorch 與 CUDA 組態建置核函數,以確保在不同環境矩陣中的相容性。
- Hub 發佈: 建置完成的二進位檔上傳至 HuggingFace Hub 的模型倉庫。
- 單行載入: 最終使用者可透過
from kernels import get_kernel; rmsnorm = get_kernel("your-org/your-kernel")直接載入預先編譯好的核函數,無需本機編譯。