28 คะแนน โดย xguru 2023-09-12 | 6 ความคิดเห็น | แชร์ทาง WhatsApp
  • 4 ปัจจัยที่ทำให้ Nvidia เพิ่มประสิทธิภาพ GPU ได้ 1,000 เท่าในช่วง 10 ปี
  • Bill Dally หัวหน้านักวิทยาศาสตร์ อธิบายเรื่องนี้ด้วยสไลด์เพียงหน้าเดียวในคีย์โน้ตของ IEEE Hot Chips 2023

Number Representation: 16 เท่า

  • "โดยรวมแล้ว ประโยชน์ที่ใหญ่ที่สุดที่เราได้รับคือการปรับปรุงการแทนค่าตัวเลข"
  • ตัวเลขเหล่านี้หมายถึงพารามิเตอร์หลักของโครงข่ายประสาทเทียม
  • ในบรรดาพารามิเตอร์เหล่านี้ ตัวหนึ่งคือค่าน้ำหนัก (Weights) และอีกตัวหนึ่งคือค่าแอ็กทิเวชัน (Activations)
    • ค่าน้ำหนัก: ความแรงของการเชื่อมต่อระหว่างนิวรอนในโมเดล
    • ค่าแอ็กทิเวชัน: การนำผลรวมของอินพุตที่ผ่านการถ่วงน้ำหนักในนิวรอนมาคำนวณเพื่อกำหนดว่าจะถูกกระตุ้นหรือไม่ และส่งต่อข้อมูลไปยังเลเยอร์ถัดไป
  • ก่อน P100 GPU ของ Nvidia ใช้ตัวเลขแบบ single precision floating-point เพื่อแทนค่าน้ำหนักเหล่านี้
  • ตัวเลขชนิดนี้ถูกกำหนดโดยมาตรฐาน IEEE 754 มีความยาว 32 บิต โดย 23 บิตใช้แทนเศษส่วน 8 บิตทำหน้าที่เป็นเลขชี้กำลังของเศษส่วน และ 1 บิตใช้เป็นเครื่องหมายของตัวเลข
  • แต่นักวิจัยแมชชีนเลิร์นนิงค้นพบว่าสามารถใช้ตัวเลขที่แม่นยำน้อยลงในการคำนวณหลายอย่างได้ และโครงข่ายประสาทเทียมก็ยังให้คำตอบที่ถูกต้องได้อยู่
  • เมื่อประมวลผลด้วยจำนวนบิตที่น้อยลง ก็สามารถทำให้ลอจิกที่ใช้สำหรับการคำนวณหลักของแมชชีนเลิร์นนิง (การคูณและการสะสมค่า) มีขนาดเล็กลงและมีประสิทธิภาพมากขึ้น
    • พลังงานที่ต้องใช้ในการคูณแปรผันตามกำลังสองของจำนวนบิต
  • ดังนั้น Nvidia จึงใช้ FP16 ใน P100 เพื่อลดจำนวนดังกล่าวลงครึ่งหนึ่ง ขณะที่ Google ก็ออกเวอร์ชันของตัวเองชื่อ bfloat16
    • ความแตกต่างระหว่างทั้งสองคือสัดส่วนของจำนวนบิตในส่วนเศษที่ให้ความแม่นยำ กับบิตของเลขชี้กำลังที่ให้ช่วงของค่า
    • bfloat16 มีจำนวนบิตของเลขชี้กำลังเท่ากับ FP32 จึงแปลงไปมาระหว่างสองฟอร์แมตนี้ได้ง่าย
  • ปัจจุบัน GPU รุ่นล่าสุดอย่าง H100 สามารถใช้ตัวเลข 8 บิตเพื่อประมวลผลบางส่วนของโครงข่ายทรานส์ฟอร์เมอร์ขนาดใหญ่ เช่น ChatGPT และ LLM อื่น ๆ
    • แต่ Nvidia พบว่านี่ไม่ใช่โซลูชันแบบ one-size-fits-all ที่ใช้ได้กับทุกกรณี
    • ตัวอย่างเช่น สถาปัตยกรรม GPU Hopper ของ Nvidia ใช้ FP8 อยู่จริงถึง 2 ฟอร์แมตในการคำนวณ
    • แบบหนึ่งมีความแม่นยำสูงกว่าเล็กน้อย อีกแบบหนึ่งมีช่วงค่ากว้างกว่าเล็กน้อย
    • เคล็ดลับพิเศษของ Nvidia คือ รู้ว่าควรใช้ฟอร์แมตไหนเมื่อไร
  • Dally และทีมของเขามีไอเดียน่าสนใจมากมายในการรีดประสิทธิภาพ AI ให้ได้มากขึ้นจากบิตที่น้อยลง
  • และชัดเจนว่าระบบ floating-point ยังไม่ใช่สิ่งที่เหมาะสมที่สุด
  • ปัญหาหลักอย่างหนึ่งคือความแม่นยำของ floating-point ค่อนข้างคงที่ ไม่ว่าตัวเลขจะใหญ่หรือเล็ก
  • แต่พารามิเตอร์ของโครงข่ายประสาทเทียมไม่ได้ใช้ตัวเลขขนาดใหญ่มาก และมักกระจุกตัวอยู่รอบ 0
  • ดังนั้นจุดโฟกัสด้าน R&D ของ Nvidia คือการหาวิธีที่มีประสิทธิภาพในการแทนค่าตัวเลขให้แม่นยำมากขึ้นเมื่ออยู่ใกล้ 0

