เปิดตัวข้อกำหนด OpenCL 3.0

ข้อกังวลของ Khronos ซึ่งรับผิดชอบในการพัฒนาข้อกำหนดตระกูล OpenGL, Vulkan และ OpenCL ประกาศ เมื่อเสร็จสิ้นการพัฒนาข้อกำหนด OpenCL 3.0 ที่กำหนด API และส่วนขยายของภาษา C สำหรับการจัดระเบียบการประมวลผลแบบขนานข้ามแพลตฟอร์มโดยใช้ CPU แบบมัลติคอร์, GPU, FPGA, DSP และชิปพิเศษอื่นๆ จากที่ใช้ในซูเปอร์คอมพิวเตอร์และเซิร์ฟเวอร์คลาวด์ ไปจนถึงชิปที่พบในอุปกรณ์พกพาและเทคโนโลยีแบบฝังตัว มาตรฐาน OpenCL นั้นเปิดโดยสมบูรณ์และไม่ต้องเสียค่าธรรมเนียมใบอนุญาต บริษัทต่างๆ เช่น IBM, NVIDIA, Intel, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments และ Toshiba มีส่วนร่วมในการทำงานเกี่ยวกับมาตรฐานดังกล่าว

ในขั้นตอนปัจจุบัน ข้อกำหนดดังกล่าวได้รับการกำหนดสถานะชั่วคราว ซึ่งแสดงถึงความเป็นไปได้ในการปรับปรุงตามความคิดเห็นที่ส่งผ่าน GitHub. เมื่อนำความคิดเห็นมาพิจารณาแล้ว ข้อกำหนดจะได้รับการสรุปและเผยแพร่ชุดทดสอบขั้นสุดท้ายเพื่อทดสอบความเข้ากันได้ของการใช้งานที่มีอยู่

เปิดตัวข้อกำหนด OpenCL 3.0

