Các kernel CUDA tùy chỉnh cho tất cả mọi người từ Codex và Claude

Hướng dẫn cách tạo các kernel CUDA tùy chỉnh cho các mô hình AI bằng cách sử dụng Codex và Claude.

  • 9 min read
Các kernel CUDA tùy chỉnh cho tất cả mọi người từ Codex và Claude
Hướng dẫn cách tạo các kernel CUDA tùy chỉnh cho các mô hình AI bằng cách sử dụng Codex và Claude.

Tích hợp Kernel Tùy Chỉnh cho Mọi Người từ Codex và Claude

tl;dr: Chúng tôi đã phát triển một kỹ năng cho agent, giúp agent mã hóa học cách viết các kernel CUDA chuyên nghiệp. Sau đó, chúng tôi hướng Claude và Codex vào hai mục tiêu thực tế: một quy trình của diffusers và một mô hình transformers. Các agent đã tạo ra các kernel hoạt động cho cả hai, với các liên kết PyTorch và điểm chuẩn chính xác, từ đầu đến cuối.

Việc viết kernel CUDA rất khó. Việc viết kernel CUDA tích hợp chính xác với transformersdiffusers còn khó hơn. Có các mẫu truy cập bộ nhớ đặc thù theo kiến trúc, chiến lược vector hóa, giảm thiểu warp shuffle và hàng tá cạm bẫy tích hợp có thể làm nản lòng cả những nhà phát triển có kinh nghiệm. Đây chính xác là loại vấn đề chuyên biệt, có rủi ro cao mà các kỹ năng của agent rất phù hợp.

Chúng tôi đã cung cấp cho các agent mã hóa kiến thức chuyên ngành cần thiết, như kiến trúc GPU nào cần nhắm mục tiêu, cách cấu trúc một dự án trình tạo kernel, khi nào nên sử dụng bộ nhớ chia sẻ thay vì thanh ghi và cách viết các liên kết PyTorch. Các agent đã làm phần còn lại. Nếu bạn đã sử dụng kỹ năng huấn luyện LLM hoặc đọc Chúng tôi đã nhờ Claude dạy các mô hình mở, bạn sẽ thấy quen thuộc với quy trình: đóng gói kiến thức chuyên ngành thành một kỹ năng, hướng agent vào một vấn đề và để nó tự làm việc.

Tại sao lại cần kỹ năng cho kernel?

Kernel Hub đã giải quyết vấn đề phân phối các kernel phần cứng tùy chỉnh. Bạn có thể tải các kernel được biên dịch sẵn từ Hub chỉ với một lệnh gọi get_kernel duy nhất. Không cần biên dịch, không cần cờ lệnh. Tuy nhiên, vẫn cần có người nào đó để viết các kernel. Đây là khoảng trống mà kỹ năng này lấp đầy.

Phát triển kernel CUDA có một bề mặt rất lớn:

  • Hướng dẫn tối ưu hóa theo kiến trúc phần cứng cho từng thế hệ GPU. H100, A100 và T4 mỗi loại có các khả năng tính toán, kích thước bộ nhớ chia sẻ và hồ sơ băng thông khác nhau.
  • Trong Thư viện, diffuserstransformers có các cấu trúc mô-đun khác nhau, quy ước chuẩn hóa và mẫu tích hợp. Kernel tùy chỉnh cần được đăng ký trong PyTorch để torch.compile nhận dạng.
  • Để phân phối, kernel có thể phụ thuộc vào các phiên bản CUDA, Pytorch và Python, tạo ra các ma trận môi trường khổng lồ.

Đây là kiến thức chuyên ngành bị mất trong các tab tài liệu và câu trả lời trên Stack Overflow. Kỹ năng agent đóng gói kiến thức này thành ngữ cảnh được tải theo yêu cầu.

Đầu tiên, hãy xem cách sử dụng kỹ năng ngay lập tức, sau đó chúng ta sẽ đi sâu vào chi tiết về cách chúng tôi đánh giá hiệu năng của các kernel.

Cài đặt kỹ năng

Kỹ năng này được đi kèm với thư viện kernels. Cài đặt nó vào agent mã hóa của bạn chỉ với một lệnh:

shell

Chúng ta cần cài đặt kernels từ main cho việc này

pip install git+https://github.com/huggingface/kernels.git#subdirectory=kernels kernels skills add cuda-kernels –claude

Lệnh này sẽ đặt kỹ năng vào .claude/skills/cuda-kernels/, nơi Claude Code và Cursor sẽ nhận diện tự động. Đối với các agent khác:

shell

Codex

kernels skills add cuda-kernels –codex

OpenCode

kernels skills add cuda-kernels –opencode

Đến đích tùy chỉnh

kernels skills add cuda-kernels –dest ./my-agent/skills/

Cài đặt toàn cục (sẵn dùng trên mọi dự án)

kernels skills add cuda-kernels –global

