สร้าง CUDA Kernels ระดับโปรดักชันได้ง่ายขึ้น ด้วย Agent Skills จาก Hugging Face 🚀

การพัฒนา CUDA Kernels ที่มีประสิทธิภาพสูงนั้นซับซ้อนและต้องอาศัยความเชี่ยวชาญเฉพาะทางอย่างมาก โดยเฉพาะอย่างยิ่งเมื่อต้องผสานรวมเข้ากับไลบรารีใหญ่อย่าง Transformers และ Diffusers ซึ่งมีรายละเอียดปลีกย่อยมากมาย ไม่ว่าจะเป็นรูปแบบการเข้าถึงหน่วยความจำเฉพาะสถาปัตยกรรม GPU, กลยุทธ์การทำ Vectorization, หรือแม้แต่การจัดการกับปัญหาการผสานรวมที่อาจทำให้ผู้พัฒนาที่มีประสบการณ์ต้องปวดหัว

Hugging Face ได้เปิดตัว "Agent Skill" ใหม่ที่ออกแบบมาเพื่อแก้ปัญหานี้โดยเฉพาะ ด้วยการสอนให้ Coding Agents สามารถเขียน CUDA Kernels คุณภาพระดับโปรดักชันได้เอง ทำให้กระบวนการที่เคยยากลำบากนี้เข้าถึงได้ง่ายขึ้นมาก

Agent Skill คืออะไร และทำไมถึงสำคัญ?

Agent Skill คือการรวบรวมความรู้เฉพาะทาง (Domain Knowledge) ที่จำเป็นสำหรับงานใดงานหนึ่ง แล้วนำมาบรรจุในรูปแบบที่ Coding Agent สามารถเข้าใจและนำไปใช้งานได้ เมื่อเรานำ Agent Skill นี้ไปใช้กับ Coding Agent อย่าง Claude หรือ Codex มันจะสามารถเรียนรู้และนำความรู้เหล่านั้นไปประยุกต์ใช้ในการสร้าง CUDA Kernels ที่ทำงานได้จริง

เหตุผลที่ Agent Skill นี้มีความสำคัญ:

  • แก้ปัญหาความซับซ้อนของ CUDA Kernels: การพัฒนา CUDA Kernels มีรายละเอียดที่ต้องใส่ใจมากมาย ตั้งแต่การปรับแต่งให้เข้ากับ GPU แต่ละรุ่น (H100, A100, T4) ไปจนถึงการผสานรวมกับโครงสร้างของ Diffusers และ Transformers ซึ่งมีรูปแบบที่แตกต่างกัน
  • ลดช่องว่างของความรู้: ความรู้เหล่านี้มักกระจัดกระจายอยู่ในเอกสาร, Stack Overflow หรือคู่มือการปรับแต่งเฉพาะฮาร์ดแวร์ Agent Skill นี้จะรวบรวมทุกอย่างมาไว้ในที่เดียว
  • เพิ่มประสิทธิภาพ: ช่วยให้นักพัฒนาสามารถสร้าง Kernels ที่ปรับแต่งมาอย่างดี เพื่อเพิ่มความเร็วในการประมวลผล ทั้งในระดับ Kernel เดี่ยวๆ และในระดับ End-to-End ของโมเดล

ติดตั้งและใช้งาน Agent Skill ง่ายๆ

การติดตั้ง Agent Skill นี้ทำได้ง่ายมาก โดยจะมาพร้อมกับไลบรารี kernels ของ Hugging Face

วิธีติดตั้ง:

pip install kernels

หลังจากติดตั้งแล้ว Agent Skill จะถูกวางไว้ในโฟลเดอร์ .claude/skills/cuda-kernels/ ซึ่ง Coding Agent ส่วนใหญ่จะสามารถตรวจจับและใช้งานได้โดยอัตโนมัติ

ตัวอย่างการเรียกใช้งาน:

คุณสามารถสั่งให้ Agent สร้าง Kernel ได้โดยตรง เช่น:

"Write me an RMSNorm kernel for an H100 GPU."