Complex Instructions: 12.5 เท่า

  • "โอเวอร์เฮดในการดึงและถอดรหัสคำสั่งสูงกว่าการทำงานเลขคณิตง่าย ๆ หลายเท่า"
  • ตัวอย่างเช่น การคูณอย่างหนึ่งมีโอเวอร์เฮดสูงถึง 20 เท่าของพลังงาน 1.5 picojoules ที่ใช้กับตัวการคำนวณเอง
  • Nvidia ได้ประโยชน์อย่างมากจากการออกแบบ GPU ให้ทำการคำนวณขนาดใหญ่ด้วยคำสั่งเดียว แทนที่จะเป็นชุดของคำสั่ง
  • แม้ยังมีโอเวอร์เฮดอยู่ แต่การใช้คำสั่งที่ซับซ้อนช่วยกระจายต้นทุนนี้ไปกับงานคณิตศาสตร์ที่มากขึ้นได้
  • ตัวอย่างเช่น โอเวอร์เฮดของคำสั่งซับซ้อนอย่าง IMMA (integer matrix multiply and accumulate, การคูณและสะสมค่าเมทริกซ์จำนวนเต็ม) คิดเป็นเพียง 16% ของต้นทุนพลังงานด้านคณิตศาสตร์

Moore’s Law: 2.5 เท่า

  • การรักษาความก้าวหน้าตามกฎของมัวร์ต้องอาศัยการลงทุนระดับหลายพันล้านดอลลาร์ งานวิศวกรรมที่ซับซ้อนมาก และความไม่แน่นอนระหว่างประเทศอีกมากมาย
  • อย่างไรก็ตาม นี่ก็เป็นส่วนหนึ่งของการเพิ่มประสิทธิภาพ GPU ของ Nvidia
  • Nvidia ใช้เทคโนโลยีการผลิตที่ล้ำหน้าที่สุดมาโดยตลอด
  • H100 ผลิตด้วยกระบวนการ N5 (5 นาโนเมตร) ของ TSMC และโรงงานรับจ้างผลิตชิปเพิ่งเริ่มการผลิตระยะแรกของ N3 รุ่นถัดไปในช่วงปลายปี 2022 เท่านั้น

Sparsity: 2 เท่า

  • หลังการฝึก มักยังมีนิวรอนจำนวนมากในโครงข่ายประสาทเทียมที่ไม่ควรมีอยู่ตั้งแต่แรก
  • สำหรับโครงข่ายบางประเภท "แม้จะลบนิวรอนออกมากกว่าครึ่งหนึ่งก็อาจไม่สูญเสียความแม่นยำ"
  • ค่าน้ำหนักของนิวรอนเหล่านี้เป็น 0 หรือเกือบ 0 จึงไม่ส่งผลต่อเอาต์พุต และการรวมมันไว้ในการคำนวณก็เป็นเพียงการสิ้นเปลืองเวลาและพลังงาน
  • การทำให้เครือข่ายเหล่านี้เป็นแบบ "Sparse" เพื่อลดภาระการคำนวณเป็นงานที่ค่อนข้างยาก
  • แต่ผ่าน A100 ซึ่งเป็นรุ่นก่อนหน้าของ H100 นั้น Nvidia ได้เพิ่มความสามารถที่เรียกว่า Structured Sparsity
  • ฮาร์ดแวร์นี้สามารถบังคับให้เกิดเหตุการณ์การตัดทิ้งที่เป็นไปได้ 2 จาก 4 รายการ เพื่อให้ต่อยอดไปสู่การคำนวณเมทริกซ์ใหม่ที่มีขนาดเล็กลงได้
  • "ปัญหาเรื่อง sparsity ยังไม่จบ" "เราจำเป็นต้องทำอะไรบางอย่างกับ activations และเรายังสามารถเพิ่ม sparsity ในส่วนของ weights ได้อีก"

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

 
ninebow 2023-09-12

โอ้ ขอบคุณสำหรับบทความดีๆ!

 
nicewook 2023-09-12

อ่านได้เพลินมากครับ

 
ragingwind 2023-09-12

ว้าว ต้องซื้อต่อไปอีก..

 
xguru 2023-09-12

ผมมีหุ้น Nvidia อยู่บ้างที่ซื้อติดไม้ติดมือไว้ตั้งแต่ปี 2018 ตอนนี้ขึ้นมา 1100% แล้ว ตอนนั้นน่าจะซื้อเยอะ ๆ หน่อย ฮือ

 
laeyoung 2023-09-12

ว้าว..!

 
xguru 2023-09-12

16 x 12.5 x 2.5 x 2 ก็ได้ 1000 พอดีเลยนะ