1 คะแนน โดย GN⁺ 2024-12-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ความสำคัญของ MLC-LLM

    • MLC-LLM ช่วยให้สามารถคอมไพล์และปรับใช้ LLM บน AMD GPU ด้วย ROCm
    • AMD Radeon™ RX 7900 XTX ให้ประสิทธิภาพถึง 80% ของ NVIDIA® GeForce RTX™ 4090 และ 94% ของ RTX™ 3090 Ti
    • การรองรับ Vulkan ทำให้สามารถปรับใช้ LLM บนอุปกรณ์ AMD APU เช่น SteamDeck ได้
  • ภูมิหลัง

    • หลังจากการแพร่หลายของ LLM แบบโอเพนซอร์ส มีโซลูชันการอนุมาน LLM จำนวนมากเกิดขึ้น
    • โซลูชันการอนุมานที่มีประสิทธิภาพสูงส่วนใหญ่ใช้ CUDA เป็นพื้นฐาน และปรับให้เหมาะสมกับ NVIDIA GPU
    • เนื่องจากความต้องการด้านความพร้อมใช้งานการคำนวณที่สูงขึ้น จึงเป็นประโยชน์ที่ต้องรองรับตัวเร่งความเร็วฮาร์ดแวร์ได้กว้างขึ้น
    • AMD จึงเป็นผู้สมัครที่มีศักยภาพ
  • การอภิปรายด้านฮาร์ดแวร์และซอฟต์แวร์

    • AMD RX 7900 XTX มีสเปกที่สามารถเทียบได้กับ NVIDIA RTX 4090 และ RTX 3090 Ti
    • ทั้งสองรุ่นมีหน่วยความจำ 24GB ทำให้รองรับโมเดลขนาดเดียวกันได้
    • ประสิทธิภาพ FP16 ของ 4090 สูงกว่า 7900 XTX ถึง 2 เท่า และสูงกว่า 3090 Ti ถึง 1.3 เท่า
    • RX 7900 XTX ถูกวางจำหน่ายถูกกว่า RTX 4090 ถึง 40%
    • เหตุผลที่ AMD เคยตามหลังในอดีตคือไม่ได้เกิดจากฮาร์ดแวร์ แต่เกิดจากการขาดการสนับสนุนซอฟต์แวร์
  • การคอมไพล์สำหรับ ROCm

    • MLC (Machine Learning Compiler) คือเทคโนโลยีใหม่ที่ทำให้การเพิ่มประสิทธิภาพงานแมชชีนเลิร์นนิงเป็นแบบอัตโนมัติ
    • MLC-LLM สร้างบน Apache TVM Unity เพื่อให้การปรับใช้แบบประสิทธิภาพสูงแบบครอบคลุมบน backend ต่าง ๆ
    • ผ่านเวิร์กโฟลว์ที่อิง Python สามารถคอมไพล์โมเดลภาษาและปรับแต่ง layout และการกำหนดตารางทำงานของ GPU kernel ได้อย่างเหมาะสม
  • MLC สำหรับ AMD GPU และ APU

    • แนวทางต่าง ๆ ที่รองรับ AMD GPU ได้แก่ ROCm, OpenCL, Vulkan และ WebGPU
    • สแตก ROCm เป็นแนวทางใหม่ที่ AMD ผลักดันซึ่งมีองค์ประกอบจำนวนมากคล้ายกับสแตก CUDA
    • Vulkan เป็นมาตรฐานกราฟิกสมัยใหม่ที่ให้การสนับสนุนที่กว้างที่สุดในอุปกรณ์ GPU
    • MLC รองรับการสร้างโค้ดอัตโนมัติ ทำให้รองรับหลายวิธีได้โดยไม่จำเป็นต้องสร้าง GPU kernel ใหม่แต่ละตัวใหม่
  • การทดสอบด้วยแพ็กเกจ Python ของ MLC

    • มีการทดสอบ MLC โดยใช้โมเดล Llama 2 7B และ 13B แบบ quantization 4-bit
    • ในการอนุมานแบบ single-batch คงที่ ได้เข้าถึงความเร็วประมาณ 80% ของ NVIDIA 4090 พร้อมกับการปล่อยตัว ROCm 5.6
  • การรันบน SteamDeck ด้วย Vulkan

    • สามารถรันบน SteamDeck ที่ติดตั้ง AMD APU โดยใช้ Vulkan ได้
    • ใน ROCm แรม VRAM ของ GPU ถูกจำกัดไว้ที่ 4GB จาก BIOS แต่ไดรเวอร์ Mesa Vulkan ใช้หน่วยความจำรวมในการทำงานและขยายได้ถึง 16GB
  • การอภิปรายและงานในอนาคต

    • ความพร้อมใช้งานของฮาร์ดแวร์กลายเป็นประเด็นสำคัญในยุคการสร้าง AI
    • ML compiler ทำให้การปรับใช้แบบใช้งานได้ทั่วไปที่มีประสิทธิภาพสูงครอบคลุมข้ามฮาร์ดแวร์แบ็กเอนด์ได้
    • การวิจัยเกี่ยวกับ GPU สำหรับผู้ใช้ทั่วไปสามารถขยายไปสู่ GPU ของคลาวด์ได้
    • แนะนำให้ชุมชนพัฒนาโซลูชันบนพื้นฐานของกระบวนการปรับใช้งานทั่วไปของ MLC
  • บทสรุปสุดท้าย

    • งานด้านระบบวิศวกรรมแมชชีนเลิร์นนิงยังคงเป็นเรื่องที่ต้องจัดการต่อเนื่อง
    • NVIDIA ยังคงเป็นผู้นำโดยการขับเคลื่อนนวัตกรรมในพื้นที่นี้ และคาดว่าจะเปลี่ยนแปลงไปตามความก้าวหน้าในด้านฮาร์ดแวร์และซอฟต์แวร์ใหม่ ๆ
    • ด้วยกระบวนการพัฒนา ML compiler ที่อิง Python ทำให้ได้รับการรองรับการปรับแต่ง ROCm ได้ภายในเวลาเพียงไม่กี่ชั่วโมง
  • ลิงก์และคำขอบคุณ

    • สำหรับคำแนะนำโดยละเอียดในการปรับใช้ MLC LLM ให้ดูที่หน้าโครงการของโปรเจกต์
    • รหัสต้นฉบับของ MLC LLM มีในคลังโค้ดทางการของ GitHub
    • แสดงความขอบคุณต่อชุมชน Apache TVM และผู้พัฒนา TVM Unity Compiler

