คำสำคัญ: การสร้างแบบจำลองการใช้พลังงานของ GPU, การระบุการใช้พลังงานในระดับคำสั่ง, ไมโครอาร์คิเทคเจอร์ SASS, การแก้ระบบสมการเชิงเส้น, การปรับปรุงการใช้พลังงานในการคำนวณแบบเฮเทอโรจีนัส
“ระบบคอมพิวเตอร์ประสิทธิภาพสูงที่ทันสมัยซึ่งอุดมไปด้วย GPU กำลังเผชิญกับข้อจำกัดด้านพลังงานมากขึ้นเรื่อยๆ ดังนั้น การทำความเข้าใจการใช้พลังงานของแอปพลิเคชันจึงมีความสำคัญอย่างยิ่ง น่าเสียดายที่เทคนิคการระบุการใช้พลังงานของ GPU ในปัจจุบันนั้นไม่แม่นยำ ไม่ยืดหยุ่น หรือล้าสมัย”
นี่คือข้อความที่แหลมคมซึ่งถูกโยนออกมาในตอนต้นของบทความ “Wattchmen: Watching the Watchers – High Fidelity, Flexible GPU Energy Modeling” ที่ตีพิมพ์ใน ICS’26 โดยทีมร่วมจากมหาวิทยาลัยวิสคอนซิน-แมดิสัน, NVIDIA และห้องปฏิบัติการแห่งชาติ Oak Ridge เมื่อซูเปอร์คอมพิวเตอร์ระดับเอกซะสเกลพึ่งพากำลังประมวลผลจาก GPU หลายหมื่นตัว กำแพงการใช้พลังงานได้กลายเป็นดาบแห่งดาโมคลีสที่แขวนอยู่เหนือศีรษะ

รูปที่ 1: การเปรียบเทียบค่าพลังงานที่คาดการณ์โดย AccelWattch กับค่าที่วัดได้จริงจาก GPU Tesla V100 ที่ระบายความร้อนด้วยอากาศ ภายใต้การทดสอบมาตรฐานหลายชุด โดยมีค่าความคลาดเคลื่อนสัมบูรณ์เฉลี่ยเป็นเปอร์เซ็นต์ (MAPE) อยู่ที่ 32% เส้นสีน้ำเงินแสดงถึงการคาดการณ์ที่สมบูรณ์แบบ แม้ว่า AccelWattch จะผ่านการตรวจสอบโมเดล V100 ในสภาพแวดล้อมที่ปรับเทียบแล้ว แต่บนแพลตฟอร์ม CloudLab เนื่องด้วยความแตกต่างของ TDP, ความถี่คอร์ และความจุหน่วยความจำ ความแม่นยำในการคาดการณ์ลดลงอย่างรวดเร็ว จุดกระจายที่เบี่ยงเบนออกจากเส้นคาดการณ์ที่สมบูรณ์แบบอย่างมาก เผยให้เห็นข้อบกพร่องของโมเดลการใช้พลังงาน GPU แบบดั้งเดิมที่ไวต่อพารามิเตอร์สภาพแวดล้อมมากและมีความสามารถในการปรับใช้ทั่วไปที่แย่มาก ผลลัพธ์นี้ยืนยันโดยตรงถึงความจำเป็นในการพัฒนาโมเดลการใช้พลังงานที่ยืดหยุ่นและมีความทนทานสูง ซึ่งเป็นการกำหนดทิศทางปัญหาที่ชัดเจนสำหรับการออกแบบ Wattchmen นั่นคือการแก้ไขปัญหาความล้มเหลวในการคาดการณ์ที่เกิดจากการรบกวนของสภาพแวดล้อม
อย่างไรก็ตาม เครื่องมือวิเคราะห์การใช้พลังงานในมือของนักพัฒนากลับดูเหมือนถูกปกคลุมด้วยกระจกฝ้าหนา: AccelWatch ที่ทันสมัยที่สุด หลังจากเปลี่ยนสภาพแวดล้อมห้องเซิร์ฟเวอร์ ค่าความคลาดเคลื่อนในการคาดการณ์กลับเพิ่มขึ้นจากที่รายงานเอง 16% เป็น 32% นี่หมายความว่าเราไม่รู้เรื่องเกือบหนึ่งในสามของงบประมาณไฟฟ้าอันมีค่า

การปรากฏตัวของ Wattchmen ก็เพื่อเช็ดกระจกฝ้าชั้นนี้ มันไม่ได้อาศัยกล่องดำของแมชชีนเลิร์นนิงแบบไม่เชิงเส้นที่ซับซ้อน และก็ไม่ได้หยุดอยู่แค่การประมาณคร่าวๆ ด้วยคำสั่งเสมือน PTX ระดับสูง ความเข้าใจหลักของ Wattchmen คือ: แทนที่จะวัดคำสั่งแต่ละคำสั่งแบบแยกกัน ควรสร้างระบบสมการพลังงาน และแยกการรบกวนจากคำสั่งเสริมโดยการแก้ระบบสมการ เพื่อกู้คืนการใช้พลังงานจริงของคำสั่ง SASS แต่ละคำสั่ง