หรือสั่งงานแบบเปิดกว้างมากขึ้น:

"Build a kernel for the diffusers library."

Agent จะสามารถอ่าน Skill, เลือกพารามิเตอร์ GPU ที่เหมาะสม, สร้าง Source Code ของ CUDA Kernel, เขียน PyTorch Bindings, ตั้งค่า build.toml และสร้างสคริปต์สำหรับ Benchmark ได้ด้วยตัวเอง

สิ่งที่ Agent Skill นี้มีให้

Agent Skill นี้ประกอบด้วยข้อมูลกว่า 550 โทเค็น ซึ่งครอบคลุม:

  • การปรับแต่งสำหรับ GPU NVIDIA: ให้คำแนะนำสำหรับการทำ Optimization บน GPU สถาปัตยกรรม H100, A100, และ T4 โดยคำนึงถึง Compute Capabilities, ขนาด Shared Memory, และ Bandwidth
  • รูปแบบการผสานรวม: ครอบคลุมรูปแบบการทำงานกับทั้ง Diffusers และ Transformers รวมถึงปัญหาเฉพาะที่อาจพบเจอ
  • เทมเพลต Kernel: มีเทมเพลตสำหรับ Kernel ที่ใช้ Vectorized Memory Access สำหรับ BF16, FP16, และ FP32
  • เวิร์กโฟลว์ Benchmark: สคริปต์สำหรับวัดประสิทธิภาพทั้งแบบ Kernel เดี่ยว และการเปรียบเทียบ End-to-End
  • การเชื่อมต่อกับ HuggingFace Kernel Hub: สามารถโหลด Community Kernels ผ่าน get_kernel ได้

ทดสอบประสิทธิภาพจริง: Diffusers และ Transformers

ทีมงานได้ทดสอบ Agent Skill นี้กับสองเป้าหมายจริง:

1. Diffusers Pipeline (LTX-Video บน H100)

Agent สามารถสร้าง Kernels สำหรับ RMSNorm, RoPE 3D, GEGLU, และ AdaLN สำหรับ LTX-Video ซึ่งเป็น Video Generation Pipeline โดย Kernel RMSNorm ถูกปรับแต่งพิเศษสำหรับ H100

  • Isolated RMSNorm Benchmark: เปรียบเทียบประสิทธิภาพ Kernel RMSNorm เดี่ยวๆ กับ PyTorch Baseline พบว่า เร็วขึ้นเฉลี่ย 1.88 เท่า โดยมี Bandwidth Efficiency ที่ 34.7% ของ H100
  • End-to-End Video Generation: เมื่อวัดประสิทธิภาพการสร้างวิดีโอแบบ End-to-End พบว่า เร็วขึ้น 6% ซึ่งสอดคล้องกับสัดส่วนการใช้ Compute ของ RMSNorm ใน Pipeline

2. Transformers Model (Qwen3-8B บน H100)

Agent สร้าง Kernel RMSNorm สำหรับ Qwen3-8B ซึ่งเป็น LLM ขนาดใหญ่

  • Isolated RMSNorm Benchmark: เปรียบเทียบประสิทธิภาพ Kernel RMSNorm เดี่ยวๆ กับ PyTorch Baseline พบว่า เร็วขึ้นเฉลี่ย 1.94 เท่า โดยมี Bandwidth Efficiency ที่ 22.3% ของ H100
  • Speedup with Sequence Length: ความเร็วที่เพิ่มขึ้นจะสูงขึ้นตาม Sequence Length โดย เร็วขึ้น 1.58 เท่า ที่ 128 tokens และ 2.47 เท่า ที่ 8192 tokens สำหรับการ Inference แบบ Long-Context Custom Kernel สามารถลด Latency ของ RMSNorm ลงได้เกือบครึ่ง

การเผยแพร่ Kernel ของคุณสู่ HuggingFace Kernel Hub

