ปล่อย PoCL 3.1 พร้อมการนำมาตรฐาน OpenCL ไปใช้อย่างอิสระ

มีการนำเสนอการเปิดตัวโครงการ PoCL 3.1 (Portable Computing Language OpenCL) ซึ่งพัฒนาการใช้งานมาตรฐาน OpenCL ที่เป็นอิสระจากผู้ผลิตตัวเร่งกราฟิกและอนุญาตให้ใช้แบ็กเอนด์ที่หลากหลายเพื่อเรียกใช้แกน OpenCL บนกราฟิกและโปรเซสเซอร์กลางประเภทต่างๆ รหัสโครงการแจกจ่ายภายใต้ใบอนุญาต MIT รองรับการทำงานบนแพลตฟอร์ม X86_64, MIPS32, ARM v7, AMD HSA APU, NVIDIA GPU และ ASIP (Application-Specific Instruction-set Processor) และ TTA-processor (Transport Triggered Architecture) พิเศษต่างๆ พร้อมสถาปัตยกรรม VLIW

การใช้งานคอมไพเลอร์หลักของ OpenCL ขึ้นอยู่กับ LLVM และ Clang ใช้เป็นฟรอนต์เอนด์สำหรับ OpenCL C เพื่อให้แน่ใจว่าสามารถพกพาได้และประสิทธิภาพที่เหมาะสม เคอร์เนลคอมไพเลอร์ของ OpenCL สามารถสร้างฟังก์ชันแบบรวมที่สามารถใช้ทรัพยากรฮาร์ดแวร์ต่างๆ เพื่อดำเนินการโค้ดแบบขนาน เช่น VLIW, ซูเปอร์สเกลาร์, SIMD, SIMT, มัลติคอร์ และมัลติเธรด มีการรองรับไดรเวอร์ ICD (ไดรเวอร์ไคลเอนต์ที่ติดตั้งได้) มีแบ็กเอนด์เพื่อรองรับการทำงานผ่าน CPU, ASIP (TCE/TTA), GPU ตามสถาปัตยกรรม HSA และ NVIDIA GPU (ผ่าน libcuda)

ในเวอร์ชันใหม่:

  • เพิ่มการรองรับ Clang/LLVM 15.0
  • SPIR-V shader staging รองรับ CPU และไดรเวอร์ CUDA ที่ได้รับการปรับปรุงอย่างมีนัยสำคัญ
  • ไดรเวอร์ที่ออกแบบใหม่อย่างมากสำหรับฮาร์ดแวร์พิเศษ (CL_DEVICE_TYPE_ACCELERATOR) และอุปกรณ์แบบกำหนดเอง (CL_DEVICE_TYPE_CUSTOM) ที่ไม่รองรับการคอมไพล์ออนไลน์ ไดรเวอร์ Accel และ ttasim ถูกรวมเข้ากับไดรเวอร์ AlmaIF ใหม่
  • งานยังคงดำเนินต่อไปกับไดรเวอร์สำหรับ Vulkan graphics API
  • มีการเสนอการใช้งานพื้นฐานของส่วนขยาย cl_khr_command_buffer ซึ่งอนุญาตให้เขียนลำดับของคำสั่ง OpenCL สำหรับการดำเนินการโดยการเรียกเพียงครั้งเดียว

ที่มา: opennet.ru

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