AI เอาชนะ CUDA Magic! ByteDance และ Tsinghua ร่วมสร้าง CUDA Agent, ใช้ Reinforcement Learning ของ Agent เพื่อสร้าง Kernel ที่มีประสิทธิภาพสูง

คำสำคัญ: การสร้างเคอร์เนล CUDA, การเรียนรู้แบบเสริมกำลังด้วยเอเจนต์, การปรับปรุงประสิทธิภาพ, KernelBench, สภาพแวดล้อมเสริมทักษะ

ในระดับล่างของโครงสร้างพื้นฐานการเรียนรู้เชิงลึก มีขอบเขตหนึ่งที่ถูกเรียกว่า “เวทมนตร์ดำ” นั่นคือการพัฒนาเคอร์เนล CUDA เมื่อเราเขียนโค้ด PyTorch สองสามบรรทัดที่กระชับ มีน้อยคนที่ตระหนักว่าการดำเนินการระดับสูงเหล่านี้จะถูกคอมไพล์เป็นโปรแกรมเคอร์เนลระดับล่างหลายร้อยหลายพันตัวที่ทำงานบน GPU ของ NVIDIA การเขียนและปรับปรุงเคอร์เนลเหล่านี้เป็นตัวกำหนดความเร็ว ประสิทธิภาพการใช้พลังงาน และแม้แต่ความเป็นไปได้ของการฝึกโมเดลโดยตรง

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

แม้ว่าโมเดลภาษาขนาดใหญ่จะแสดงความสามารถที่แข็งแกร่งในงานเขียนโปรแกรมทั่วไป แต่ในขอบเขตเฉพาะทางของการสร้างเคอร์เนล CUDA พวกมันยังทำได้ไม่ดีไปกว่าคอมไพเลอร์ torch.compile ในตัวของ PyTorch ความจริงนี้ทำให้เกิดคำถามสำคัญ: จะทำให้ AI เรียนรู้ “เวทมนตร์ดำ” นี้ของการปรับปรุง CUDA ได้อย่างไร?

AI เอาชนะ CUDA Magic! ByteDance และ Tsinghua ร่วมสร้าง CUDA Agent, ใช้ Reinforcement Learning ของ Agent เพื่อสร้าง Kernel ที่มีประสิทธิภาพสูง

ในเดือนกุมภาพันธ์ 2026 ทีม AIR จากมหาวิทยาลัยชิงหวาและทีม Seed จาก ByteDance ได้ร่วมกันเผยแพร่บทความวิจัยชื่อ “CUDA Agent: Large-Scale Agentic RL for High-Performance CUDA Kernel Generation” ซึ่งนำเสนอแนวทางแก้ไขของพวกเขา การวิจัยนี้ใช้ระบบการเรียนรู้แบบเสริมกำลังด้วยเอเจนต์ขนาดใหญ่ ทำให้ AI สามารถสร้างเคอร์เนล CUDA ประสิทธิภาพสูงได้ด้วยตนเอง และทำได้ดีกว่าโมเดลโอเพ่นซอร์สและโมเดลปิดที่ทันสมัยที่สุดในหลายระดับความยาก

AI เอาชนะ CUDA Magic! ByteDance และ Tsinghua ร่วมสร้าง CUDA Agent, ใช้ Reinforcement Learning ของ Agent เพื่อสร้าง Kernel ที่มีประสิทธิภาพสูง
คำอธิบายแผนภูมิ: แผนภูมินี้เปรียบเทียบประสิทธิภาพการสร้างเคอร์เนล CUDA ของ GLM 4.6, Kimi K2, Gemini 3 Pro, Claude Opus 4.5 และ CUDA Agent จากตัวชี้วัดหลักสามประเภท: อัตราความถูกต้อง อัตราความเร็วที่เพิ่มขึ้น และอัตราส่วนความเร็ว ในตัวชี้วัดสำคัญที่ใช้วัดความสามารถในการปรับปรุง – อัตราความเร็วที่เพิ่มขึ้น (เทียบกับ torch.compile) และอัตราส่วนความเร็ว CUDA Agent แสดงผลลัพธ์ที่นำโด่งอย่างชัดเจน โดยมีอัตราความเร็วที่เพิ่มขึ้นเกือบ 97% และอัตราส่วนความเร็ว 2.11× ซึ่งสูงกว่าโมเดลอื่นมาก Claude Opus 4.5 และ Gemini 3 Pro แม้จะมีอัตราความถูกต้องสูง (มากกว่า 90%) แต่มีอัตราความเร็วที่เพิ่มขึ้นเพียง 66%-69% ซึ่งแสดงถึงความสามารถในการปรับปรุงที่จำกัด GLM 4.6 และ Kimi K2 มีผลลัพธ์ต่ำกว่าในทุกตัวชี้วัดอย่างเห็นได้ชัด แผนภูมิยืนยันอย่างชัดเจนว่า CUDA Agent ผ่านการฝึกการเรียนรู้แบบเสริมกำลังเฉพาะทาง ได้ก้าวข้ามโมเดลภาษาขนาดใหญ่ทั่วไปในด้านความสามารถในการปรับปรุงที่ตระหนักถึงฮาร์ดแวร์