โดดเด่นที่สุด คุณสมบัติ OpenCL 3.0:

  • ขณะนี้ OpenCL 3.0 API ครอบคลุม OpenCL ทุกรุ่น (1.2, 2.x) โดยไม่ต้องระบุข้อกำหนดเฉพาะสำหรับแต่ละเวอร์ชันแยกกัน OpenCL 3.0 มอบความสามารถในการขยายฟังก์ชันการทำงานหลักผ่านการผสานรวมข้อกำหนดเพิ่มเติมที่จะซ้อนกันในรูปแบบของตัวเลือกโดยไม่ปิดกั้นลักษณะเสาหินของ OpenCL 1.2/2.X
  • เฉพาะฟังก์ชันการทำงานที่สอดคล้องกับ OpenCL 1.2 เท่านั้นที่ได้รับการประกาศให้เป็นข้อบังคับ และคุณลักษณะทั้งหมดที่เสนอในข้อกำหนด OpenCL 2.x ได้รับการจัดประเภทเป็นตัวเลือก แนวทางนี้จะทำให้ง่ายต่อการสร้างการใช้งานแบบกำหนดเองที่เข้ากันได้กับ OpenCL 3.0 และจะขยายขอบเขตของอุปกรณ์ที่สามารถใช้ OpenCL 3.0 ได้ ตัวอย่างเช่น ผู้ผลิตสามารถใช้การสนับสนุน OpenCL 3.0 โดยไม่ต้องใช้คุณลักษณะเฉพาะของ OpenCL 2.x เพื่อเข้าถึงคุณลักษณะภาษาที่เป็นตัวเลือก OpenCL 3.0 ได้เพิ่มระบบแบบสอบถามทดสอบที่ช่วยให้คุณสามารถประเมินการสนับสนุนองค์ประกอบ API แต่ละรายการ รวมถึงมาโครพิเศษ
  • การรวมเข้ากับข้อกำหนดที่เผยแพร่ก่อนหน้านี้ช่วยให้ย้ายแอปพลิเคชันไปยัง OpenCL 3.0 ได้ง่ายขึ้น แอปพลิเคชัน OpenCL 1.2 จะสามารถทำงานบนอุปกรณ์ที่รองรับ OpenCL 3.0 ได้โดยไม่ต้องดัดแปลง แอปพลิเคชัน OpenCL 2.x จะไม่จำเป็นต้องมีการเปลี่ยนแปลงโค้ด ตราบใดที่สภาพแวดล้อม OpenCL 3.0 มีฟังก์ชันที่จำเป็น (เพื่อให้มั่นใจในการพกพาในอนาคต ขอแนะนำให้แอปพลิเคชัน OpenCL 2.x เพิ่มแบบสอบถามทดสอบเพื่อประเมินการสนับสนุนสำหรับฟีเจอร์ OpenCL 2.x กำลังใช้). นักพัฒนาไดรเวอร์ที่มีการใช้งาน OpenCL สามารถอัปเกรดผลิตภัณฑ์ของตนเป็น OpenCL 3.0 ได้อย่างง่ายดาย โดยเพิ่มเฉพาะการประมวลผลแบบสอบถามสำหรับการเรียก API บางอย่าง และค่อยๆ เพิ่มฟังก์ชันการทำงานเมื่อเวลาผ่านไป
  • ข้อมูลจำเพาะของ OpenCL 3.0 สอดคล้องกับสภาพแวดล้อม ส่วนขยาย และข้อมูลจำเพาะของการนำเสนอระดับกลางทั่วไป SPIR-V ซึ่งใช้โดย Vulkan API เช่นกัน การรองรับข้อกำหนด SPIR-V 1.3 รวมอยู่ใน OpenCL 3.0 หลักเป็นคุณสมบัติเสริม โดยการใช้ตัวแทนระดับกลาง สไปร์-วี เพิ่มการรองรับการดำเนินการกับกลุ่มย่อยสำหรับแกนประมวลผล
    เปิดตัวข้อกำหนด OpenCL 3.0

  • เพิ่มการรองรับสำหรับส่วนขยายสำหรับการดำเนินการ DMA แบบอะซิงโครนัส (Asynchronous DMA) ซึ่งรองรับในชิปคล้าย DSP ที่มีการเข้าถึงหน่วยความจำโดยตรง DMA แบบอะซิงโครนัสทำให้สามารถใช้ธุรกรรม DMA เพื่อถ่ายโอนข้อมูลระหว่างหน่วยความจำส่วนกลางและหน่วยความจำภายในแบบอะซิงโครนัส ควบคู่ไปกับการคำนวณหรือการดำเนินการถ่ายโอนข้อมูลอื่นๆ
  • ข้อมูลจำเพาะส่วนขยายการเขียนโปรแกรม C Parallel ได้รับการอัปเดตเป็น เวอร์ชัน 3.0และการพัฒนาส่วนขยายภาษา OpenCL สำหรับ C++ ถูกยกเลิกเพื่อสนับสนุนโครงการ “C++ สำหรับ OpenCL” C++ สำหรับ OpenCL เป็นคอมไพเลอร์ที่ใช้ Clang/LLVM และ การออกอากาศ เคอร์เนล C++ และ OpenCL C เป็นตัวแทนระดับกลาง SPIR-V หรือรหัสเครื่องระดับต่ำ ผ่านการออกอากาศ SPIR-V ยังจัดระเบียบแอสเซมบลีของแอปพลิเคชัน C++ โดยใช้ไลบรารีเทมเพลต SYCL ซึ่งช่วยให้การสร้างแอปพลิเคชันแบบขนานง่ายขึ้น

    เปิดตัวข้อกำหนด OpenCL 3.0

  • มีการเสนอคอมไพเลอร์สำหรับการออกอากาศ OpenCL ผ่าน Vulkan API ซีแอลเอสพีวีซึ่งแปลงเคอร์เนล OpenCL เป็นตัวแทน Vulkan SPIR-V และเลเยอร์ ซีแอลวีเค เพื่อเปิดใช้งาน OpenCL API เพื่อทำงานบน Vulkan

    เปิดตัวข้อกำหนด OpenCL 3.0

ที่มา: opennet.ru

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