ประสิทธิภาพต่อดอลลาร์กำลังเร็วขึ้นและถูกลง
(wafer.ai)- ขณะที่ความต้องการ inference แซงหน้าอุปทาน และต้นทุนของ NVIDIA GPU กับโทเคนเพิ่มสูงขึ้น AMD MI355X กำลังกลายเป็นทางเลือก inference ต้นทุนต่ำ โดยมีราคาต่อ GPU ถูกกว่า B300 โดยเฉลี่ยประมาณ 2.75 เท่า
- AMD Instinct ตระกูล MI350 แข่งขันกับ Blackwell ได้ในระดับซิลิคอน แต่ ความได้เปรียบด้านซอฟต์แวร์ และการรองรับ day-0 ของ NVIDIA เป็นตัวกำหนดความเร็วการให้บริการจริงและความยากง่ายในการนำไปใช้
- Wafer ปรับแต่ง GLM-5.2 บน MI355X จนทำได้ 2626 tok/s/node และ 2.4 rps ในเวิร์กโหลดอินพุต 20k/เอาต์พุต 1k พร้อม cache hit rate 60% ซึ่งเท่ากับประมาณ 80% ของประสิทธิภาพที่วัดได้บน B200
- เมื่อวัดแบบ single stream ทำได้ 213 tok/s ที่อินพุต 10k โทเคน/เอาต์พุต 1.5k โทเคน แม้ไม่ได้อยู่ระดับบนสุดของลีดเดอร์บอร์ด แต่ถูกมองว่าได้เปรียบด้านต้นทุนต่อประสิทธิภาพ
- ผลลัพธ์ครั้งนี้ได้มาโดยไม่ใช้ custom kernel แต่อาศัยการแก้บั๊กเฟรมเวิร์ก, quantization, speculative decode และการจูนการเลือก MoE kernel จึงทำให้โจทย์ของ AMD ค่อย ๆ ใกล้เคียงกับ ปัญหาด้านการสนับสนุน มากกว่าตัวซอฟต์แวร์เอง
ต้นทุน inference ของ AMD และช่องว่างซอฟต์แวร์กับ NVIDIA
- ความต้องการ inference เพิ่มขึ้นอย่างรวดเร็วและแซงหน้าอุปทาน ขณะที่โมเดลแนวหน้าอย่าง Claude Fable, GLM-5.2 และ Minimax M3 ออกมาแทบทุกสองสัปดาห์ ทำให้ความต้องการโทเคนเพิ่มขึ้นด้วย
- อุปทานของ Blackwell ยังไม่เพียงพอ ทำให้ราคาของ NVIDIA GPU และต้นทุนโทเคนมีแนวโน้มแพงขึ้นพร้อมกัน
- AMD MI355X มีราคาต่อ GPU ถูกกว่า B300 โดยเฉลี่ยประมาณ 2.75 เท่า และสเปกฮาร์ดแวร์อยู่ในระดับที่เทียบเคียงกันได้
- AMD Instinct ตระกูล MI350 แข่งขันกับ Blackwell ได้ในระดับซิลิคอน แต่ NVIDIA สามารถให้บริการ inference ของโมเดลล่าสุดได้เร็วกว่าและมีแรงเสียดทานน้อยกว่า ด้วย การรองรับ day-0 และระบบนิเวศซอฟต์แวร์
- บน MI355X และสแต็ก ROCm หลายครั้งประสิทธิภาพ SOTA ของโมเดลแนวหน้าล่าสุดไม่ได้ออกมาโดยปริยาย และบางครั้งแม้แต่อิมเมจที่รันได้ก็หาได้ยาก
- หากไม่มีการรองรับ day-0 การ build และปรับแต่งโมเดลล่าสุดต้องใช้เวลาวิศวกรรมและ compute หลายสัปดาห์ ระหว่างนั้นก็มีโมเดลใหม่กว่าออกมา ทำให้ AMD อยู่ในสถานะต้องไล่ตามอย่างต่อเนื่อง
ประสิทธิภาพ GLM-5.2 บน MI355X
- Wafer มองว่าช่องว่างในภาคสนามระหว่าง AMD และ NVIDIA กำลังลดลง เมื่อ agent ช่วยปรับปรุงงาน kernel และการปรับแต่งโมเดลได้มากขึ้น
- ทำได้ 2626 tok/s/node ในเวิร์กโหลดอินพุต 20k/เอาต์พุต 1k พร้อม cache hit rate 60%
- sustained RPS อยู่ที่ 2.4 rps
- knee ที่กำหนดคือ TTFT ไม่เกิน 5 วินาที
- เท่ากับประมาณ 80% ของประสิทธิภาพที่วัดบน B200
- MI355X ถูกกว่ามากกว่า 2 เท่า
| sustained RPS | tok/s/node รวม | TTFT p50 / p95 | อัตราสำเร็จ |
|---|---|---|---|
| 0.5 | 449 | 0.59s / 0.60s | 100% |
| 1.0 | 974 | 0.60s / 0.81s | 100% |
| 1.5 | 1913 | 0.62s / 1.03s | 100% |
| 2.0 | 1944 | 0.62s / 1.05s | 100% |
| 2.25 | 2089 | 0.63s / 1.23s | 100% |
| 2.4 อิ่มตัว | 2626 | 0.81s / 2.22s | 100% |
- ตาม เกณฑ์ของ Artificial Analysis GLM-5.2 แบบ single stream ทำได้ 213 tok/s ที่อินพุต 10k โทเคน/เอาต์พุต 1.5k โทเคน
- ตัวเลขนี้ไม่ได้อยู่ระดับบนสุดของลีดเดอร์บอร์ด Artificial Analysis แต่ถูกมองว่าได้เปรียบในด้านต้นทุนต่อประสิทธิภาพ
- การทดสอบให้บริการบนความจุ AMD MI355X ของ TensorWave
การเลือก quantization และเฟรมเวิร์ก inference
- ขั้นตอนแรกคือการเลือก quantization และเฟรมเวิร์ก โดย Wafer ใช้ AMD Quark ทำ MXFP4 quantization กับ GLM-5.2 ที่ใช้ bf16 เป็นฐาน
- เมื่อเทียบกับ quantization FP8 ทางการของ z-ai แล้ว MXFP4 ถูกประเมินว่าแทบไม่มีการสูญเสียใน GPQA-Diamond, tau2 และ GSM8K
| การประเมิน | ค่าอ้างอิง FP8 | MXFP4 | Δ |
|---|---|---|---|
| GSM8K, 200 ข้อ, 5-shot, greedy | 0.965 ± 0.013 | 0.955 ± 0.014 | −0.010 |
| GPQA-Diamond, 198 ข้อ × 2 seeds, temp 1.0 | 0.9217 ± 0.027 | 0.9026 ± 0.029 | −0.019 |
| tau2 macro | 0.819 | 0.834 | +0.015 |
- ตัวเลือกเฟรมเวิร์ก inference มี 3 ตัวคือ vLLM, ATOM, sglang
- vLLM ไม่สามารถใช้ประโยชน์จากน้ำหนัก MXFP4 ได้ เพราะเส้นทาง MXFP4 + GlmMoeDsa ไม่ทำงาน
- ATOM ทำให้คุณภาพเอาต์พุตลดลงเมื่อใช้คอนเท็กซ์ยาว
- sglang มีแรงเสียดทานน้อยที่สุดจนกว่าจะได้การรองรับแบบเนทีฟ และยังคงเอาต์พุตที่สม่ำเสมอพร้อมใช้ประโยชน์จาก quantization ได้
ปัญหาสองอย่างที่ขวาง speculative decode
- เพื่อปรับปรุง throughput Wafer พยายามเปิดใช้ speculative decode ใน sglang แต่อิมเมจ sglang ROCm ไม่ได้รองรับโดยปริยาย
- เพื่อให้ MTP ทำงานอย่างถูกต้อง ต้องแก้ไขสองจุด
- ปัญหาแรกคือ shared expert ของ MTP head ถูกบันทึกเป็น bf16 แต่การ lookup quantization ของ sglang พยายาม build เป็น MXFP4 เพราะ prefix ของโมดูลไม่ตรงกัน
- Quark ตั้งชื่อ bf16 shared expert เป็น
model.layers.78.mlp.shared_experts.* - prefix จริงของ MTP layer คือ
model.decoder.* - ความไม่ตรงกันนี้ทำให้ตอนโหลดพยายามอ่านน้ำหนัก bf16 แบบ full-width เข้าไปในสล็อต 4-bit แบบ half-width และการ initialize ล้มเหลวด้วย shape mismatch
- Wafer คัดลอกรายการ layer 78 เพิ่มอีกชุดเป็นชื่อ decoder ที่ sglang ใช้จริง ทำให้เปิด speculative decode ได้ และ throughput แบบ single stream เพิ่มขึ้นเกือบ 3 เท่า
- Quark ตั้งชื่อ bf16 shared expert เป็น
- ปัญหาที่สองคือ speculative decode แบบลึก เช่นการตั้งค่า 5/1/6 ที่ z-ai แนะนำ ถูกบล็อกไว้
- fused multi-step metadata kernel ที่ต้องใช้เมื่อ draft depth ตั้งแต่ 4 ขึ้นไปเขียน
#include <cuda_runtime.h>โดยไม่มี ROCm guard - แก้ด้วยการเพิ่ม
#ifdef USE_ROCMguard เพียงจุดเดียว
- fused multi-step metadata kernel ที่ต้องใช้เมื่อ draft depth ตั้งแต่ 4 ขึ้นไปเขียน
- หลัง speculative decode ทำงานถูกต้องแล้ว เมื่อต่อยอดด้วยการปรับแต่งค่าต่าง ๆ เช่น
--kv-cache-dtype fp8_e4m3และ--enable-aiter-allreduce-fusionก็ไปถึงการ decode แบบ single stream ที่ 213 tok/s
คอขวด throughput รวมและการจูน MoE
- ในเวิร์กโหลดที่กำหนด การปรับแต่ง decode อย่างเดียวไม่เพียงพอ และคอขวดหลักภายใต้เงื่อนไขอินพุต 20k กับ cache 60% คือ prefill
- ในคอนฟิก TP8 ที่ปรับสำหรับ single stream decode นั้น MI355X รัน GLM-5.2-MXFP4 ได้ 1461 tok/s/node
- เมื่อเปลี่ยนเป็น TP4×DP2 ทำได้ 1944 tok/s/node และ 2.0 RPS บนเวิร์กโหลดเดียวกัน
- อย่างไรก็ตาม ประสิทธิภาพ Blackwell ที่ Wafer วัดได้คือ 3192 tok/s/node ที่ 3.0 RPS และประสิทธิภาพ prefill ของ MI355X ค่อนข้างช้ากว่า
- สาเหตุใหญ่คือ fp4 MoE ของ GLM-5.2 ในอิมเมจ sglang เงียบ ๆ ตกไปใช้ FlyDSL heuristic fallback ที่ช้า
- aiter มีคอนฟิกที่จูนไว้เฉพาะเส้นทาง a8w8/fp8 เท่านั้น
- Wafer จูนการเลือก MoE kernel เองให้เหมาะกับ shape แบบ fp4 ของ GLM
- shape เป้าหมายคือ
model_dim 6144,moe_inter 2048,E=256,topk=8
- การจูนนี้ทำให้ throughput รวมไปถึง 2626 tok/s/node และ 2.4 RPS
สิ่งที่จำเป็นต่อการทำประสิทธิภาพ SOTA บน AMD
- กระบวนการเพื่อให้ได้ต้นทุนต่อประสิทธิภาพสูงสุดบน MI355X มีแรงเสียดทานอยู่บ้าง แต่ถูกประเมินว่าไม่ได้ยากเป็นพิเศษ
- ต่างจากงาน Qwen3.5 397B ครั้งนี้ไม่ได้เขียน custom kernel
- งานวิจัยนี้ไม่ได้พิจารณาประสิทธิภาพแบบ multi-node แต่การ deploy แบบ single-node ยังคงถูกใช้อย่างแพร่หลายในสภาพแวดล้อมจริง
- ปัญหาของการทำประสิทธิภาพ SOTA บน AMD กำลังกลายเป็น ปัญหาด้านการสนับสนุน มากกว่าตัวซอฟต์แวร์เองมากขึ้นเรื่อย ๆ
- ข้อสรุปคือ CUDA moat กำลังอ่อนลงแบบเรียลไทม์
1 ความคิดเห็น
ความเห็นจาก Hacker News
อยากให้การเปรียบเทียบแบบนี้ใส่ตัวชี้วัด ประสิทธิภาพต่อวัตต์ มาด้วย จะได้รู้ว่า AMD อยู่ตรงไหนในแง่ความคุ้มค่าต่อประสิทธิภาพจริง
ถ้าคุยกับบริษัทที่พยายามสร้างดาต้าเซ็นเตอร์นอกสหรัฐฯ หลายแห่งจะบอกว่าหาเครื่อง Nvidia ให้ได้ในปริมาณมากพอนั้นยาก
ถ้า AMD แข่งขันได้ในด้านประสิทธิภาพต่อวัตต์และ การรองรับซอฟต์แวร์ ก็ค่อนข้างเชื่อถือได้ เรื่องนี้จะสำคัญมาก เพราะนอกสหรัฐฯ ค่าไฟมักแพงกว่าเมื่อเทียบกัน
ถ้าทำให้ดาต้าเซ็นเตอร์ขนาดเล็กเกิดขึ้นได้ในราคาที่เหมาะสม AMD ก็ดูมีโอกาสเป็นส่วนหนึ่งของสแตกในภูมิภาคที่ซัพพลาย Nvidia มีจำกัด
แต่ก็ไม่แน่ใจนักว่าการจัดหา GPU ของ AMD ในทางปฏิบัติเป็นอย่างไร และนอกจาก Wafer ในสหรัฐฯ กับอีกไม่กี่บริษัทแล้ว แทบไม่เคยเห็นใครใช้ AMD เลย เลยไม่รู้ว่าตัวเองอาจติดอยู่ในฟองสบู่ Nvidia หรือเปล่า
ถ้าสมมติว่าเปิดรันที่ 100% ตลอด 8 ปี ก็จะใช้ไฟประมาณ 1GWh ซึ่งแม้แต่ในที่ที่ไฟแพงอย่างเยอรมนีก็ยังอยู่ราว 100,000 ยูโร จึงไม่มากนักเมื่อเทียบกับราคาเครื่องเริ่มต้น 500,000 ดอลลาร์
ปัญหาที่แท้จริงของการใช้ไฟสูงไม่ใช่ค่าไฟ แต่เป็น ขีดจำกัดของกำลังไฟที่ดึงเข้าดาต้าเซ็นเตอร์ได้ การจัดระบบที่มีประสิทธิภาพมากกว่าหมายถึงยัดเครื่องเข้าไปได้มากขึ้นภายใต้ข้อจำกัดไฟฟ้าเท่าเดิม
ตลาดต้องการคู่แข่งที่แท้จริงของ Nvidia มาก โดยเฉพาะในเรื่อง ประสิทธิภาพ/วัตต์
OpenAI ก็เช่นกัน: https://www.amd.com/en/newsroom/press-releases/2025-10-6-amd...
น่าสนใจก็จริง แต่ในการใช้งานจริง แทบไม่มีกรณีที่ การควอนไทซ์แบบ FP4 จะไร้การสูญเสียอย่างแท้จริง ผู้ให้บริการหลายรายโฆษณาอัตราโทเคนต่อวินาทีสูงกับ Kimi และ GLM แต่ตัวโมเดลกลับถูกลดทอนความสามารถไปจนไม่ใกล้กับคุณภาพระดับแนวหน้าอีกต่อไป
หวังว่ามันจะไม่จริง
ต่างจาก GLM ที่ใช้ความละเอียด 16 บิตเป็นพื้นฐาน และ 8 บิตก็พบได้บ่อย
ดังนั้นคนจึงควรสร้าง การควอนไทซ์แบบ MXFP6 ที่แทบไม่สูญเสีย และมีประสิทธิภาพใกล้ FP4 มากกว่า FP8 อย่างมาก
ผมยังไม่ได้ทดสอบโมเดลที่แปลงเป็น NVFP4 ของ Nvidia มากพอนอกจาก GLM 5.2 แต่เท่าที่ดูผมว่าก็โอเค
จากที่ลองใช้เอง ผลลัพธ์แกว่งไปตามแต่ละโมเดล
ผมนึกว่าจะพูดถึงเส้นทางการพัฒนาให้เร็วขึ้นและถูกลง แต่บทความนี้กลับดูเหมือนขาย เวอร์ชันควอนไทซ์ ในราคาเท่ากับเวอร์ชันเต็ม และขายเวอร์ชันเร็วในราคาที่แพงกว่ามาก
นี่แทบจะเป็นเรื่องธรรมดาไม่ใช่หรือ? ประสิทธิภาพต่อดอลลาร์ ควรดีขึ้นไปทางเดียวเหมือนแรตเช็ต ของที่แพงกว่าจะมาแทนของที่ถูกกว่าได้อย่างไร?
ผมว่าบทความที่ใช้ชื่อแบบนี้ควรถูกทำให้ผิดกฎหมายถ้าไม่ระบุ วิธีควอนไทซ์ ไว้ในชื่อ
.aiหรือไม่ ถ้าใช่ ก็มีโอกาสสูงมากว่าจะเป็นบทความทำแบบขอไปที คลิกเบต ตื้นเขิน ไร้ประโยชน์ หรือหลอกลวงการประมวลผลในหน่วยความจำ และแนวคิดนิวโรมอร์ฟิกมีแนวโน้มจะผลักดันกระแสนี้แรงขึ้นมากในอีก 10 ปีข้างหน้า
เมื่อการพัฒนาแบบก้าวกระโดดมากขึ้นหลุดออกมาจากห้องแล็บ สุดท้ายก็จะนำไปสู่วัสดุใหม่และนาโนดีไวซ์ใหม่ ๆ และประสิทธิภาพอาจดีขึ้นหลายลำดับขั้น
แค่ขยายเทคโนโลยีที่มีอยู่แล้วอย่าง MRAM ก็ยังมีพื้นที่ให้ไปต่อได้
การเปลี่ยนจาก fp8 เป็น mxfp4 ทำให้เกิด ความแม่นยำลดลง อย่างสังเกตได้
แต่ถึงอย่างนั้นก็ยังมาอวดว่าลดต้นทุนได้มากขึ้นด้วยการควอนไทซ์ ทั้งที่การใช้งานจริงยังขาดตกบกพร่องอย่างชัดเจน
[1] https://www.ycombinator.com/launches/Q9i-wafer-pass-flat-rat...
นี่ไม่ใช่ปรากฏการณ์ใหม่ ประสิทธิภาพต่อดอลลาร์ ดีขึ้นแบบเอ็กซ์โปเนนเชียลค่อนข้างสม่ำเสมอมาตั้งแต่ราวปี 1900 แล้ว
1900~2010: https://www.thekurzweillibrary.com/exponential-growth-of-com...
1939~2023: https://medium.com/@timventura/kurzweils-law-for-the-ai-age-...
การแข่งขันกับ Blackwell ไม่ใช่เรื่องน่าแปลกใจ Rubin จะเร็วกว่า Blackwell ถึง 5 เท่าในงาน inference และ Blackwell คือรุ่นสุดท้ายที่ Nvidia ยังไม่ได้ปรับให้เหมาะกับ inference โดยเฉพาะ
ถ้าผมพลาดอะไรไปก็บอกได้เลย
เห็นแค่ สถาปัตยกรรมแบบแยกส่วน ที่แยก prefill node กับ decoding node ออกจากกัน แต่ไม่รู้ว่านอกนั้นมีอะไรอีก
โดยเฉพาะในช่วงที่หลายสกุลเงินอ่อนค่า ก็ยิ่งเป็นแบบนั้น