สารบัญบทความ

  • หนึ่ง ปัญหาของวิธีการที่มีอยู่: ทำไม AI เขียน CUDA ไม่เก่ง?
    • 1.1 เวิร์กโฟลว์แบบไม่ฝึกฝน: ข้อจำกัดโดยธรรมชาติของการพึ่งพาโมเดลพื้นฐาน
    • 1.2 วิธีการปรับแต่ง: ความขาดแคลนข้อมูลและข้อจำกัดในการฝึกฝน
  • สอง CUDA Agent: สามเสาหลักสร้างระบบการเรียนรู้แบบเสริมกำลังด้วยเอเจนต์
    • 2.1 เสาหลักที่หนึ่ง: ไปป์ไลน์สังเคราะห์ข้อมูลฝึกที่ขยายขนาดได้
    • 2.2 เสาหลักที่สอง: วงจรเอเจนต์ที่ผสานทักษะและการออกแบบรางวัลที่แข็งแกร่ง
    • 2.3 เสาหลักที่สาม: การปรับปรุงอัลกอริทึมเพื่อการฝึกที่เสถียร
  • สาม การทดสอบยืนยัน: ก้าวข้ามเบสไลน์ที่แข็งแกร่งที่สุดอย่างครอบคลุม
    • 3.1 การตั้งค่าการทดลอง
    • 3.2 ผลลัพธ์หลัก
    • 3.3 การศึกษาการกำจัดส่วนประกอบ: ทุกองค์ประกอบขาดไม่ได้
  • สี่ การเปรียบเทียบงานที่เกี่ยวข้อง: ตำแหน่งที่โดดเด่นของ CUDA Agent
  • ห้า การวิเคราะห์กรณีศึกษา: CUDA Agent ปรับปรุงเคอร์เนลอย่างไร
    • 5.1 กรณีศึกษา Level 1: การคูณเมทริกซ์แนวทแยง
    • 5.2 กรณีศึกษา Level 2: การปรับปรุงลำดับโอเปอเรเตอร์หลายตัว
    • 5.3 กรณีศึกษา Level 3: ResNet BasicBlock
  • หก ข้อจำกัดและแนวโน้มในอนาคต
  • สรุป: จากเครื่องมือสร้างโค้ดสู่เครื่องมือปรับปรุงระบบ

หนึ่ง ปัญหาของวิธีการที่มีอยู่: ทำไม AI เขียน CUDA ไม่เก่ง?

ก่อนจะเจาะลึกถึงเทคโนโลยีหลักของ CUDA Agent จำเป็นต้องเข้าใจก่อนว่าทำไมวิธีการที่มีอยู่จึงทำงานได้ไม่ดีในงานสร้าง CUDA บทความวิจัยแบ่งงานที่มีอยู่เป็นสองประเภทหลัก:

1.1 เวิร์กโฟลว์แบบไม่ฝึกฝน: ข้อจำกัดโดยธรรมชาติของการพึ่งพาโมเดลพื้นฐาน

วิธีการที่แสดงโดย STARK, ReGraphT, EvoEngineer, CudaForge ใช้เวิร์กโฟลว์แบบไม่ฝึกฝน พวกมันพึ่งพากฎฮิวริสติกที่ออกแบบมาอย่างดีด้วยมือ เพื่อชี้นำโมเดลให้ปรับปรุงเคอร์เนลอย่างต่อเนื่องตามผลตอบรับจากการทำงาน

ปัญหาพื้นฐานของวิธีการเหล่านี้คือ: พวกมันไม่สามารถแก้ไขปัญหาที่โมเดลพื้นฐานขาดความสามารถในการเขียนโค้ด CUDA ด้วยตัวเอง ขีดจำกัดบนของการเพิ่มประสิทธิภาพ ถูกกักไว้อย่างแน่นหนาด้วยความสามารถภายในของโมเดล