เมื่อสร้าง Kernel ที่มีประสิทธิภาพด้วย Agent Skill แล้ว คุณสามารถเผยแพร่สู่ HuggingFace Kernel Hub เพื่อให้ผู้อื่นสามารถนำไปใช้ได้ทันทีโดยไม่ต้องคอมไพล์

ขั้นตอน:

  1. ตรวจสอบโครงสร้างโปรเจกต์: Agent จะสร้างโปรเจกต์ที่ได้มาตรฐาน kernel-builder อยู่แล้ว
  2. Build ทุก Variant ด้วย Nix: ใช้ kernel-builder Nix flake เพื่อ Build Kernel ให้รองรับ PyTorch และ CUDA เวอร์ชันต่างๆ โดยอัตโนมัติ
  3. สร้าง Repository บน Hub และ Push: อัปโหลด Kernel ที่ Build แล้วไปยัง Model Repository บน Hugging Face Hub
  4. ให้ผู้อื่นโหลดในบรรทัดเดียว: เมื่อเผยแพร่แล้ว ทุกคนสามารถใช้ Kernel ของคุณได้ง่ายๆ ด้วยคำสั่ง get_kernel ซึ่งจะตรวจจับเวอร์ชัน Python, PyTorch, และ CUDA ของผู้ใช้ และดาวน์โหลด Binary ที่ตรงกันมาให้

สรุป

Agent Skill ใหม่นี้ถือเป็นก้าวสำคัญในการทำให้การพัฒนา CUDA Kernels ที่มีประสิทธิภาพสูงเป็นเรื่องที่เข้าถึงได้ง่ายขึ้นสำหรับทุกคน โดยผสานรวมความรู้เฉพาะทางเข้ากับ Coding Agent และสนับสนุนด้วย HuggingFace Kernel Hub สำหรับการเผยแพร่ ทำให้การสร้างสรรค์และแบ่งปันโซลูชันที่เร่งความเร็วในการประมวลผล AI เป็นไปได้อย่างมีประสิทธิภาพ

#CUDA #AgentSkills #HuggingFace #OpenSource

ขอบคุณ แหล่งข้อมูล
https://huggingface.co/blog/custom-cuda-kernels-agent-skills

