ROCm™ ได้กลายเป็นสแตกซอฟต์แวร์แบบโอเพ่นที่สำคัญ ออกแบบมาเพื่อตอบสนองความต้องการที่เปลี่ยนแปลงไปของเวิร์กโหลด AI และการเรียนรู้ของเครื่อง (Machine Learning) โดยสร้างขึ้นสำหรับการอนุมานและการฝึกอบรม ROCm มอบประสิทธิภาพระดับแนวหน้า ช่วยให้นักพัฒนาและองค์กรสามารถปรับแต่งเวิร์กโหลดของตนให้มีประสิทธิภาพ ความสามารถในการขยายขนาด และประหยัดต้นทุน
ความสามารถในการอนุมานของ ROCm ได้แสดงถึงประสิทธิภาพระดับแนวหน้าและได้รับการยอมรับจากผู้นำในอุตสาหกรรม เช่น Microsoft และ Meta
ตัวอย่างเช่น Meta เพิ่งเน้นย้ำในงาน AMD Advancing AI ว่าการจราจรสดทั้งหมดสำหรับโมเดล Meta Llama 405B ได้รับการสนับสนุนจาก GPU AMD Instinct™ MI300X เนื่องจากมีหน่วยความจำขนาดใหญ่ ซึ่งสามารถใช้จำนวน GPU น้อยลงในการรันโมเดลได้
ROCm ยังแสดงให้เห็นถึงศักยภาพด้านประสิทธิภาพที่แข็งแกร่งสำหรับมาตรฐานการวัดประสิทธิภาพในอุตสาหกรรม เช่น MLPerf®
เมื่อเราพัฒนาความสามารถของซอฟต์แวร์ ROCm อย่างต่อเนื่อง เราให้ความสำคัญมากขึ้นในการนำเสนอโซลูชันการฝึกอบรมที่แข็งแกร่งเพื่อเสริมความสามารถในการอนุมานที่กำลังขยายตัว บล็อกนี้สำรวจว่า ROCm เพิ่มประสิทธิภาพการฝึกอบรมและปรับแต่งประสิทธิภาพสำหรับโมเดลยอดนิยมอย่างไร ในขณะที่นำเสนอแนวทางการพัฒนาในอนาคต
มุ่งเน้นไปที่เวิร์กโหลดการฝึกอบรม
การส่งมอบข้อกำหนดสำคัญสำหรับความเป็นผู้นำในการฝึกอบรมแบบครบวงจร (End-to-End Training Leadership) การฝึกอบรมโมเดล AI ที่ทันสมัย เช่น Llama และ Mistral ต้องใช้การปรับแต่งทั้งซอฟต์แวร์และฮาร์ดแวร์เพื่อให้บรรลุขนาดและความมีประสิทธิภาพที่จำเป็น ROCm แก้ไขปัญหาเหล่านี้ผ่านแนวทางแบบองค์รวม ซึ่งเพิ่มประสิทธิภาพแบบครบวงจร (E2E) ในขณะที่มุ่งเน้นไปที่กรณีการใช้งานในโลกจริง ซึ่งเกี่ยวข้องกับการปรับแต่งการทำงานหลัก เช่น การคำนวณเมทริกซ์ การปรับปรุงเทคนิคการขนานสำหรับการฝึกอบรมแบบกระจาย และการใช้อัลกอริธึมขั้นสูง เช่น Flash Attention และการฝึกอบรมแบบผสมความแม่นยำ โดยการปรับแต่งการปรับแต่งเหล่านี้ให้เหมาะสมกับสถาปัตยกรรมเฉพาะ ROCm ทำให้สามารถทำงานได้อย่างแข็งแกร่งและปรับตัวได้สำหรับนักพัฒนา
AMD มุ่งมั่นที่จะส่งมอบสแตกซอฟต์แวร์ ROCm ที่หลากหลายและแข็งแกร่ง พร้อมปรับแต่งสำหรับเวิร์กโหลดการฝึกอบรม ความก้าวหน้าล่าสุดรวมถึงการปรับแต่ง BF16 สำหรับ hipBLASLt และการรองรับ FP8 สำหรับการอนุมานและการฝึกอบรม โดยรองรับทั้งรูปแบบ E4M3 และ E5M2 นอกจากนี้ยังมีการปรับแต่งที่สำคัญอื่น ๆ ที่วางแผนไว้สำหรับการสนับสนุนที่ใกล้จะเกิดขึ้น เช่น Transformer Engine, การปรับปรุง GEMM heuristics และการเปิดตัว TunableOps แบบเต็มใน PyTorch เวอร์ชันใหม่ ซึ่งจะช่วยให้นักพัฒนามีวิธีง่าย ๆ ในการปรับแต่ง GEMM สำหรับกรณีการใช้งานเฉพาะของพวกเขา
ไฮไลท์ประสิทธิภาพ
ประสิทธิภาพการฝึกอบรมที่แข็งแกร่งครอบคลุมหลายโมเดล ประเภทข้อมูล และเฟรมเวิร์ก ความก้าวหน้าล่าสุดของ ROCm ส่งมอบประสิทธิภาพที่แข็งแกร่งสำหรับโมเดล เช่น Llama, Mistral และ FLUX โดยใช้รูปแบบข้อมูล FP8 และ BF16 ควบคู่ไปกับการปรับแต่งที่สำคัญ ประสิทธิภาพที่เพิ่มขึ้นมีผลมาจากทั้งการปรับแต่งซอฟต์แวร์ เช่น การปรับปรุง Flash Attention v3 การปรับแต่ง GEMM ที่เจาะจง การปรับแต่งการฝึกอบรม FP8 และการสนับสนุนที่ดีขึ้นสำหรับ sliding window attention (SWA) รวมถึงข้อได้เปรียบทางสถาปัตยกรรม เช่น ขนาดแบตช์ที่ใหญ่ขึ้น ซึ่งเป็นผลมาจากหน่วยความจำ HBM ที่มีความจุสูงของ MI300X และ MI325X
FP8 FLOPs แสดงถึงข้อได้เปรียบด้านประสิทธิภาพการฝึกอบรมแบบครบวงจร (E2E) สำหรับ AMD Instinct MI300X และ MI325X ในโมเดลยอดนิยม เช่น Llama 3.1 8B และ Mistral 7B เมื่อเทียบกับ Nvidia H100 และ H200 ตามลำดับ ตัวอย่างเช่น ข้อได้เปรียบของหน่วยความจำ HBM3 ขนาด 192GB ทำให้ MI300X ไม่เพียงแต่ให้ประสิทธิภาพสูงกว่า ~1.2 เท่า แต่ยังสามารถรองรับขนาดแบตช์ที่ใหญ่กว่า 6 เท่าเมื่อเทียบกับ H100 ที่รองรับขนาดแบตช์เพียง 2 โดยใช้ความยาวลำดับ 4k