รูปที่ 2: ภาพรวมการออกแบบ Wattchmen Wattchmen แบ่งออกเป็นสองขั้นตอนหลัก: การฝึกอบรมและการคาดการณ์ ขั้นตอนการฝึกอบรมสร้างตารางการใช้พลังงานระดับคำสั่งผ่านชุดไมโครเบนช์มาร์ก การวัดการใช้พลังงานในสภาวะคงที่ และการแก้ระบบสมการเชิงเส้นแบบไม่เป็นลบ ขั้นตอนการคาดการณ์ทำนายการใช้พลังงานของแอปพลิเคชันอย่างละเอียดโดยผสมผสานการนับคำสั่ง อัตราการเข้าถึงแคช และเพิ่มความครอบคลุมของคำสั่งผ่านการปรับสเกล การจัดกลุ่ม และการแบ่งกลุ่ม (bucketing) โครงสร้างโดยรวมทำให้เกิดวงจรปิดแบบครบวงจรของการวัด-สร้างแบบจำลอง-คาดการณ์ ซึ่งรับประกันทั้งความแม่นยำของการใช้พลังงานระดับคำสั่งและความสามารถในการปรับตัวให้เข้ากับคำสั่งที่ไม่ได้วัดและสถาปัตยกรรมใหม่ เป็นเฟรมเวิร์กการสร้างแบบจำลองการใช้พลังงาน GPU ที่มีความเที่ยงตรงสูงและมีความยืดหยุ่น
ผ่านการตรวจสอบในสามรุ่นสถาปัตยกรรม ได้แก่ Volta V100, Ampere A100 และ Hopper H100 รวมถึงสภาพแวดล้อมการระบายความร้อนที่แตกต่างกันทั้งแบบอากาศและน้ำ Wattchmen สามารถลดค่าความคลาดเคลื่อนสัมบูรณ์เฉลี่ยเป็นเปอร์เซ็นต์ (MAPE) ลงเหลือต่ำกว่า 14% และแม้กระทั่งในการคาดการณ์สำหรับ H100 ก็ได้ความแม่นยำถึง 12%
ที่สำคัญกว่านั้น ทีมวิจัยใช้ Wattchmen ค้นพบความผิดปกติของการใช้พลังงานในแอปพลิเคชัน QMCPACK และสามารถลดการใช้พลังงานลงได้ 35% เพียงแค่แก้ไขความถี่ในการเรียกใช้ฟังก์ชัน บทความนี้จะแยกชิ้นส่วนแกนเทคโนโลยีของ Wattchmen อย่างลึกซึ้ง เพื่อเปิดเผยว่ามันใช้ “การวัดสภาวะคงที่” และ “ตัวแก้สมการเชิงเส้น” แทงทะลุกล่องดำของการสร้างแบบจำลองการใช้พลังงานของ GPU ได้อย่างไร
สารบัญ
- หนึ่ง กับดักและทางออก: เมื่อการสร้างแบบจำลองการใช้พลังงานของ GPU ติดอยู่ใน “กล่องดำ” และ “การโอเวอร์ฟิต”
- 1.1 สถานการณ์ที่เต็มไปด้วยหมอกควัน: จากการฉายภาพ PTX ไปจนถึงการจำลองไมโครอาร์คิเทคเจอร์ที่เปราะบาง
- 1.2 ความเข้าใจหลักของ Wattchmen: จาก “วิธีแยกเดี่ยว” สู่ “วิธีแก้ระบบสมการ”
- 1.3 มั่นคงเป็นหลัก: ทำไมการวัดสภาวะคงที่จึงน่าเชื่อถือกว่าการจับค่าชั่วขณะ?
- สอง หลักการออกแบบ Wattchmen: จากไมโครเบนช์มาร์กไปจนถึงพจนานุกรมการใช้พลังงานของคำสั่ง
- 2.1 ทะลุหมอกควันของ PTX: การสร้างไมโครเบนช์มาร์กบนพื้นฐาน SASS
- 2.2 แยกส่วนพื้นฐาน: ศิลปะของการแยกการใช้พลังงานสถิตย์และค่าคงที่
- 2.3 เติมเต็มภาพปริศนา: กลไกการจัดกลุ่ม การปรับสเกล และการแบ่งกลุ่ม
- 2.4 ขั้นตอนการคาดการณ์: การแมปพจนานุกรมกลับไปยังแอปพลิเคชันจริง
- สาม การประเมินประสิทธิภาพ: ความคลาดเคลื่อนที่ลดลงอย่างรวดเร็วและอำนาจการปรับใช้ทั่วไปข้ามรุ่น
- 3.1 การประลองบน V100: ทำลายคำสาปความคลาดเคลื่อน 32%
- 3.2 พิชิต Summit ที่ระบายความร้อนด้วยน้ำ: ชัยชนะของวิธีการวัดสภาวะคงที่
- 3.3 การตรวจสอบข้ามรุ่น: ความคล่องตัวบน A100 และ H100
- 3.4 กรณีศึกษาจริง: จากข้อมูลสู่การลงมือ ลดการใช้พลังงาน 35%
- สี่ งานที่เกี่ยวข้อง: มอง Wattchmen บนบ่าของยักษ์
- 4.1 แบบจำลองเชิงวิเคราะห์ระดับสถาปัตยกรรม: ความรุ่งโรจน์และความล้าสมัย
- 4.2 ข้อจำกัดของการฉายภาพเชิงประจักษ์และแมชชีนเลิร์นนิง
- 4.3 ข้อได้เปรียบเชิงเปรียบเทียบของ Wattchmen
- ห้า บทสรุปและแนวโน้ม: มุ่งสู่ยุคหลังเอกซะสเกลที่มีประสิทธิภาพพลังงานละเอียด
- 5.1 สรุปบทสรุป
- 5.2 การวิเคราะห์ขั้นสูง: ขอบเขตของระเบียบวิธีและต้นทุนแฝงของ Wattchmen
- 5.3 งานในอนาคต