สร้าง CUDA Kernels ระดับโปรดักชันได้ง่ายขึ้น ด้วย Agent Skills จาก Hugging Face 🚀การพัฒนา CUDA Kernels ที่มีประสิทธิภาพสูงนั้นซับซ้อนและต้องอาศัยความเชี่ยวชาญเฉพาะทางอย่างมาก โดยเฉพาะอย่างยิ่งเมื่อต้องผสานรวมเข้ากับไลบรารีใหญ่อย่าง Transformers และ Diffusers ซึ่งมีรายละเอียดปลีกย่อยมากมาย ไม่ว่าจะเป็นรูปแบบการเข้าถึงหน่วยความจำเฉพาะสถาปัตยกรรม GPU, กลยุทธ์การทำ Vectorization, หรือแม้แต่การจัดการกับปัญหาการผสานรวมที่อาจทำให้ผู้พัฒนาที่มีประสบการณ์ต้องปวดหัวHugging Face ได้เปิดตัว "Agent Skill" ใหม่ที่ออกแบบมาเพื่อแก้ปัญหานี้โดยเฉพาะ ด้วยการสอนให้ Coding Agents สามารถเขียน CUDA Kernels คุณภาพระดับโปรดักชันได้เอง ทำให้กระบวนการที่เคยยากลำบากนี้เข้าถึงได้ง่ายขึ้นมากAgent Skill คืออะไร และทำไมถึงสำคัญ?Agent Skill คือการรวบรวมความรู้เฉพาะทาง (Domain Knowledge) ที่จำเป็นสำหรับงานใดงานหนึ่ง แล้วนำมาบรรจุในรูปแบบที่ Coding Agent สามารถเข้าใจและนำไปใช้งานได้ เมื่อเรานำ Agent Skill นี้ไปใช้กับ Coding Agent อย่าง Claude หรือ Codex มันจะสามารถเรียนรู้และนำความรู้เหล่านั้นไปประยุกต์ใช้ในการสร้าง CUDA Kernels ที่ทำงานได้จริงเหตุผลที่ Agent Skill นี้มีความสำคัญ:แก้ปัญหาความซับซ้อนของ CUDA Kernels: การพัฒนา CUDA Kernels มีรายละเอียดที่ต้องใส่ใจมากมาย ตั้งแต่การปรับแต่งให้เข้ากับ GPU แต่ละรุ่น (H100, A100, T4) ไปจนถึงการผสานรวมกับโครงสร้างของ Diffusers และ Transformers ซึ่งมีรูปแบบที่แตกต่างกันลดช่องว่างของความรู้: ความรู้เหล่านี้มักกระจัดกระจายอยู่ในเอกสาร, Stack Overflow หรือคู่มือการปรับแต่งเฉพาะฮาร์ดแวร์ Agent Skill นี้จะรวบรวมทุกอย่างมาไว้ในที่เดียวเพิ่มประสิทธิภาพ: ช่วยให้นักพัฒนาสามารถสร้าง Kernels ที่ปรับแต่งมาอย่างดี เพื่อเพิ่มความเร็วในการประมวลผล ทั้งในระดับ Kernel เดี่ยวๆ และในระดับ End-to-End ของโมเดลติดตั้งและใช้งาน Agent Skill ง่ายๆการติดตั้ง Agent Skill นี้ทำได้ง่ายมาก โดยจะมาพร้อมกับไลบรารี kernels ของ Hugging Faceวิธีติดตั้ง:pip install kernelsหลังจากติดตั้งแล้ว Agent Skill จะถูกวางไว้ในโฟลเดอร์ .claude/skills/cuda-kernels/ ซึ่ง Coding Agent ส่วนใหญ่จะสามารถตรวจจับและใช้งานได้โดยอัตโนมัติตัวอย่างการเรียกใช้งาน:คุณสามารถสั่งให้ Agent สร้าง Kernel ได้โดยตรง เช่น:"Write me an RMSNorm kernel for an H100 GPU."หรือสั่งงานแบบเปิดกว้างมากขึ้น:"Build a kernel for the diffusers library."Agent จะสามารถอ่าน Skill, เลือกพารามิเตอร์ GPU ที่เหมาะสม, สร้าง Source Code ของ CUDA Kernel, เขียน PyTorch Bindings, ตั้งค่า build.toml และสร้างสคริปต์สำหรับ Benchmark ได้ด้วยตัวเองสิ่งที่ Agent Skill นี้มีให้Agent Skill นี้ประกอบด้วยข้อมูลกว่า 550 โทเค็น ซึ่งครอบคลุม:การปรับแต่งสำหรับ GPU NVIDIA: ให้คำแนะนำสำหรับการทำ Optimization บน GPU สถาปัตยกรรม H100, A100, และ T4 โดยคำนึงถึง Compute Capabilities, ขนาด Shared Memory, และ Bandwidthรูปแบบการผสานรวม: ครอบคลุมรูปแบบการทำงานกับทั้ง Diffusers และ Transformers รวมถึงปัญหาเฉพาะที่อาจพบเจอเทมเพลต Kernel: มีเทมเพลตสำหรับ Kernel ที่ใช้ Vectorized Memory Access สำหรับ BF16, FP16, และ FP32เวิร์กโฟลว์ Benchmark: สคริปต์สำหรับวัดประสิทธิภาพทั้งแบบ Kernel เดี่ยว และการเปรียบเทียบ End-to-Endการเชื่อมต่อกับ HuggingFace Kernel Hub: สามารถโหลด Community Kernels ผ่าน get_kernel ได้ทดสอบประสิทธิภาพจริง: Diffusers และ Transformersทีมงานได้ทดสอบ Agent Skill นี้กับสองเป้าหมายจริง:1. Diffusers Pipeline (LTX-Video บน H100)Agent สามารถสร้าง Kernels สำหรับ RMSNorm, RoPE 3D, GEGLU, และ AdaLN สำหรับ LTX-Video ซึ่งเป็น Video Generation Pipeline โดย Kernel RMSNorm ถูกปรับแต่งพิเศษสำหรับ H100Isolated RMSNorm Benchmark: เปรียบเทียบประสิทธิภาพ Kernel RMSNorm เดี่ยวๆ กับ PyTorch Baseline พบว่า เร็วขึ้นเฉลี่ย 1.88 เท่า โดยมี Bandwidth Efficiency ที่ 34.7% ของ H100End-to-End Video Generation: เมื่อวัดประสิทธิภาพการสร้างวิดีโอแบบ End-to-End พบว่า เร็วขึ้น 6% ซึ่งสอดคล้องกับสัดส่วนการใช้ Compute ของ RMSNorm ใน Pipeline2. Transformers Model (Qwen3-8B บน H100)Agent สร้าง Kernel RMSNorm สำหรับ Qwen3-8B ซึ่งเป็น LLM ขนาดใหญ่Isolated RMSNorm Benchmark: เปรียบเทียบประสิทธิภาพ Kernel RMSNorm เดี่ยวๆ กับ PyTorch Baseline พบว่า เร็วขึ้นเฉลี่ย 1.94 เท่า โดยมี Bandwidth Efficiency ที่ 22.3% ของ H100Speedup with Sequence Length: ความเร็วที่เพิ่มขึ้นจะสูงขึ้นตาม Sequence Length โดย เร็วขึ้น 1.58 เท่า ที่ 128 tokens และ 2.47 เท่า ที่ 8192 tokens สำหรับการ Inference แบบ Long-Context Custom Kernel สามารถลด Latency ของ RMSNorm ลงได้เกือบครึ่งการเผยแพร่ Kernel ของคุณสู่ HuggingFace Kernel Hubเมื่อสร้าง Kernel ที่มีประสิทธิภาพด้วย Agent Skill แล้ว คุณสามารถเผยแพร่สู่ HuggingFace Kernel Hub เพื่อให้ผู้อื่นสามารถนำไปใช้ได้ทันทีโดยไม่ต้องคอมไพล์ขั้นตอน:ตรวจสอบโครงสร้างโปรเจกต์: Agent จะสร้างโปรเจกต์ที่ได้มาตรฐาน kernel-builder อยู่แล้วBuild ทุก Variant ด้วย Nix: ใช้ kernel-builder Nix flake เพื่อ Build Kernel ให้รองรับ PyTorch และ CUDA เวอร์ชันต่างๆ โดยอัตโนมัติสร้าง Repository บน Hub และ Push: อัปโหลด Kernel ที่ Build แล้วไปยัง Model Repository บน Hugging Face Hubให้ผู้อื่นโหลดในบรรทัดเดียว: เมื่อเผยแพร่แล้ว ทุกคนสามารถใช้ Kernel ของคุณได้ง่ายๆ ด้วยคำสั่ง get_kernel ซึ่งจะตรวจจับเวอร์ชัน Python, PyTorch, และ CUDA ของผู้ใช้ และดาวน์โหลด Binary ที่ตรงกันมาให้สรุปAgent Skill ใหม่นี้ถือเป็นก้าวสำคัญในการทำให้การพัฒนา CUDA Kernels ที่มีประสิทธิภาพสูงเป็นเรื่องที่เข้าถึงได้ง่ายขึ้นสำหรับทุกคน โดยผสานรวมความรู้เฉพาะทางเข้ากับ Coding Agent และสนับสนุนด้วย HuggingFace Kernel Hub สำหรับการเผยแพร่ ทำให้การสร้างสรรค์และแบ่งปันโซลูชันที่เร่งความเร็วในการประมวลผล AI เป็นไปได้อย่างมีประสิทธิภาพ#CUDA #AgentSkills #HuggingFace #OpenSourcehttps://huggingface.co/blog/custom-cuda-kernels-agent-skills
Shared content
HUGGINGFACE.CO
Custom Kernels for All from Codex and Claude
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
2 Reacties 0 aandelen 259 Views 0 voorbeeld