1.2 วิธีการปรับแต่ง: ความขาดแคลนข้อมูลและข้อจำกัดในการฝึกฝน

แนวทางการวิจัยอีกสายหนึ่งพยายามเพิ่มความสามารถของโมเดลผ่านการปรับแต่งภายใต้การดูแลหรือการเรียนรู้แบบเสริมกำลัง งานที่เป็นตัวแทนได้แก่ Kevin, CUDA-L1, ConCuR เป็นต้น วิธีการเหล่านี้เผชิญกับความท้าทายสามประการ:
* ข้อมูลฝึกคุณภาพสูงขาดแคลน: การเขียนโค้ดอ้างอิงระดับผู้เชี่ยวชาญด้วยมือมีต้นทุนสูงมาก
* ขอบเขตการฝึกจำกัด: ขยายไปสู่สถานการณ์ที่มีคอนเท็กซ์ยาวและการโต้ตอบหลายรอบได้ยาก
* วงจรการปรับปรุงที่ตายตัว: วงจรการปรับปรุงที่ออกแบบด้วยมือจำกัดความสามารถในการสำรวจด้วยตนเองของเอเจนต์

ที่ร้ายแรงกว่านั้นคือ บางวิธีทำการฝึกและประเมินผลบนชุดข้อมูล KernelBench โดยตรง ซึ่งมีปัญหาการรั่วไหลของข้อมูล ตัวอย่างเช่น CUDA-L1 สร้างข้อมูลสำหรับการปรับแต่งภายใต้การดูแลจากโค้ดอ้างอิงของ KernelBench และใช้การเรียนรู้แบบเสริมกำลังบนงานเบนช์มาร์กเดียวกัน ส่งผลให้ผลลัพธ์ที่รายงานยากต่อการเปรียบเทียบอย่างเป็นธรรม

AI เอาชนะ CUDA Magic! ByteDance และ Tsinghua ร่วมสร้าง CUDA Agent, ใช้ Reinforcement Learning ของ Agent เพื่อสร้าง Kernel ที่มีประสิทธิภาพสูง
รูปที่ 1: ภาพรวมของไปป์ไลน์สังเคราะห์ข้อมูลสามขั้นตอน ไปป์ไลน์นี้เริ่มต้นด้วยการรวบรวมโอเปอเรเตอร์เริ่มต้นจากไลบรารี PyTorch และ Transformer เพื่อสร้างไลบรารีของไพรมิทีฟการคำนวณพื้นฐาน จากนั้นใช้โมเดลภาษาขนาดใหญ่ในการสังเคราะห์แบบผสมผสาน เพื่อสร้างงานโอเปอเรเตอร์หลายตัวที่หลอมรวมกัน สุดท้ายผ่านการกรองตามกฎ เพื่อเก็บเฉพาะงานที่สามารถทำงานได้ มีความแน่นอน ไม่ธรรมดา และมีปริมาณการคำนวณที่เหมาะสม เพื่อรับประกันคุณภาพข้อมูลและความน่าเชื่อถือของการประเมิน ไปป์ไลน์นี้เป็นหัวใจของการสังเคราะห์ข้อมูลที่ขยายขนาดได้ของ CUDA Agent ซึ่งบรรเทาปัญหาการขาดแคลนข้อมูลฝึกสำหรับเคอร์เนล CUDA ประสิทธิภาพสูงได้อย่างมีประสิทธิภาพ

สถาปัตยกรรมระบบแสดงในรูปที่ 1 ประกอบด้วยองค์ประกอบหลักสามส่วนที่ทำงานร่วมกัน: ไปป์ไลน์สังเคราะห์ข้อมูลที่ขยายขนาดได้, สภาพแวดล้อมการพัฒนา CUDA ที่เสริมทักษะ และอัลกอริทึมการเรียนรู้แบบเสริมกำลังสำหรับการฝึกที่เสถียร

2.1 เสาหลักที่หนึ่ง: ไปป์ไลน์สังเคราะห์ข้อมูลฝึกที่ขยายขนาดได้

ความขาดแคลนข้อมูลฝึกคุณภาพสูงเป็นคอขวดแรกที่การสร้างเคอร์เนล CUDA เผชิญ แนวทางแก้ไขของ CUDA Agent ค่อนข้างชาญฉลาด: เมื่องานโอเปอเรเตอร์เดี่ยวที่มีอยู่จำกัด ทำไมไม่ให้ AI รวมงานฝึกใหม่ขึ้นมาเองล่ะ?