หนึ่ง กับดักและทางออก: เมื่อการสร้างแบบจำลองการใช้พลังงานของ GPU ติดอยู่ใน “กล่องดำ” และ “การโอเวอร์ฟิต”
ในยุคซูเปอร์คอมพิวเตอร์ระดับเอกซะสเกล ความจริงอันโหดร้ายคือ: เรามีพลังประมวลผลแบบขนานที่ไม่เคยมีมาก่อน แต่กลับรู้เรื่องการไหลของพลังงานแต่ละจูลน้อยมาก เครื่องมือจากผู้ผลิตเช่น NVIDIA Management Library สามารถให้ค่าการใช้พลังงานของการ์ดทั้งหมดได้ แต่สำหรับนักพัฒนาที่ต้องการปรับปรุงโค้ดเคอร์เนลแล้ว นี่ไม่ต่างจากรู้แค่ว่าใบแจ้งหนี้ค่าไฟฟ้าของทั้งอาคาร แต่ไม่รู้ว่าห้องไหนไฟรั่ว
การปรับแต่งประสิทธิภาพแบบดั้งเดิมมุ่งเน้นเพียง “เวลา” แต่ในคลัสเตอร์สมัยใหม่ที่จำกัดการใช้พลังงาน ทุกวัตต์ที่ประหยัดได้สามารถเปลี่ยนเป็นปริมาณการคำนวณที่มากขึ้น อย่างไรก็ตาม วิธีการสร้างแบบจำลองการใช้พลังงานของ GPU ในปัจจุบันกลับติดหล่มร่วมกัน
1.1 สถานการณ์ที่เต็มไปด้วยหมอกควัน: จากการฉายภาพ PTX ไปจนถึงการจำลองไมโครอาร์คิเทคเจอร์ที่เปราะบาง
เพื่อให้เห็นรายละเอียดการใช้พลังงานภายใน GPU วงการวิชาการและอุตสาหกรรมได้ลองเส้นทางต่างๆ มากมาย ตารางที่ 1 แสดงความแตกต่างระหว่าง Wattchmen กับโซลูชันที่มีอยู่ด้านความสามารถในการปรับใช้ทั่วไปและการระบุระดับละเอียดอย่างชัดเจน
ตารางที่ 1: การเปรียบเทียบระหว่าง Wattchmen กับวิธีการสร้างแบบจำลองการใช้พลังงาน GPU ล่าสุด ตารางนี้เปรียบเทียบวิธีการหลักจากหกมิติ: ความสามารถในการย้ายระหว่างสถาปัตยกรรม ความสามารถในการปรับตัวให้เข้ากับการระบายความร้อน การสร้างแบบจำลองการใช้พลังงานของการคำนวณ/โฟลว์ควบคุม/ลำดับชั้นหน่วยความจำ การแยกย่อยระดับละเอียด และการวัดที่ครอบคลุม วิธีการที่มีอยู่ต่างขาดความสามารถ: Arafa และคณะครอบคลุมเฉพาะคำสั่งคำนวณ, Delestrac และคณะเน้นเฉพาะลำดับชั้นหน่วยความจำ, Guser ขาดคำสั่งโฟลว์ควบคุม, โมเดล ML ขาดความสามารถในการอธิบายระดับละเอียด, AccelWattch มีความทนทานต่อสภาพแวดล้อมต่ำ Wattchmen เป็นวิธีเดียวที่ครอบคลุมทุกมิติอย่างครบถ้วน ให้การสนับสนุนความสามารถที่สมบูรณ์สำหรับการระบุการใช้พลังงานระดับละเอียดข้ามสถาปัตยกรรมและสภาพแวดล้อม