Ghi đè cài đặt hiện có

kernels skills add cuda-kernels –claude –force

Sau khi cài đặt, hãy yêu cầu agent của bạn:

Xây dựng kernel RMSNorm được vector hóa cho H100, nhắm mục tiêu mô hình Qwen3-8B trong transformers.

Hoặc, bạn có thể đưa ra một yêu cầu mở hơn:

Xây dựng kernel attention được tối ưu hóa cho H100, nhắm mục tiêu mô hình Qwen3-8B trong transformers. Đánh giá hiệu năng của nó so với baseline của PyTorch và xác nhận sự cải thiện về hiệu suất đầu cuối.

Agent có thể đọc kỹ năng, chọn các tham số kiến trúc phù hợp, tạo mã CUDA, viết các liên kết PyTorch, thiết lập build.toml và tạo một script đánh giá hiệu năng.

Nếu bạn đang làm việc với các kernel phức tạp hơn, hoặc các tối ưu hóa đặc thù kiến trúc mà không có trong kỹ năng, thì kỹ năng cung cấp các khối xây dựng và mẫu cơ bản để bạn bắt đầu. Chúng tôi cũng sẵn sàng đón nhận đóng góp cho chính kỹ năng đó.

Nội dung trong kỹ năng

Kỹ năng này có khoảng 550 token hướng dẫn có cấu trúc cùng với các script tham khảo, hướng dẫn tối ưu hóa GPU, tài liệu khắc phục sự cố và các ví dụ hoàn chỉnh. Các công cụ mã hóa mang tính tác nhân như Codex và Claude có thể đọc thông tin này và tạo ra một dự án kernel có thể xây dựng.

Nó bao gồm:

  • Tối ưu hóa theo kiến trúc GPU NVIDIA cho H100, A100 và T4 (khả năng tính toán, băng thông bộ nhớ, kích thước bộ nhớ chia sẻ, kích thước khối)
  • Các mẫu tích hợp cho cả diffuserstransformers, bao gồm cả những cạm bẫy cụ thể cho từng thư viện
  • Các mẫu kernel với các mẫu truy cập bộ nhớ vector hóa cho BF16, FP16 và FP32
  • Quy trình đánh giá hiệu năng cho cả các benchmark vi mô kernel riêng lẻ và so sánh quy trình đầu cuối
  • Tích hợp HuggingFace Kernel Hub thông qua get_kernel để tải các kernel cộng đồng

.claude/skills/cuda-kernels/ ├── SKILL.md # Hướng dẫn chính (~550 tokens) ├── scripts/ │ ├── benchmark_example.py # Mẫu benchmark đầu cuối │ ├── benchmark_rmsnorm.py # Benchmark vi mô kernel riêng lẻ │ ├── ltx_kernel_injection_example.py # Mẫu tích hợp Diffusers │ ├── transformers_injection_example.py # Mẫu tích hợp Transformers │ └── huggingface_kernels_example.py # Tích hợp Kernel Hub └── references/ ├── diffusers-integration.md # Hướng dẫn Diffusers với cạm bẫy ├── transformers-integration.md # Hướng dẫn Transformers ├── huggingface-kernels-integration.md ├── h100-optimization-guide.md ├── a100-optimization-guide.md ├── t4-optimization-guide.md ├── kernel-templates.md └── troubleshooting.md

Khi agent tải kỹ năng này, nó sẽ nhận được mọi thứ cần thiết để đi từ “viết cho tôi một kernel RMSNorm” đến một dự án có thể xây dựng và đánh giá hiệu năng. Agent sẽ tìm kiếm và lọc kỹ năng để tìm các tệp và thư mục liên quan. Vì vậy, điều quan trọng là phải cấu trúc kỹ năng theo cách dễ tìm.

Agent được hướng dẫn tạo các kernel tuân thủ các mẫu trong references/kernel-templates.md và tạo một dự án kernel hoàn chỉnh:

examples/your_model/ ├── kernel_src/ │ └── rmsnorm.cu # Mã kernel CUDA ├── torch-ext/ │ ├── your_kernels/init.py │ └── torch_binding.cpp # Liên kết C++ PyTorch ├── benchmark_rmsnorm.py # Script benchmark vi mô ├── build.toml # Cấu hình kernel-builder ├── setup.py # pip install -e . └── pyproject.toml

Chúng tôi đã thử nghiệm điều này trên hai mục tiêu thực tế.

Đánh giá kernel: Diffusers (LTX-Video trên H100)

Agent đã xây dựng các kernel RMSNorm, RoPE 3D, GEGLU và AdaLN cho LTX-Video, một quy trình tạo video từ diffusers. Ví dụ đầy đủ có tại examples/ltx_video/. Chúng tôi đã tối ưu hóa kernel RMSNorm cho H100. Cả hai benchmark đều được chạy trên H100 80GB HBM3 ở độ chính xác BFloat16.

