โครงการ LLVM เปิดตัว HPVM 1.0 ซึ่งเป็นคอมไพเลอร์สำหรับ CPU, GPU, FPGA และตัวเร่งความเร็ว

นักพัฒนาโครงการ LLVM ได้เผยแพร่การเปิดตัวคอมไพเลอร์ HPVM 1.0 (Heterogeneous Parallel Virtual Machine) โดยมีจุดมุ่งหมายเพื่อทำให้การเขียนโปรแกรมง่ายขึ้นสำหรับระบบที่ต่างกัน และจัดหาเครื่องมือสำหรับการสร้างโค้ดสำหรับ CPU, GPU, FPGA และเครื่องเร่งฮาร์ดแวร์เฉพาะโดเมน (รองรับ FGPA และตัวเร่งความเร็วไม่รวมอยู่ในรุ่น 1.0) รหัสโครงการเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0

แนวคิดหลักของ HPVM คือการนำเสนอโปรแกรมปฏิบัติการแบบขนานแบบครบวงจรเมื่อทำการคอมไพล์ ซึ่งสามารถใช้สำหรับการดำเนินการโดยใช้ฮาร์ดแวร์ประเภทต่าง ๆ ที่รองรับการประมวลผลแบบขนาน รวมถึง GPU, คำแนะนำแบบเวกเตอร์, โปรเซสเซอร์แบบมัลติคอร์, FPGA และ ชิปเร่งความเร็วพิเศษต่างๆ ต่างจากระบบอื่นๆ HPVM พยายามรวมความสามารถสามประการสำหรับการจัดระเบียบการประมวลผลแบบต่างกัน: การแสดงระดับกลางที่ไม่ขึ้นกับภาษาและฮาร์ดแวร์ สถาปัตยกรรมชุดคำสั่งเสมือน (ISA) และการกำหนดตารางเวลารันไทม์

การเป็นตัวแทนระดับกลางที่ไม่ขึ้นอยู่กับเป้าหมาย (IR) ของ HPVM สร้างขึ้นจากการแสดงคำสั่งระดับกลาง LLVM 9.0 และขยายด้วยกราฟการไหลของข้อมูลแบบลำดับชั้นเพื่อจับภาพความเท่าเทียมระดับงาน ข้อมูล และไปป์ไลน์ การแสดงระดับกลางของ HPVM ยังรวมถึงคำสั่งเวกเตอร์และหน่วยความจำแบบแบ่งใช้ วัตถุประสงค์หลักของการใช้การแสดงระดับกลางคือการสร้างโค้ดที่มีประสิทธิภาพและการเพิ่มประสิทธิภาพสำหรับระบบที่ต่างกัน

สถาปัตยกรรมชุดคำสั่งเสมือน (ISA) ช่วยให้สามารถพกพาระหว่างฮาร์ดแวร์การประมวลผลแบบขนานประเภทต่างๆ และทำให้ไม่สูญเสียประสิทธิภาพเมื่อใช้องค์ประกอบที่แตกต่างกันของระบบที่ต่างกัน ISA เสมือนยังสามารถใช้เพื่อส่งมอบโค้ดโปรแกรมปฏิบัติการสากลที่สามารถรันโดยใช้ CPU, GPU, FPGA และตัวเร่งความเร็วต่างๆ

ในขั้นตอนการพัฒนาปัจจุบัน HPVM นำเสนอตัวสร้างโค้ดที่สามารถแปลโหนดแอปพลิเคชันที่กำหนดโดยใช้ ISA เสมือนสำหรับการดำเนินการโดยใช้ NVIDIA GPU (cuDNN และ OpenCL), คำสั่งเวกเตอร์ Intel AVX และซีพียู x86 แบบมัลติคอร์ ณ รันไทม์ HPVM จะใช้นโยบายการกำหนดเวลากระบวนการคำนวณที่ยืดหยุ่น ซึ่งนำไปใช้ทั้งตามข้อมูลโปรแกรม (โครงสร้างกราฟ) และผ่านการคอมไพล์แต่ละโหนดของโปรแกรมเพื่อดำเนินการบนอุปกรณ์ประมวลผลเป้าหมายที่มีอยู่ในระบบ

มีข้อสังเกตว่าการใช้ HPVM สามารถเพิ่มประสิทธิภาพการผลิตได้อย่างมาก ประสิทธิภาพของนักแปล HPVM เทียบได้กับโค้ด OpenCL ที่เขียนด้วยมือสำหรับ GPU และอุปกรณ์ประมวลผลแบบเวกเตอร์

เมื่อเปรียบเทียบกับการแสดงตัวอย่างครั้งแรก HPVM 1.0 มีการรองรับการดำเนินงานเทนเซอร์พีชคณิตเชิงเส้น ส่วนหน้าสำหรับ Pytorch และ Keras การประมาณค่าโอเปอเรเตอร์ Convolution และเฟรมเวิร์กการปรับแต่งการประมาณที่เลือกการประมาณที่เหมาะสมที่สุดโดยอัตโนมัติสำหรับการทำงานของเทนเซอร์เฉพาะ และเลือกการกำหนดค่าที่ให้ประสิทธิภาพสูงสุด

ที่มา: opennet.ru

เพิ่มความคิดเห็น