จากตารางจะเห็นได้ว่าแต่ละแผนงานมีจุดเน้นต่างกัน แต่เมื่อเผชิญกับความต้องการที่เข้มงวดด้านความครอบคลุมในการใช้งานจริง มักจะไม่เพียงพอ กล่าวโดยเฉพาะ แนวทางเทคโนโลยีที่มีอยู่เผชิญกับสามปัญหาหลัก:
-
ปัญหา “ความบิดเบือน” ของ ISA เสมือนระดับสูง การสร้างแบบจำลองบนพื้นฐานคำสั่ง PTX เป็นแนวคิดที่ตรงไปตรงมา เช่น งานของ Arafa และคณะประมาณการใช้พลังงานผ่าน PTX ส่วน Guser มุ่งเน้นที่การใช้พลังงานสูงสุด แต่ปัญหาคือ PTX เป็นการแสดงผลระดับกลาง จากการแปลคำสั่ง PTX ไปเป็นคำสั่ง SASS ที่ดำเนินการจริง มี “การแปลกล่องดำ” ของการปรับแต่งคอมไพเลอร์และแอสเซมเบลอร์คั่นกลาง การเปลี่ยนแปลงเล็กน้อยในตัวเลือกคอมไพเลอร์อาจทำให้ลำดับคำสั่ง SASS ที่สร้างขึ้นเปลี่ยนไปอย่างสิ้นเชิง ทำให้ความแม่นยำของการประมาณการใช้พลังงานบนพื้นฐาน PTX รับประกันได้ยาก
-
กับดัก “การแตกเป็นเสี่ยง” ของโมเดลระดับส่วนประกอบ Delestrac และคณะมุ่งเน้นที่การใช้พลังงานของลำดับชั้นหน่วยความจำ ในขณะที่ AccelWatch และแผนงานอื่นๆ พยายามครอบคลุมทุกส่วนประกอบ แต่กลับติดกับดัก “การโอเวอร์ฟิต” ของการสร้างแบบจำลองไมโครอาร์คิเทคเจอร์ AccelWatch ใช้ตัวนับประสิทธิภาพและตัวแก้ปัญหาการหาค่าเหมาะที่สุดกำลังสอง (quadratic programming) เพื่อปรับให้เหมาะกับการใช้พลังงาน แต่พารามิเตอร์ของมันไวต่อการเปลี่ยนแปลงมาก บทความระบุว่า สำหรับ GPU V100 เดียวกัน AccelWatch มีความคลาดเคลื่อน 16% ในสภาพแวดล้อมการตรวจสอบดั้งเดิม แต่บนโหนด V100 ในอีกสภาพแวดล้อมหนึ่ง เนื่องจากความแตกต่างของวิธีการระบายความร้อน ความจุหน่วยความจำ และความถี่สูงสุดเพียงอย่างเดียว ความคลาดเคลื่อนก็ผันผวนรุนแรงถึง 32% เมื่อพยายามปรับเทียบใหม่สำหรับสภาพแวดล้อมใหม่ ตัวแก้ปัญหาซ้ำ (iterative solver) ของมันถึงกับล้มเหลวโดยตรง
-
การขาด “ความสามารถในการอธิบาย” ของวิธีการแมชชีนเลิร์นนิง แม้ว่าโมเดล ML จะสามารถทำนายได้อย่างแม่นยำภายใต้ชุดข้อมูลเฉพาะ แต่ระดับการระบุของมันมักจะอยู่ที่ระดับเคอร์เนลเท่านั้น เมื่อเผชิญกับคำถามว่า “ทำไมเคอร์เนลคำนวณบางตัวจึงใช้พลังงานผิดปกติ” โมเดล ML ไม่สามารถให้ข้อมูลเชิงลึกในการปรับปรุงระดับคำสั่งหรือระดับไมโครอาร์คิเทคเจอร์ได้
1.2 ความเข้าใจหลักของ Wattchmen: จาก “วิธีแยกเดี่ยว” สู่ “วิธีแก้ระบบสมการ”
เนื่องจากการวัดการใช้พลังงานของคำสั่งแต่ละคำสั่งโดยตรงอย่างแม่นยำเป็นเรื่องยากมาก Wattchmen จึงเปลี่ยนแนวคิด บทความระบุว่าไมโครเบนช์มาร์กใดๆ ก็ไม่สามารถมีเฉพาะคำสั่งเป้าหมายได้ 100% ตัวอย่างเช่น เพื่อทดสอบการใช้พลังงานของคำสั่ง FFMA (การคูณและบวกทศนิยม) ไมโครเบนช์มาร์กจะต้องมี “คำสั่งเสริม” เช่น การควบคุมลูป การคำนวณที่อยู่ เป็นต้น คำสั่งเสริมเหล่านี้เหมือนเสียงรบกวนพื้นหลัง หากไม่กำจัดออก จะทำให้การประมาณการใช้พลังงานของคำสั่งเป้าหมายสูงเกินจริง
ความเข้าใจหลักของ Wattchmen คือ: “เสียงรบกวนพื้นหลัง” ในการทดสอบ A นี้ อาจเป็น “สัญญาณเป้าหมาย” ที่การทดสอบ B ต้องการวัด