Nếu bạn muốn xem kernel đã tạo, hãy truy cập ví dụ này

Benchmark RMSNorm riêng lẻ

Đầu tiên, chúng tôi so sánh hiệu năng kernel RMSNorm riêng lẻ với baseline của PyTorch. Đây là sự tăng tốc chính trong quy trình được tối ưu hóa.

	</thead><tbody><tr>

Tạo video đầu cuối (49 khung hình, 30 bước, H100 80GB)

Tiếp theo, chúng tôi so sánh hiệu năng tạo video đầu cuối của các kernel được tối ưu hóa so với baseline (không biên dịch) và baseline torch.compile.

	</thead><tbody><tr>

RMSNorm chiếm khoảng 5% tổng thời gian tính toán trong LTX-Video. Thời gian còn lại dành cho attention, phép chiếu tuyến tính và giải mã VAE. Mức tăng tốc 6% đầu cuối từ một loại kernel duy nhất phù hợp với hồ sơ đó.

Đánh giá kernel: Transformers (Qwen3-8B trên H100)

Agent đã xây dựng kernel RMSNorm cho Qwen3-8B, một mô hình ngôn ngữ lớn từ transformers với 65 mô-đun RMSNorm trên 32 lớp. Ví dụ đầy đủ có tại examples/qwen3_8b/. Chúng tôi đã tối ưu hóa kernel RMSNorm cho H100. Cả hai benchmark đều được chạy trên H100 80GB HBM3 ở độ chính xác BFloat16.

Nếu bạn muốn khám phá kernel, hãy xem nó ở đây.

Benchmark RMSNorm riêng lẻ

Một lần nữa, chúng tôi so sánh hiệu năng kernel RMSNorm riêng lẻ với baseline của PyTorch.

	</thead><tbody><tr>

Tốc độ tăng lên theo độ dài chuỗi: 1.58x ở 128 token, 2.47x ở 8192 token. Đối với suy luận ngữ cảnh dài, kernel tùy chỉnh làm giảm một nửa độ trễ RMSNorm.

Xuất kernel của bạn lên Hub

Sau khi xuất bản, mọi người đều có thể sử dụng kernel của bạn mà không cần biên dịch:

python from kernels import get_kernel

rmsnorm = get_kernel(“your-org/your-kernel”)

get_kernel phát hiện phiên bản Python, PyTorch và CUDA của người dùng và tải về bản nhị phân được biên dịch sẵn phù hợp. Không cần biên dịch, không cần cờ lệnh, thường sẵn sàng trong vài giây.

Kỹ năng và Hub là bổ trợ cho nhau. Kỹ năng xử lý quá trình phát triển. Hub xử lý việc phân phối. Xây dựng kernel bằng kỹ năng, xác thực nó bằng các script benchmark, xuất bản nó lên Hub và nó sẽ trở thành một dòng lệnh duy nhất cho mọi người khác.

Kết luận

Chúng tôi đã xây dựng một kỹ năng agent dạy các agent mã hóa cách viết các kernel CUDA chuyên nghiệp. Sau đó, chúng tôi đã hướng Claude và Codex vào hai mục tiêu thực tế: một quy trình diffusers và một mô hình transformers. Các agent đã tạo ra các kernel hoạt động cho cả hai, với các liên kết PyTorch và benchmark chính xác, từ đầu đến cuối. Chúng tôi đã đánh giá hiệu năng của các kernel và nhận thấy rằng các kernel được tối ưu hóa có thể mang lại sự tăng tốc cả trong hiệu năng riêng lẻ và đầu cuối.

Tài nguyên

  • Kỹ năng Kernel CUDA trong kernels
  • Blog HuggingFace Kernel Hub
  • Chúng tôi đã nhờ Claude Tinh chỉnh một LLM Mã Nguồn Mở
  • Chúng tôi đã nhờ Claude Dạy các Mô hình Mở
  • Cộng đồng Kernel HuggingFace

Recommended for You

Gradio gr.HTML- Một ứng dụng web chỉ với một lần nhấn bằng cách sử dụng gr.HTML

Gradio gr.HTML- Một ứng dụng web chỉ với một lần nhấn bằng cách sử dụng gr.HTML

Giới thiệu cách sử dụng gr.HTML để tạo các ứng dụng web chỉ với một lần nhấn bằng Gradio.

IBM và UC Berkeley chẩn đoán lý do các tác nhân doanh nghiệp thất bại bằng cách sử dụng IT-Bench và MAST

IBM và UC Berkeley chẩn đoán lý do các tác nhân doanh nghiệp thất bại bằng cách sử dụng IT-Bench và MAST

IBM và UC Berkeley đã hợp tác để tạo ra một bộ công cụ có tên IT-Bench và MAST để giúp các nhà nghiên cứu hiểu và cải thiện hiệu suất của các tác nhân AI.