• เป็นไลบรารีสำหรับดำเนินการ FP8 matrix multiplication (GEMM) อย่างมีประสิทธิภาพ และรองรับแนวทาง fine-grained scaling ที่เสนอใน DeepSeek-V3
  • รองรับทั้ง GEMM ทั่วไปและ Mix-of-Experts(MoE) grouped GEMM
  • พัฒนาด้วย CUDA และระหว่างติดตั้งจะคอมไพล์เคอร์เนลขณะรันไทม์ด้วย โมดูล Just-In-Time (JIT) ขนาดเบา โดยไม่ต้องคอมไพล์แยกเพิ่มเติม
  • ขณะนี้รองรับเฉพาะ NVIDIA Hopper tensor cores
  • ใช้ dual accumulation (promotion) บน CUDA cores เพื่อชดเชยปัญหาความไม่แม่นยำของการสะสมผลใน FP8 tensor cores
  • นำบางแนวคิดจาก CUTLASS และ CuTe มาใช้ แต่ลดการพึ่งพาเทมเพลตที่ซับซ้อนลง ทำให้เป็นดีไซน์เรียบง่ายที่มี โค้ดเคอร์เนลเพียงราว 300 บรรทัด
  • เหมาะสำหรับใช้เรียนรู้การคำนวณเมทริกซ์ FP8 และเทคนิคการปรับแต่งประสิทธิภาพบน Hopper
  • แม้จะเป็นดีไซน์ขนาดเบา แต่ในเมทริกซ์หลายขนาดก็ให้ ประสิทธิภาพใกล้เคียงหรือดีกว่าไลบรารีที่ปรับแต่งระดับผู้เชี่ยวชาญ

การประเมินประสิทธิภาพ

ประสิทธิภาพ GEMM ทั่วไป (Dense model)

  • ประเมินประสิทธิภาพกับเมทริกซ์หลากหลายขนาดใน สภาพแวดล้อมอนุมานของ DeepSeek-V3/R1
  • ทดสอบบน NVIDIA H800 GPU (NVCC 12.8)
  • ตัวชี้วัดการเพิ่มความเร็ว (Speedup) คำนวณโดยเทียบกับเวอร์ชันปรับแต่งภายในที่อิง CUTLASS 3.6
  • สรุปประสิทธิภาพหลัก
    • สำหรับเมทริกซ์ขนาดเล็ก เพิ่มความเร็วได้สูงสุด 2.7 เท่า
    • สำหรับเมทริกซ์ขนาดใหญ่บางกรณี ยังคงรักษาประสิทธิภาพไว้ที่ราว 1.0~1.2 เท่า
    • ปรับทั้งแบนด์วิดท์หน่วยความจำและสมรรถนะการคำนวณให้เหมาะสม จึง ให้ประสิทธิภาพที่เหมาะกับสถาปัตยกรรม Hopper

ประสิทธิภาพ grouped GEMM สำหรับโมเดล MoE

  • grouped GEMM แบบ contiguous layout
    • จัดกลุ่มตามแกน M โดยคง N และ K ให้เหมือนเดิม
    • เพิ่มความเร็วได้สูงสุด 1.2 เท่า และในบางการตั้งค่ายังคงอยู่ที่ระดับ 1.1 เท่า
  • grouped GEMM แบบ masked layout
    • ออกแบบมาสำหรับกรณีที่เมื่อใช้ CUDA Graph แล้ว CPU ไม่สามารถทราบจำนวนโทเค็นของผู้เชี่ยวชาญแต่ละรายได้
    • รับ mask tensor เป็นอินพุตเพื่อ ดำเนินการเฉพาะส่วนที่จำเป็น
    • ระดับการปรับปรุงประสิทธิภาพอยู่ที่ 1.1~1.2 เท่า

ตอนที่ 3 จาก โอเพนซอร์ส 5 โครงการที่เปิดตัวภายใต้ DeepSeek Open Infra

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น