กูเกิลนำเสนอ AI ช่วยคอมไพล์เลอร์ปรับปรุงประสิทธิภาพโค้ด

by lew
7 July 2022 - 07:41

กูเกิลนำเสนอปัญญาประดิษฐ์ MLGO นำมาช่วยคอมไพลเลอร์ให้ออปติไมซ์โค้ดได้ดีขึ้นกว่าเดิม ทั้งในแง่ประสิทธิภาพการทำงาน และขนาดโค้ดที่ได้หลังจากคอมไพล์แล้ว

การปรับปรุงขนาดโค้ดนั้นอาศัยการย้ายโค้ดจากในฟังก์ชั่นออกมาภายนอก (inlining) ที่ก่อนหน้านี้คอมไพล์เลอร์ก็มีตัวออปติไมซ์แบบ heuristic ที่ค้นหาแนวทางการทำ inlining ให้ได้โค้ดขนาดเล็กที่สุดอยู่แล้ว แต่กระบวนการออปติไมซ์นั้นซับซ้อนและปรับปรุงเพิ่มเติมได้ยาก การใช้ MLGO เข้าไปช่วยออปติไมซ์เป็นการฝึกปัญญาประดิษฐ์แบบ reinforce learning (RL) ที่ปัญญาประดิษฐ์จะได้รางวัลจากตัดสินใจทำ inlining แล้วโค้ดเล็กลง ผที่ได้จากการคอมไพล์โค้ดภายในของกูเกิลเองสามารถลดขนาดโค้ดได้ 3-7%

อีกส่วนหนึ่งคือการจัดเรียงการใช้งาน registry ในซีพียูที่มีจำนวนจำกัด และเมื่อต้องพิจารณาตัวแปรต่างๆ ก็ต้องโหลดข้อมูลเข้าออกจาก registry เรื่อยๆ การจัดเรียงโค้ดโดยคำถึงนึงการใช้งาน registry ทำให้ซอฟต์แวร์โดยรวมประสิทธิภาพดีขึ้นได้ ในกรณีนี้ MLGO สามารถออปติไมซ์ประสิทธิภาพโค้ดภายในได้ 0.3-1.5%

ทีมงานคาดว่าตัวปัญญาประดิษ์สามารถออกแบบให้ดีขึ้น และออปติไมซ์โค้ดได้มากกว่าเดิม ขณะที่ในอนาคตก็อาจจะพัฒนา MLGO ไปใช้งานในการออปติไมซ์งานส่วนอื่นๆ ของคอมไพล์เลอร์เพิ่มเติม

ที่มา - Google AI Blog

Blognone Jobs Premium