รูปที่ 3: ชุดย่อยของระบบสมการสมบูรณ์ที่ใช้แก้หาการใช้พลังงานของคำสั่งสำหรับ GPU V100 ที่ระบายความร้อนด้วยอากาศ แต่ละแถวแสดงถึงไมโครเบนช์มาร์กหนึ่งชุด แต่ละคอลัมน์แสดงถึงความถี่ที่คำสั่งเป้าหมายปรากฏในเบนช์มาร์ก ตารางสมบูรณ์ของ V100 ประกอบด้วยไมโครเบนช์มาร์ก 90 ชุด ครอบคลุมคำสั่ง 90 คำสั่ง ไมโครเบนช์มาร์กเดี่ยวไม่สามารถหลีกเลี่ยงการรบกวนจากคำสั่งเสริมได้ การวัดโดยตรงจะทำให้เกิดความคลาดเคลื่อนในการประมาณการใช้พลังงานของคำสั่งเป้าหมาย ระบบสมการนี้เชื่อมโยงการใช้พลังงานของไมโครเบนช์มาร์กทั้งหมดกับการนับคำสั่ง รวมการมีส่วนร่วมการใช้พลังงานของคำสั่งเสริมเข้าไปในการแก้ปัญหาทั้งหมด เพื่อแยกการใช้พลังงานจริงของคำสั่งแต่ละคำสั่ง ไมโครเบนช์มาร์ก 90 ชุดครอบคลุมชุดคำสั่งหลักของ V100 การแก้แบบไม่เป็นลบรับประกันความหมายทางกายภาพของค่าพลังงาน ทางระเบียบวิธีนี้แก้ไขข้อผิดพลาดเชิงระบบของการวัดไมโครเบนช์มาร์กแบบดั้งเดิม
ดังแสดงในรูปที่ 3 ในส่วนของไมโครเบนช์มาร์กหนึ่งชุด คำสั่ง IMAD_IADD คิดเป็น 58% และ IADD3 คิดเป็น 40% โดยการออกแบบชุดทดสอบที่ครอบคลุมการผสมผสานคำสั่งที่แตกต่างกัน สามารถสร้างระบบสมการเชิงเส้นได้: E = Σ (C_i * e_i) โดยที่ E แสดงถึงการใช้พลังงานไดนามิกที่วัดได้จากไมโครเบนช์มาร์กหนึ่งชุด C_i คือจำนวนครั้งที่คำสั่งประเภทที่ i ถูกดำเนินการในการทดสอบนี้ และ e_i คือการใช้พลังงานจริงของคำสั่งเดียวที่ต้องการแก้ โดยการรวมสมการดังกล่าวหลายสิบสมการ และใช้ตัวแก้สมการเชิงเส้นแบบไม่เป็นลบ Wattchmen สามารถ “สกัด” การใช้พลังงานจริงของคำสั่งออกจากความสัมพันธ์ที่ซับซ้อนได้
1.3 มั่นคงเป็นหลัก: ทำไมการวัดสภาวะคงที่จึงน่าเชื่อถือกว่าการจับค่าชั่วขณะ?
การออกแบบที่สำคัญอีกอย่างของ Wattchmen คือการใช้ “การวัดสภาวะคงที่” บางวิธีพยายามสร้างแบบจำลองโดยการจับค่าการใช้พลังงานสูงสุดชั่วขณะหรือค่าเฉลี่ยในช่วงเวลา แต่นี่เสี่ยงต่อการได้รับผลกระทบจากอุณหภูมิและกลไกความถี่ Boost โดยเฉพาะในสภาพแวดล้อมการระบายความร้อนที่แตกต่างกัน อัตราการสะสมความร้อนของชิปต่างกัน ทำให้เส้นโค้งการใช้พลังงานชั่วขณะของงานคำนวณเดียวกันมีความแตกต่าง

รูปที่ 4: แทร็กการใช้พลังงานที่รวบรวมผ่าน NVML ขณะรันไมโครเบนช์มาร์กการบวกความแม่นยำคู่บน GPU Tesla V100 ที่ระบายความร้อนด้วยอากาศ รวมอัตราการใช้ GPU (สีแดง) และการใช้พลังงาน GPU (สีน้ำเงิน) หลังจากเริ่มไมโครเบนช์มาร์กจะเข้าสู่สภาวะคงที่อย่างรวดเร็ว การใช้พลังงานคงที่ประมาณ 150W อัตราการใช้คงที่สูง การวัดสภาวะคงที่สามารถป้องกันการรบกวนจากความผันผวนของอุณหภูมิ GPU และการเปลี่ยนแปลงประสิทธิภาพการระบายความร้อน ทำให้ข้อมูลการใช้พลังงานมีความสม่ำเสมอสูง วิธีการวัดนี้แยกการใช้พลังงานทั้งหมดออกเป็นสามส่วน: ค่าคงที่ สถิตย์ และไดนามิก แยกการใช้พลังงานไดนามิกจากการดำเนินการคำสั่งอย่างแม่นยำ หลีกเลี่ยงการรบกวนจากเสียงรบกวนของการวัดชั่วขณะ
Wattchmen ทำในทางตรงกันข้าม ดังแสดงในรูปที่ 4 มันให้ไมโครเบนช์มาร์กทำงานเป็นเวลานานพอ จนกว่าเส้นโค้งการใช้พลังงานของ GPU จะราบเป็นเส้นตรง และอุณหภูมิแกนหลักถึงจุดสมดุลความร้อน ณ จุดนี้ การรบกวนจากตัวแปรสภาพแวดล้อมจะลดลงเหลือน้อยที่สุด การใช้พลังงานสภาวะคงที่ที่วัดได้สอดคล้องกับข้อมูลการใช้พลังงานสะสมของ NVML เป็นอย่างดี ด้วยกลยุทธ์นี้ Wattchmen จึงไม่ไวต่อวิธีการระบายความร้อนโดยธรรมชาติ นี่คือสาเหตุพื้นฐานที่ทำให้มันสามารถรักษาความคลาดเคลื่อนต่ำในสภาพแวดล้อมการระบายความร้อนที่แตกต่างกัน (เช่น ซูเปอร์คอมพิวเตอร์ Summit ที่ระบายความร้อนด้วยน้ำ และ CloudLab ที่ระบายความร้อนด้วยอากาศ)
สรุปแล้ว นวัตกรรมทางระเบียบวิธีของ Wattchmen อยู่ที่:
* ใช้ “การแก้ระบบสมการเชิงเส้น” แทนที่ “การทดสอบแบบแยกเดี่ยว” เพื่อแยกเสียงรบกวนของคำสั่งเสริม
* ใช้ “การวัดสมดุลความร้อนสภาวะคงที่” แทนที่ “การปรับให้เหมาะกับค่าสูงสุดชั่วขณะ” เพื่อสร้างภูมิคุ้มกันต่อความแตกต่างของสภาพแวดล้อม
สอง หลักการออกแบบ Wattchmen: จากไมโครเบนช์มาร์กไปจนถึงพจนานุกรมการใช้พลังงานของคำสั่ง
ส่วนก่อนหน้านี้อธิบายแนวคิดหลักของ Wattchmen ส่วนนี้จะเจาะลึกรายละเอียดการนำไปใช้ การสร้าง Wattchmen แบ่งออกเป็นสองขั้นตอน: “การฝึกอบรม” และ “การคาดการณ์” และหัวใจของขั้นตอนการฝึกอบรม คือการออกแบบชุดไมโครเบนช์มาร์กที่สามารถกำหนดเป้าหมายคำสั่ง SASS ได้อย่างแม่นยำ