ไปป์ไลน์นี้ประกอบด้วยสามขั้นตอน:
* การรวบรวมโอเปอเรเตอร์เริ่มต้น: ทีมงานเริ่มต้นด้วยการดึงโอเปอเรเตอร์อ้างอิงที่ใช้ PyTorch มาจากไลบรารี PyTorch และ Transformers เพื่อสร้างชุดปัญหาที่เป็นตัวเริ่มต้นอย่างครอบคลุม โอเปอเรเตอร์แต่ละตัวถูกแสดงเป็นคลาส Python ที่มีวิธีการเริ่มต้นและฟอร์เวิร์ดพาส
* การสร้างงานแบบผสมผสาน: นี่คือนวัตกรรมหลักของไปป์ไลน์ ทีมวิจัยพบว่า การหลอมรวมโอเปอเรเตอร์หลายตัวเป็นงานเดียว สามารถสร้างปัญหาการปรับปรุงที่มีคุณค่ามากขึ้นสำหรับการฝึกเอเจนต์ CUDA เพราะงานที่หลอมรวมแล้วไม่ใช่แค่การต่อแต่ละโอเปอเรเตอร์ที่ปรับปรุงแล้วเข้าด้วยกัน มันเปลี่ยนมุมมองการปรับปรุง:
1. หลีกเลี่ยงการทำให้ผลลัพธ์กลางเป็นวัตถุในหน่วยความจำส่วนกลาง
2. ผูกแต่ละขั้นตอนการคำนวณเข้าด้วยกันผ่านการแบ่งปันรีจิสเตอร์ หน่วยความจำร่วม และข้อจำกัดการครอบครอง
3. ต้องการกลยุทธ์การแมปแบบขนานและการจัดวางข้อมูลที่เป็นหนึ่งเดียว
โดยเฉพาะอย่างยิ่ง โมเดลภาษาขนาดใหญ่ถูกกระตุ้นให้สุ่มตัวอย่างโอเปอเรเตอร์จากไลบรารีโอเปอเรเตอร์ได้สูงสุด 5 ตัว และเรียงซ้อนตามลำดับเป็นเลเยอร์การคำนวณหนึ่งชั้น
* การกรองงาน: สุดท้าย ทีมงานดำเนินกระบวนการคัดกรองข้อมูลอย่างเข้มงวด โดยคัดงานที่ใช้งานไม่ได้หรือมีคุณภาพไม่ดีออกตามผลตอบรับจากการทำงาน งานที่สร้างขึ้นแต่ละงานต้องเป็นไปตามเกณฑ์สี่ข้อ:
1. สามารถทำงานได้: สามารถทำงานสำเร็จทั้งในโหมด Eager และโหมด Compile
2. มีความแน่นอน: กำจัดโอเปอเรเตอร์ที่มีความสุ่มโดยธรรมชาติ
3. ไม่ธรรมดา: ตรวจสอบว่าผลลัพธ์ภายใต้อินพุตที่ต่างกันไม่ใช่ค่าคงที่ และไม่ใช่ค่าที่แยกแยะเชิงตัวเลขไม่ได้
4. ปริมาณการคำนวณเหมาะสม: จำกัดเวลาในการทำงานของโหมด Eager ไว้ที่ระหว่าง 1ms ถึง 100ms

หลังจากกระบวนการข้างต้น สุดท้ายสร้างชุดข้อมูลฝึก CUDA-Agent-Ops-6K ที่มีตัวอย่าง 6000 ตัวอย่าง

AI เอาชนะ CUDA Magic! ByteDance และ Tsinghua ร่วมสร้าง CUDA Agent, ใช้ Reinforcement Learning ของ Agent เพื่อสร้าง Kernel ที่มีประสิทธิภาพสูง
ตารางที่ 3: องค์ประกอบของชุดข้อมูลฝึกสุดท้าย แสดงสัดส่วนของโอเปอเรเตอร์แต่ละประเภทในชุดข้อมูลหลังการสังเคราะห์และการกรอง ชุดข้อมูลมีองค์ประกอบหลักเป็นโอเปอเรเตอร์ Torch ลำดับที่สอง (คิดเป็น 83.77%) พร้อมทั้งคำนึงถึงงานโอเปอเรเตอร์เดี่ยวง่ายๆ และงานโอเปอเรเตอร์หลายตัวที่ซับซ้อน และนำเข้าโอเปอเรเตอร์ระดับสูงของ Transformers จำนวนเล็กน้อย