1 ความคิดเห็น

 
GN⁺ 2024-12-25
ความคิดเห็นบน Hacker News
  • ประสิทธิภาพของ AMD GPU รุ่นผู้บริโภค (RX7900XTX) แตกต่างจาก AMD GPU สำหรับศูนย์ข้อมูล (MI300X) เนื่องจากความต่างของสถาปัตยกรรม RDNA และ CDNA AMD คาดว่าจะปล่อยสถาปัตยกรรม UDNA ราวๆ ปี 2026 และใน CentML กำลังผสานการรองรับ AMD CDNA และ HIP เข้ากับตัวคอมไพเลอร์ Hidet สำหรับ deep learning

  • มีสตาร์ตอัปหลายแห่งที่พยายามใช้ GPU ของ AMD เพื่อทลายการผูกขาดของ Nvidia รายชื่อได้แก่ Felafax, Lamini, tensorwave, SlashML โดยบางบริษัทอ้างว่ามีอุปสรรคจาก CUDA อยู่ราว 18 เดือน

  • ทีมที่เคยทำงานกับ TVM และ MLC ได้เข้าร่วม NVIDIA จาก OctoAI

  • หลังลองใช้ Phi-4 Q6 กับ 7950x และ 7900XT พบว่ายังเร็วมากแม้ใช้เฉพาะ CPU และยืนยันได้ว่า AMD ใช้งานได้ในบ้าน

  • ฉันไม่เข้าใจเลยว่าทำไมชุมชน ML ถึงยังไม่หลุดจาก CUDA แม้ว่า CUDA จะแบบ proprietary และไม่ใช่ cross-platform เราแทนที่จะต้องย้ายระบบไป cross-platform ได้เร็วกว่านี้แล้วในยุค AI/LLM

  • RTX 3090 มือสองอยู่ที่ 600-900 ดอลลาร์ และประสิทธิภาพดีกว่า 7900 พร้อมกับความหลากหลายในการใช้งานมากกว่าเพราะมี CUDA

  • ต้องเพิ่มความพยายามให้เกิดประสิทธิภาพมากขึ้น ความคุ้มค่าต้องไม่ใช่แค่ต้นทุน แต่รวมถึงประสิทธิภาพด้านพลังงานและการคำนวณด้วย ตอนนี้กำลังทดสอบรัน inference ด้วย llama.cpp บน CPU ทั่วไป

  • Modular ระบุว่าสามารถทำให้ GPU utilization บน AMD GPU ได้ถึง 93% และคาดว่าจะมีการเปิดตัว preview อย่างเป็นทางการในต้นปีหน้า รู้สึกมองโลกในแง่ดีมากขึ้นหลังได้รับ feedback เชิงบวกต่อประสิทธิภาพของ GPU ของ Nvidia