รูปที่ 2: ภาพรวมการออกแบบ Wattchmen Wattchmen แบ่งออกเป็นสองขั้นตอนหลัก: การฝึกอบรมและการคาดการณ์ ขั้นตอนการฝึกอบรมสร้างตารางการใช้พลังงานระดับคำสั่งผ่านชุดไมโครเบนช์มาร์ก การวัดการใช้พลังงานในสภาวะคงที่ และการแก้ระบบสมการเชิงเส้นแบบไม่เป็นลบ ขั้นตอนการคาดการณ์ทำนายการใช้พลังงานของแอปพลิเคชันอย่างละเอียดโดยผสมผสานการนับคำสั่ง อัตราการเข้าถึงแคช และเพิ่มความครอบคลุมของคำสั่งผ่านการปรับสเกล การจัดกลุ่ม และการแบ่งกลุ่ม (bucketing) โครงสร้างโดยรวมทำให้เกิดวงจรปิดแบบครบวงจรของการวัด-สร้างแบบจำลอง-คาดการณ์
ดังแสดงในรูปที่ 2 โครงสร้างโดยรวมของ Wattchmen ประกอบด้วย:
* ขั้นตอนการฝึกอบรม: สร้างพจนานุกรมการใช้พลังงานของคำสั่งผ่านไมโครเบนช์มาร์ก การวิเคราะห์ประสิทธิภาพ และตัวแก้สมการเชิงเส้น
* ขั้นตอนการคาดการณ์: นับสถิติคำสั่งสำหรับแอปพลิเคชันจริง และหาผลรวมถ่วงน้ำหนักเพื่อให้ได้การคาดการณ์การใช้พลังงานทั้งหมด
2.1 ทะลุหมอกควันของ PTX: การสร้างไมโครเบนช์มาร์กบนพื้นฐาน SASS
Wattchmen ปฏิเสธที่จะหยุดอยู่ที่พื้นผิวของ PTX แต่กำหนดเป้าหมายโดยตรงที่การประมวลผล SASS สุดท้าย นี่เป็นทั้งแหล่งที่มาของความแม่นยำสูงและความยากลำบากในการนำไปใช้ทางวิศวกรรม เนื่องจากเครื่องมือคอมไพล์ของ NVIDIA จะแมปคำสั่ง PTX ไปเป็นคำสั่ง SASS เฉพาะ กฎการแมปภายใต้เวอร์ชัน CUDA และระดับการปรับแต่งที่แตกต่างกันอาจมีความแตกต่าง เพื่อจุดประสงค์นี้ ไมโครเบนช์มาร์กของ Wattchmen ใช้เทคนิคเช่น อินไลน์แอสเซมบลีและการบังคับให้ลูปคลี่ออก (loop unrolling) จำนวนมาก เพื่อให้แน่ใจว่าคำสั่งที่สร้างและควบคุมคือคำสั่ง SASS ที่แน่นอน