ดังที่แสดงด้านล่าง ข้อได้เปรียบด้านประสิทธิภาพที่คล้ายคลึงกันสามารถสังเกตได้โดยใช้ BF16 เช่นกัน โดยที่ GPU AMD Instinct ให้ TFLOPs/s ที่สูงกว่า GPU Nvidia
แม้ว่าประสิทธิภาพจะมีความสำคัญในการประเมิน GPU แต่ความสามารถและต้นทุนรวมในการเป็นเจ้าของ (TCO) มีบทบาทสำคัญในการประเมินภูมิทัศน์การแข่งขัน GPU MI300X ที่มีหน่วยความจำ HBM3 ขนาด 192GB และ MI325X ที่มี HBM3E ขนาด 256GB ให้ข้อได้เปรียบที่ไม่เหมือนใครเหนือ H100 และ H200 ซึ่งแตกต่างจาก GPU H100 ซึ่งต้องใช้โหนดหลายโหนดเพื่อรองรับโมเดล Llama 3.1 70B เต็มรูปแบบที่ความแม่นยำ 16 บิต ทั้ง MI300X และ MI325X เปิดใช้งานการปรับน้ำหนักแบบเต็มบนโหนดที่น้อยกว่า ซึ่งช่วยลดต้นทุน ลดความซับซ้อนในการจัดการโครงสร้างพื้นฐานการฝึกอบรม และลดความจำเป็นในการใช้เทคนิคการประมวลผลแบบขนานที่ซับซ้อน ทำให้ได้เปรียบอย่างมากในทั้งสองอย่างและประสิทธิภาพ

แม้ว่า GPU AMD Instinct จะแสดงให้เห็นถึงประสิทธิภาพที่น่าประทับใจสำหรับโมเดลภาษาเช่น Llama และ Mistral แต่ยังมอบประสิทธิภาพที่สามารถแข่งขันได้สูงบนโมเดลการสร้างภาพเช่น FLUX อีกด้วย
ในตัวอย่างด้านล่าง เราจะแสดงให้เห็นว่าการปรับแต่งสำหรับงานต่างๆ เช่น การสร้างภาพด้วย FLUX ช่วยให้เราแสดงประสิทธิภาพที่สามารถแข่งขันได้บน MI300X เมื่อเปรียบเทียบกับ H100

