Tags:
Node Thumbnail

Khronos Group กลุ่มมาตรฐานอุตสาหกรรมด้านกราฟิก (ผู้ออกมาตรฐาน OpenGL และ Vulkan) ประกาศออกมาตรฐาน OpenCL เวอร์ชัน 3.0 ที่มาแบบแปลกๆ คือ "รีเซ็ต" จักรวาล OpenCL ใหม่ ข้ามเวอร์ชัน 2.x ในปัจจุบัน กลับไปยึดแกนของ OpenCL 1.2 ที่เก่ากว่าแทน

OpenCL เป็น API กลางสำหรับประมวลผลข้อมูลแบบขนาน ด้วยหน่วยประมวลผลหลายชนิดร่วมกัน (เช่น CPU, GPU, DSP, FPGA) ตัวสเปกเวอร์ชันต้นฉบับ 1.0 พัฒนาโดยแอปเปิลในปี 2008 แล้วยกให้ Khronos ดูแลต่อมาเป็นเวอร์ชัน 1.1 (ปี 2010) และเวอร์ชัน 1.2 (ปี 2011)

Khronos ออก OpenCL 2.0 ในปี 2013 โดยเพิ่มฟีเจอร์ใหม่มากมาย (ตามด้วย เวอร์ชัน 2.1 ในปี 2015 และ 2.2 ในปี 2017) แต่ OpenCL 2.x กลับไม่ประสบความสำเร็จมากนักด้วยเหตุผลทางการเมือง เพราะ NVIDIA สนใจ CUDA ของตัวเอง, แอปเปิลหนีไปใช้ Metal, AMD ไม่มีทรัพยากรเพียงพอ เหลือผู้สนับสนุนแต่ Intel ที่ก็ไม่มีแรงมากนักในตลาดกราฟิก

สัญญาณบ่งชี้ที่ชัดเจนคือ OpenCL 2.2 ออกมานาน 3 ปีแล้ว ยังไม่มีผู้ผลิตฮาร์ดแวร์สักรายที่รองรับสเปกเวอร์ชันนี้เลย

No Description

ทางออกของ Khronos จึงเป็นการรีเซ็ตมาตรฐาน OpenCL ใหม่ โดยเวอร์ชัน 3.0 จะกลับไปใช้แกนของ OpenCL 1.2 ที่ได้รับความนิยมมากกว่า ส่วนฟีเจอร์ต่างๆ ที่เพิ่มเข้ามาในสาย 2.x จะถูกปรับสถานะเป็น optional คือไม่บังคับใช้งาน

หากนักพัฒนาโปรแกรม เรียกใช้ OpenCL 1.2 อยู่แล้ว สามารถอัพเกรดเป็น 3.0 โดยไม่ต้องแก้ไขโค้ด แต่ถ้าเรียกใช้ฟีเจอร์ของ OpenCL 2.x ก็จะมีคิวรีของ 3.0 ให้ยังใช้งานฟีเจอร์เหล่านี้ได้เช่นกัน

นอกจากนี้ ภาษา OpenCL C++ ที่ออกมาตอนเวอร์ชัน 2.2 และไม่เข้ากันได้กับภาษา C++ มาตรฐาน ก็ถูกยกเลิก และเปลี่ยนมาเป็น 'C++ for OpenCL' ที่เรียกใช้สเปกของ C++17 และใช้คอมไพเลอร์ยอดนิยม Clang เพื่อความเข้ากันได้ที่กว้างกว่า

No Description

Khronos ตั้งใจรีเซ็ตจักรวาลของ OpenCL ในเวอร์ชัน 3.0 โดยไม่เพิ่มของใหม่มากนัก แต่เน้นเสรีภาพในการเลือกพัฒนาบางฟีเจอร์ของสาย 2.x เพื่อเรียกเสียงสนับสนุนจากผู้ผลิตฮาร์ดแวร์กลับคืนมา (บริษัทที่ร่วมแถลงข่าวคือ Imagination, Intel, NVIDIA, Qualcomm) จากนั้นจึงจะพัฒนาสเปกของ OpenCL เวอร์ชันถัดไปในอนาคต

ที่มา - Khronos, AnandTech

Get latest news from Blognone