รายการโค้ด 1: เคอร์เนลไมโครเบนช์มาร์กคำสั่ง SHFL เคอร์เนลนี้สร้างคำสั่ง SASS เป้าหมายโดยตรงผ่านอินไลน์แอสเซมบลี และใช้การคลี่ลูปเพื่อเพิ่มสัดส่วนของคำสั่งเป้าหมาย เพื่อวัดการใช้พลังงานไดนามิกของคำสั่งเดียวอย่างแม่นยำ
ใช้การทดสอบคำสั่ง SHFL ในรายการโค้ดข้างต้นเป็นตัวอย่าง เพื่อวัดการใช้พลังงานของคำสั่งสับเปลี่ยนภายใน Warp โค้ดทดสอบจะห่อ __shfl_sync ไว้ในเนื้อความลูปที่ใช้ #pragma unroll การออกแบบนี้ไม่เพียงแต่กำจัดค่าโสหุ้ยการควบคุมลูปผ่านการคลี่ออก แต่ที่สำคัญกว่านั้นคือสร้างหน้าต่างการดำเนินการสภาวะคงที่ที่ยาวพอผ่านการดำเนินการซ้ำๆ เพื่ออำนวยความสะดวกในการวัดการใช้พลังงาน
นอกจากนี้ ชุดทดสอบยังครอบคลุมความกว้างของข้อมูล โหมดการอ้างอิงที่อยู่ และสถานการณ์การเข้าถึงแคชที่แตกต่างกัน ตัวอย่างเช่น เพื่อแยกความแตกต่างของการใช้พลังงานระหว่างการเข้าถึงแคช L1 ถูกและไม่ถูก ทดสอบโดยปรับขั้นการเข้าถึงข้อมูลเพื่อสร้างความล้มเหลวของแคชโดยเจตนา และเสริมด้วยตัวนับประสิทธิภาพเพื่อตรวจสอบอัตราการเข้าถึงจริง

รูปที่ 5: ผลลัพธ์ไมโครเบนช์มาร์กง่ายๆ ที่ตรวจสอบความสามารถในการบวกเชิงเส้นของการใช้พลังงานของคำสั่ง การทดลองแสดงให้เห็นว่าการใช้พลังงานไดนามิกของ GPU มีความสัมพันธ์เชิงเส้นอย่างเคร่งครัดกับจำนวนการดำเนินการคำสั่ง ในขณะที่การใช้พลังงานสถิตย์เพิ่มขึ้นเชิงเส้นตามเวลาในการดำเนินการ กฎนี้ให้พื้นฐานทางทฤษฎีสำหรับการแก้หาการใช้พลังงานระดับคำสั่งผ่านระบบสมการ
2.2 การแยกการใช้พลังงานพื้นฐาน: การแยกการใช้พลังงานสถิตย์และค่าคงที่
หลังจากได้การใช้พลังงานทั้งหมดของไมโครเบนช์มาร์กแล้ว จำเป็นต้องแยกมันออกเป็นสามส่วน:
* การใช้พลังงานคงที่: ค่าโสหุ้ยการทำงานว่างของ GPU ในสถานะการใช้พลังงานต่ำสุด
* การใช้พลังงานสถิตย์: ค่าโสหุ้ยเมื่อ SM ถูกเปิดใช้งานแต่ไม่ได้ดำเนินการคำนวณ (เช่น ต้นไม้สัญญาณนาฬิกา การรั่วไหลของแคช)
* การใช้พลังงานไดนามิก: การใช้พลังงานจากการสวิตช์ที่เกิดจากการดำเนินการคำสั่ง
Wattchmen วัดการใช้พลังงานเมื่อ SM เปิดใช้งานแต่ไม่ได้ใช้งานโดยการดำเนินการเคอร์เนลพิเศษ NANOSLEEP เพื่อปรับเทียบการใช้พลังงานสถิตย์ เมื่อดำเนินการไมโครเบนช์มาร์ก โดยการรวบรวมการใช้พลังงานขณะไม่ได้ใช้งานและคำนวณตามเวลา จะหักลบการใช้พลังงานคงที่และการใช้พลังงานสถิตย์ออกจากการใช้พลังงานทั้งหมด เพื่อแยกการใช้พลังงานไดนามิกของคำสั่งเป้าหมาย
2.3 การเติมเต็มพจนานุกรมการใช้พลังงานของคำสั่ง: การจัดกลุ่ม การปรับสเกล และการแบ่งกลุ่ม
เพื่อสร้างพจนานุกรมการใช้พลังงานของคำสั่งที่ใกล้สมบูรณ์ Wattchmen ได้นำกลไกสามอย่างมาใช้:
1. การจัดกลุ่มตามตัวปรับแต่ง: สำหรับคำสั่งที่มีตัวปรับแต่งโฟลว์ควบคุม เช่น .E, .AND, .OR ถือว่ามีผลกระทบต่อการใช้พลังงานทางกายภาพของหน่วยดำเนินการน้อยมาก จัดกลุ่มเข้าด้วยกันและกำหนดค่าพลังงานเดียวกัน
2. การปรับสเกลตามความกว้างบิต: สำหรับคำสั่งเข้าถึงหน่วยความจำ โดยการวัดการใช้พลังงานของความกว้างข้อมูลไม่กี่ชนิด หาตัวประกอบสัดส่วนระหว่างความกว้างบิตและการใช้พลังงาน จากนั้นประมาณการใช้พลังงานของความกว้างบิตที่ไม่ได้ทดสอบ
3. การแบ่งกลุ่มตามฟังก์ชัน: สำหรับคำสั่งที่พบได้ยากมากหรือทดสอบแยกได้ยาก จัดกลุ่มเข้าด้วยกันตามกลุ่มคำสั่งที่มีฟังก์ชันคล้ายกัน (เช่น กลุ่ม “คำสั่ง ALU จำนวนเต็ม”) และใช้ค่าเฉลี่ยการใช้พลังงานของคำสั่งที่รู้จักภายในกลุ่มเป็นค่าประมาณ กลยุทธ์นี้เพิ่มความครอบคลุมของคำสั่งจาก 70% เป็น 93% โดยไม่นำความคลาดเคลื่อนที่สำคัญมา
2.4 การคาดการณ์การใช้พลังงาน: จากพจนานุกรมสู่แอปพลิเคชันจริง
หลังจากฝึกอบรมเสร็จสิ้น ขั้นตอนการคาดการณ์มีดังนี้:
สำหรับเคอร์เนล GPU เป้าหมาย ใช้เครื่องมือวิเคราะห์ประสิทธิภาพ (เช่น Nsight Compute) เพื่อรวบรวมจำนวนครั้งที่คำสั่ง SASS ถูกดำเนินการและอัตราการเข้าถึงแคชทุกระดับ รวมข้อมูลการเข้าถึงแคช เพื่อแก้ไขค่าการใช้พลังงานของคำสั่งเข้าถึงหน่วยความจำ (ตัวอย่างเช่น แยกความแตกต่างระหว่างค่าโสหุ้ยของการเข้าถึง L2 ถูกและเข้าถึงหน่วยความจำหลัก) การใช้พลังงานทั้งหมดที่คาดการณ์ของแอปพลิเคชันคือผลรวมของการใช้พลังงานพื้นฐานและการใช้พลังงานไดนามิกของคำสั่งทั้งหมด วิธีนี้สามารถสร้างผลการวิเคราะห์การใช้พลังงานระดับละเอียด เพื่อช่วยในการปรับปรุงประสิทธิภาพ
สาม การประเมินประสิทธิภาพ: การวิเคราะห์ความคลาดเคลื่อนและความสามารถในการปรับใช้ทั่วไปข้ามแพลตฟอร์ม
การประเมินมีวัตถุประสงค์เพื่อตรวจสอบความแม่นยำในการคาดการณ์และความสามารถในการปรับใช้ทั่วไปของ Wattchmen

