ชุมชนเทคโนโลยีกำลังพูดคุยกันอย่างกว้างขวางเกี่ยวกับการเคลื่อนไหวล่าสุดของ Ubuntu ที่มุ่งสู่แพ็กเกจที่ปรับแต่งสำหรับ x86-64-v3 ในขณะที่การประกาศอย่างเป็นทางการเน้นไปที่รายละเอียดการดำเนินงานด้านเทคนิค บทสนทนาในชุมชนได้เผยให้เห็นข้อมูลเชิงลึกที่น่าประหลาดใจเกี่ยวกับสิ่งที่การปรับปรุงประสิทธิภาพเพียงเล็กน้อยสามารถหมายถึงในระดับใหญ่
พลังของกำไรส่วนเพิ่ม
การเปลี่ยนผ่านของ Ubuntu ไปสู่แพ็กเกจระดับสถาปัตยกรรม x86-64-v3 สัญญาว่าจะทำให้ประสิทธิภาพโดยเฉลี่ยดีขึ้น 1% ในแอปพลิเคชันส่วนใหญ่ โดยบางแพ็กเกจด้านตัวเลขจะได้รับประโยชน์มากขึ้นไปอีก แม้ว่านี่อาจฟังดูเล็กน้อยสำหรับผู้ใช้แต่ละคน แต่ชุมชนก็ตระหนักได้อย่างรวดเร็วถึงผลกระทบอันใหญ่หลวงสำหรับการติดตั้งในระดับกว้าง
หากคุณมีกระบวนการที่ใช้เวลา 100 ชั่วโมงในการรันและมีต้นทุน 1,000 ดอลลาร์สหรัฐต่อชั่วโมง คุณจะประหยัดเวลาไปหนึ่งชั่วโมงและประหยัดเงิน 1,000 ดอลลาร์สหรัฐ ทุกครั้งที่รันกระบวนการ คุณจะประหยัดได้ค่อนข้างมาก
มุมมองนี้ชี้ให้เห็นว่าทำไมผู้ให้บริการระดับไฮเปอร์สเกลและองค์กรขนาดใหญ่จึงให้ความสนใจเป็นพิเศษ เมื่อคำนวณขยายผลไปทั่วเซิร์ฟเวอร์หลายพันเครื่องที่ทำงานตลอด 24 ชั่วโมง ตัวเลข 1% นั้นแปลเป็นการประหยัดต้นทุนอย่างมีนัยสำคัญทั้งในด้านฮาร์ดแวร์และการใช้พลังงาน ผู้แสดงความคิดเห็นหนึ่งคนระบุว่าในระดับใหญ่ คุณต้องการเซิร์ฟเวอร์ 100 เครื่อง ตอนนี้คุณต้องซื้อเพียง 99 เครื่อง คูณตัวเลขนั้นด้วยหนึ่งล้าน แล้วเศรษฐกิจจากขนาดก็สำคัญจริงๆ
ตัวอย่างผลกระทบด้านประสิทธิภาพ:
- แพ็กเกจส่วนใหญ่: ปรับปรุงประมาณ 1%
- แพ็กเกจเชิงตัวเลข/วิทยาศาสตร์: ปรับปรุง 1.5-2 เท่าในบางกรณี
- การบีบอัด/การเข้ารหัส: ได้รับการปรับให้เหมาะสมแล้วผ่าน runtime dispatch
- แอปพลิเคชันที่ใช้หน่วยความจำมาก: ได้รับประโยชน์อย่างมากจากการปรับปรุง AVX2
เหนือกว่าค่าเฉลี่ย: ที่ที่ชัยชนะที่แท้จริงซ่อนอยู่
บทสนทนาเปิดเผยว่าการปรับปรุงค่าเฉลี่ย 1% นั้นปกปิดกำไรที่มากกว่าอย่างมีนัยสำคัญในงานเฉพาะด้าน สมาชิกในชุมชนชี้ให้เห็นแอปพลิเคชันเช่น llama.cpp การประมวลผลภาพ อัลกอริทึมการบีบอัด และการคำนวณทางวิทยาศาสตร์ เป็นพื้นที่ที่ประโยชน์อาจจะมากเป็นอย่างมาก
ผู้เชี่ยวชาญด้านเทคนิคหลายท่านอธิบายว่าห้องสมุดที่สำคัญต่อประสิทธิภาพหลายแห่งได้ใช้การตรวจจับคุณลักษณะซีพียูขณะรันเวลาอยู่แล้วเพื่อเลือกเส้นทางโค้ดที่ปรับแต่งให้เหมาะสม อย่างไรก็ตาม การคอมไพล์ทั้งดิสทริบิวชันสำหรับระดับสถาปัตยกรรมเฉพาะจะขจัดโอเวอร์เฮดของลอจิกการส่งข้อมูลนี้และอนุญาตให้คอมไพเลอร์นำการปรับให้เหมาะสมไปใช้อย่างกว้างขวางมากขึ้นในโค้ดทั้งหมด
มรดกของ Gentoo และการนำไปใช้ในยุคสมัยใหม่
ผู้ใช้ Linux มาตั้งแต่สมัยก่อนวาดเส้นขนานไปยัง Gentoo Linux ทันที ซึ่งการคอมไพล์แพ็กเกจเฉพาะสำหรับฮาร์ดแวร์ของตนเองเป็นปรัชญาหลักมาหลายทศวรรษ ผู้แสดงความคิดเห็นหนึ่งคนไตร่ตรองว่า: สิ่งนี้ทำให้ฉันย้อนกลับไปเมื่อ 20 ปีก่อน ที่โต้เถียงกับผู้ใช้ Gentoo ซึ่งยืนยันว่าการคอมไพล์ทุกอย่างจากซอร์สสำหรับเครื่องของพวกเขาทำให้ทุกอย่างเร็วขึ้น
ความแตกต่างหลักในวันนี้คือ Ubuntu กำลังนำสิ่งนี้ไปใช้ผ่านแพ็กเกจไบนารี แทนที่จะกำหนดให้ผู้ใช้ต้องคอมไพล์จากซอร์ส ชุมชนได้อภิปรายว่า x86-64-v3 แทนถึงซีพียูที่มีการรองรับ AVX2 ซึ่งครอบคลุมซีพียูส่วนใหญ่ที่ผลิตในทศวรรษที่ผ่านมา ในขณะที่หลีกเลี่ยงความซับซ้อนของ AVX-512 ที่สร้างปัญหาให้กับสถาปัตยกรรม Intel ล่าสุด
ระดับสถาปัตยกรรมจิโคร x86-64:
- x86-64-v1: x86-64 พื้นฐาน (ประมาณปี 2003)
- x86-64-v2: เพิ่ม SSE4.2, POPCNT (ประมาณปี 2009)
- x86-64-v3: เพิ่ม AVX2, BMI1, BMI2 (ประมาณปี 2015)
- x86-64-v4: เพิ่ม AVX-512 (ประมาณปี 2017)
ข้อพิจารณาเชิงปฏิบัติและการแลกเปลี่ยน
การอภิปรายในชุมชนยังได้นำเสนอข้อกังวลเชิงปฏิบัติที่สำคัญ บางส่วนตั้งคำถามว่าความซับซ้อนของการบำรุงรักษาสถาปัตยกรรมที่หลากหลายนั้นคุ้มค่ากับกำไรด้านประสิทธิภาพหรือไม่ บางส่วนหยิบยกปัญหาด้านความเข้ากันได้ โดยเฉพาะอย่างยิ่งเกี่ยวกับการย้ายพื้นที่จัดเก็บระหว่างระบบที่มีความสามารถของซีพียูแตกต่างกัน
บทสนทนาเน้นย้ำว่าในขณะที่ผู้ใช้ส่วนใหญ่จะไม่รู้สึกถึงความแตกต่างในการใช้งานประจำวัน แต่ผลสะสมทั่วระบบหลายล้านระบบอาจมีนัยสำคัญ ตามที่ผู้เข้าร่วมหนึ่งคนสรุป: ในระบบที่ซับซ้อน ประโยชน์โดยรวม 1% อาจเกิดจากการปรับปรุง 10% ในเพียง 10% ของระบบ
ฉันทามติของชุมชนชี้ให้เห็นว่าในขณะที่ผู้ใช้แต่ละคนอาจไม่รีบร้อนที่จะนำระบบที่ปรับแต่งสำหรับ x86-64-v3 ไปใช้ การติดตั้งในระดับใหญ่มีแนวโน้มที่จะยอมรับการปรับให้เหมาะสมเหล่านี้เพื่อประโยชน์ที่ทวีคูณเมื่อเวลาผ่านไป
อ้างอิง: [ANNOUNCING] SNAPD CRAFT 23.10: Crafting snaps and interfaces as simple as 1, 2, 3…