เพื่อให้แน่ใจว่าการประเมินเป็นกลาง ทีมงานยังได้ทำการกำจัดมลพิษข้อมูล โดยใช้เครื่องมือวัดความคล้ายคลึงของโค้ดที่ใช้ต้นไม้ไวยากรณ์นามธรรม (AST) เพื่อคัดตัวอย่างที่มีความคล้ายคลึงกับชุดทดสอบ KernelBench สูงเกินไปออก

AI เอาชนะ CUDA Magic! ByteDance และ Tsinghua ร่วมสร้าง CUDA Agent, ใช้ Reinforcement Learning ของ Agent เพื่อสร้าง Kernel ที่มีประสิทธิภาพสูง
รูปที่ 7: การกระจายตัวของความคล้ายคลึง AST สูงสุดระหว่างตัวอย่างฝึกและตัวอย่างประเมิน แกนนอนคือความคล้ายคลึง AST สูงสุด แกนตั้งคือสัดส่วนของตัวอย่างฝึกที่สอดคล้องกับความคล้ายคลึงนั้น กำหนดเกณฑ์มลพิษที่ 0.9 รูปแสดงว่าความคล้ายคลึงของตัวอย่างฝึกทั้งหมดต่ำกว่าเกณฑ์นี้

รูปด้านบนแสดงการกระจายตัวของความคล้ายคลึง AST สูงสุดระหว่างตัวอย่างฝึกแต่ละตัวอย่างกับตัวอย่างประเมินทั้งหมด หลังการกรอง ตัวอย่างฝึกส่วนใหญ่มีคะแนนความคล้ายคลึงต่ำ และไม่มีตัวอย่างใดเกินเกณฑ์กำจัดมลพิษ

2.2 เสาหลักที่สอง: วงจรเอเจนต์ที่ผสานทักษะและการออกแบบรางวัลที่แข็งแกร่ง

หลังจากได้ข้อมูลฝึกคุณภาพสูงแล้ว ความท้าทายต่อไปคือการสร้างสภาพแวดล้อมเชิงโต้ตอบที่ทำให้เอเจนต์สามารถเรียนรู้การพัฒนาเคอร์เนล CUDA ได้อย่างมีประสิทธิภาพ

  • วงจรเอเจนต์: CUDA Agent ปฏิบัติตามกระบวนทัศน์ ReAct โดยสลับกันระหว่างการอนุมาน การดำเนินการ และการสังเกตสภาพแวดล้อม ทำให้เอเจนต์สามารถทำงานเขียนโค้ด การดีบัก และการปรับปรุงประสิทธิภาพได้อย่างต่อเนื่อง กระบวนการทำงานแสดงดังรูปด้านล่าง

AI เอาชนะ CUDA Magic! ByteDance และ Tsinghua ร่วมสร้าง CUDA Agent, ใช้ Reinforcement Learning ของ Agent เพื่อสร้าง Kernel ที่มีประสิทธิภาพสูง
รูปที่ 2: ภาพรวมวงจรเอเจนต์ แสดงกระบวนการทำงานของ CUDA Agent ที่ปฏิบัติตามกระบวนทัศน์ ReAct ประกอบด้วยเอกสารทักษะ พูลทรัพยากร GPU เคอร์เนล CUDA ที่สร้างขึ้น สคริปต์ตรวจสอบความถูกต้องและวิเคราะห์ประสิทธิภาพ และการเปรียบเทียบเวลาในการทำงานของเวอร์ชันการนำไปใช้งานที่ต่างกัน

  • ชุดเครื่องมือพัฒนา: เอเจนต์ติดตั้งชุดเครื่องมือพัฒนาที่ครบถ้วน เพื่อสนับสนุนกระบวนการพัฒนา CUDA แบบครบวงจร รายการเครื่องมือมีดังนี้:

| เครื่องมือ | คำอธิบายฟังก์ชันการทำงาน


⚠️ หมายเหตุ: เนื้อหาได้รับการแปลโดย AI และตรวจสอบโดยมนุษย์ หากมีข้อผิดพลาดโปรดแจ้ง

本文来自网络搜集,不代表คลื่นสร้างอนาคต立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/th/archives/23715

Like (0)
Previous 2 days ago
Next 1 day ago

相关推荐