ตารางที่ 2: สรุปแพลตฟอร์มการทดลอง การทดสอบครอบคลุมรุ่น GPU ที่แตกต่างกันในคลัสเตอร์คอมพิวเตอร์ประสิทธิภาพสูงหลายแห่ง มีวัตถุประสงค์เพื่อตรวจสอบความสามารถในการปรับใช้ทั่วไปของโมเดลข้ามแผนการระบายความร้อนและข้ามรุ่นสถาปัตยกรรม
บนแพลตฟอร์ม V100 ที่ระบายความร้อนด้วยอากาศ/น้ำ, A100 ที่ระบายความร้อนด้วยอากาศ และ H100 ที่ระบายความร้อนด้วยอากาศ เปรียบเทียบความแม่นยำในการคาดการณ์ของ AccelWatch, Guser และ Wattchmen ผลลัพธ์แสดงให้เห็นว่า Wattchmen รักษาความแม่นยำสูงในขณะที่มีความสามารถในการปรับใช้ทั่วไปข้ามสถาปัตยกรรมและสภาพแวดล้อมที่ยอดเยี่ยม

ตารางที่ 3: สรุปเวิร์กโหลดการทดสอบ เวิร์กโหลดครอบคลุมประเภทต่างๆ เช่น การคำนวณทั่วไป การวิเคราะห์กราฟ แมชชีนเลิร์นนิง และการคำนวณทางวิทยาศาสตร์ เพื่อตรวจสอบความสามารถในการคาดการณ์ของโมเดลภายใต้โหมดการกดดันที่แตกต่างกันอย่างครอบคลุม
3.1 ผลลัพธ์บนแพลตฟอร์ม V100: ลดความคลาดเคลื่อนในการคาดการณ์อย่างมีนัยสำคัญ
ผลการทดสอบบนแพลตฟอร์ม V100 ที่ระบายความร้อนด้วยอากาศแสดงให้เห็นว่า:
* AccelWatch มีค่าความคลาดเคลื่อนสัมบูรณ์เฉลี่ยเป็นเปอร์เซ็นต์ (MAPE) 32%
* Guser มี MAPE 25%
* Wattchmen-Direct (ใช้ค่าการใช้พลังงานของคำสั่งที่วัดได้โดยตรง) ลด MAPE ลงเหลือ 19%
* Wattchmen-Predict (เปิดใช้งานกลไกการจัดกลุ่มและการแบ่งกลุ่ม) ลด MAPE ลงอีกเหลือ 14%

รูปที่ 6: การเปรียบเทียบระหว่างการใช้พลังงานที่คาดการณ์โดยแต่ละโมเดลกับค่าที่วัดได้จริงบนแพลตฟอร์ม V100 ที่ระบายความร้อนด้วยอากาศ ผลลัพธ์การคาดการณ์ของ Wattchmen-Predict ใกล้เคียงกับค่าที่วัดได้จริงมากที่สุด
3.2 การตรวจสอบในสภาพแวดล้อมระบายความ
⚠️ หมายเหตุ: เนื้อหาได้รับการแปลโดย AI และตรวจสอบโดยมนุษย์ หากมีข้อผิดพลาดโปรดแจ้ง
☕ สนับสนุนค่ากาแฟทีมงาน
หากคุณชอบบทความนี้ สามารถสนับสนุนเราได้ผ่าน PromptPay
本文来自网络搜集,不代表คลื่นสร้างอนาคต立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/th/archives/31597