วิธีเข้าถึงคุณสมบัติเหล่านี้
AMD ให้บริการคอนเทนเนอร์สาธารณะที่กำหนดค่าไว้ล่วงหน้าพร้อมการปรับแต่งล่าสุด เพื่อช่วยให้นักพัฒนาสามารถใช้ศักยภาพเต็มที่ของ ROCm ทำตามตัวอย่างทีละขั้นตอนเพื่อรันโมเดลที่กล่าวถึงข้างต้นด้วย docker การฝึกอบรม pytorch ที่ปรับแต่งโดย AMD ศึกษาวิธีเริ่มต้นใช้งานคอนเทนเนอร์ ROCm ได้ที่บล็อก ROCm
บทสรุป
ROCm ยังคงกำหนดสิ่งที่เป็นไปได้ใหม่ ๆ ในด้าน AI และการเรียนรู้ของเครื่องผ่านสแตกซอฟต์แวร์ที่ครอบคลุม จากประสิทธิภาพการอนุมานที่เป็นผู้นำจนถึงประสิทธิภาพการฝึกอบรมที่แข่งขันได้ในปัจจุบัน ROCm มอบเครื่องมือที่จำเป็นสำหรับการจัดการความท้าทายที่ยากที่สุดใน AI ด้วยการปรับแต่งอย่างต่อเนื่องและการมุ่งมั่นที่จะเข้าถึงได้ผ่านโอเพ่นซอร์สและคอนเทนเนอร์สาธารณะ ROCm กำลังเปิดเส้นทางสำหรับนักวิจัยและวิศวกร AI ในการปลดล็อกความก้าวหน้าใน AI
สำรวจเครื่องมือล่าสุดและเข้าร่วมกับชุมชนนักพัฒนา ROCm ที่กำลังเติบโตเพื่อใช้ศักยภาพเต็มที่ของการสร้างสรรค์นวัตกรรม AI หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการพัฒนา AI บน GPU ของ AMD โปรดเยี่ยมชมศูนย์พัฒนา AI
END NOTES
[1, 2]: Testing conducted on 01/29/20025 by AMD. The overall training text generation throughput was measured in Tflops/s/GPU for Llama-3.1 8B using FP8 & BF16 with a sequence length of 4096 tokens and batch size 6 for MI300X and 1 for H100. Mistral 7B using FP8 & BF16 using a sequence length of 8192 using a batch size of 3 for BF16 and 4 for FP8 on MI300X and batch size 1 for H100. FLUX.1-dev using BF16 and batch size 10 for MI300X and 3 for H100.
[1, 2]: Testing conducted on 01/29/20025 by AMD. The overall training text generation throughput was measured in Tflops/s/GPU for Llama-3.1 8B using FP8 & BF16 with a sequence length of 4096 tokens and batch size 8 for BF16 and 10 for FP8 for MI325X and 4 for H1200. Mistral 7B using FP8 & BF16 using a sequence length of 8192 using a batch size of 5 for BF16 and 6 for FP8 on MI325X and batch size 2 for BF16 and 3 for FP8 H200. FLUX.1-dev using BF16 and batch size 10 for MI325X and 3 for H200.
Configurations:
Supermicro GPU A+ Server AS – 8125GS-TNMR2 with 2x AMD EPYC 9654 Processors, 2304 GB DDR5 memory with 8x AMD Instinct MI300X (192GB HBM3, 750W) GPUs, Ubuntu® 22.04.5 LTS with Linux kernel 5.15.0-122-generic, System BIOS 5.27; and a pre-release version of ROCm™ 6.3.
Vs.
Supermicro AS -8125GS-TNHR 2x AMD EPYC 9654 96-Core Processor, 2304 GB DDR5 memory with 8x NVIDIA H100 80GB HBM3 [PB1] (80GiB, 700W) GPUS, Ubuntu 22.04.5 LTD with Linux kernel titan 6.8.0-51-generic, System BIOS 3.5.0, CUDA® 12.6
Dell PowerEdge XE9680 with 2x Intel Xeon Platinum 8480+ Processors, 4096 GiB (32 DIMMS, 4400 mts, 128 GiB/DIMM), 8x AMD Instinct MI325X (256GiB, 1000W) GPUs, Ubuntu 22.04.2 LTS with Linux kernel 5.15.0-122-generic, and a pre-release build of ROCm 6.3 Vs. Supermicro SuperServer with 2x Intel Xeon Platinum 8468 Processors, 3 TiB (32 DIMMs, 4400 mts, 96 GiB/DIMM, 16 channels, 2 DIMMs/channel) memory, 8x Nvidia H200 (140GB, 700W) GPUs, Ubuntu 22.04.5 LTS with Linux kernel 5.15.0-122-generic, CUDA 12.6