NVIDIA GPUs ได้รับการสนับสนุน SYCL หลังจาก Codeplay มีส่วนช่วยในการพัฒนามาตรฐาน DPC ++
หลังจากได้รับการสนับสนุนจาก บริษัท ชั้นนำเช่น Intel, Xilinx, Renesas และ Imagination Technologies, SYCL (อ่านว่า "เคียว") นักพัฒนาที่ใช้ NVIDIA GPU จะได้รับประโยชน์เช่นกัน Codeplay ซึ่งเป็นองค์กรที่มีส่วนร่วมอย่างต่อเนื่องในชุมชน SYCL ได้สิ้นสุดการพัฒนาขั้นสูงของ DPC ++ (Data Parallel C ++) ซึ่งอำนวยความสะดวกในการรีไซเคิลและนำโค้ดกลับมาใช้ในแพลตฟอร์มฮาร์ดแวร์ต่างๆ ผลลัพธ์ที่ได้คือ ComputeCpp ซึ่งเป็นการนำ SYCL ของ Codeplay มาใช้เอง
รุ่นล่าสุดของ ComputeCpp รองรับการทดลองใช้ GPU NVIDIA โดยใช้ OpenCL และ PTX . ของ NVIDIA
เมื่อปีที่แล้ว Intel ได้ดำเนินการขั้นเด็ดขาดในการผลักดัน SYCL และยังเริ่มดำเนินการกับ OneAPI Standard oneAPI ประกอบด้วย DPC++ (การใช้งาน SYCL พร้อมส่วนขยาย) สำหรับ CPU, GPU และ FPGA ของ Intel ในไม่ช้าการเคลื่อนไหวก็ค่อนข้างใหญ่และได้รับแรงผลักดันหลังจากการสนับสนุน SYCL มาจาก Xilinx, Renesas และ Imagination Technologies พูดง่ายๆก็คือตอนนี้นักพัฒนาซอฟต์แวร์สามารถกำหนดเป้าหมายอุปกรณ์ที่หลากหลายโดยใช้ SYCL
ComputeCpp เสนอการสนับสนุนรุ่นทดลองสำหรับ NVIDIA GPU โดยใช้ OpenCL และ NVIDIA's PTX แต่ DPC ++ (การใช้งาน SYCL ของ Intel) ให้โอกาสในการเพิ่มการสนับสนุนอย่างเต็มที่สำหรับ NVIDIA GPU ที่รวมอยู่ในคอมไพเลอร์ LLVM โดยไม่ต้องผ่าน OpenCL Codeplay ประกาศว่าพวกเขาเป็นโอเพนซอร์สในขั้นตอนการทดลองเริ่มต้นของการใช้งานซึ่งช่วยให้นักพัฒนา SYCL สามารถกำหนดเป้าหมาย NVIDIA GPUs ได้ ฐานรหัสสำหรับการใช้งานนี้ยังคงอยู่ในส้อมแยก จากทั้งโครงการคอมไพเลอร์ LLVM หลักและสาขา DPC ++ องค์กรเสริมว่าพวกเขาตั้งใจที่จะทำงานร่วมกับ Intel เพื่อรับการสนับสนุน NVIDIA GPU ที่เพิ่มเข้าไปในคอมไพเลอร์ Intel / LLVM ขั้นต้น
นักพัฒนาจะได้ประโยชน์จากการรองรับ SYCL สำหรับ GPU NVIDIA ได้อย่างไร?
โครงการนี้ช่วยให้นักพัฒนาสามารถกำหนดเป้าหมาย NVIDIA GPU โดยใช้รหัส SYCL โดยไม่ต้องผ่านเลเยอร์ OpenCL ในระบบ กล่าวอีกนัยหนึ่งก็คือด้วย NVIDIA GPU นักพัฒนาสามารถเรียกใช้ DPC ++ บนระบบของพวกเขาเพื่อรวบรวมแอปพลิเคชัน SYCL ยิ่งไปกว่านั้นแอปพลิเคชัน CUDA ที่มีอยู่สามารถย้ายไปยัง SYCL ได้โดยใช้การสนับสนุน CUDA จากนั้นเรียกใช้บนแพลตฟอร์มที่ไม่มี CUDA สิ่งนี้ช่วยประหยัดเวลาและความพยายามซ้ำ ๆ อย่างเห็นได้ชัด
Codeplay ได้เสนอคำแนะนำเกี่ยวกับไฟล์ README ของโปรเจ็กต์ที่อธิบายวิธีการใช้งาน NVIDIA back-end สำหรับ DPC ++ นักพัฒนาจำเป็นต้องใช้แฟล็กบางอย่างในการคอมไพล์และโค้ดบางตัวเพื่อตั้งค่าตัวเลือกอุปกรณ์เพื่อให้รันไทม์รู้ว่าจะกำหนดเป้าหมายอุปกรณ์ใด โดยเฉพาะอย่างยิ่งส่วน“สร้าง SYCL toolchain พร้อมรองรับ NVIDIA CUDA” และตัวเลือกคอมไพเลอร์ Clang มีคำแนะนำเฉพาะ.
Codeplay ยืนยันว่าประสบความสำเร็จในการรันโครงการด้วย Ubuntu 18.04 โดยใช้ CUDA 10.1 บน Titan RTX GPU (ความสามารถในการคำนวณ 7.5) ทีมงานรับรองว่าควรทำงานบน Linux เวอร์ชันอื่น ๆ ด้วย NVIDIA GPU ที่เข้ากันได้กับ SM 5.0 ขึ้นไป อย่างไรก็ตามแอปพลิเคชัน SYCL ที่คอมไพล์แล้วจะสามารถกำหนดเป้าหมาย CUDA หรือ OpenCL เท่านั้นไม่ใช่ทั้งสองอย่างในเวลาเดียวกัน
ทีมงานยังเตือนด้วยว่าการเปิดตัวครั้งแรกของโครงการไม่ได้รับการปรับให้เหมาะสม ดังนั้นประสิทธิภาพอาจไม่เหมาะสมในทุกสถานการณ์ กล่าวอีกนัยหนึ่งนักพัฒนาจะต้องปรับใช้แบบเดียวกันและตรวจสอบการปรับปรุงความเร็วด้วยตนเองหากมี เนื่องจากการสร้างโค้ดไม่ได้ใช้การเพิ่มประสิทธิภาพใด ๆ โดยเฉพาะ ยิ่งไปกว่านั้นการใช้ CUDA ตามข้อกำหนด SYCL ใน Plugin Interface ไม่ได้ใช้คุณสมบัติ CUDA ขั้นสูงใด ๆ
Codeplay ระบุว่าการเพิ่มความเข้ากันได้และฟังก์ชันการทำงานยังคงเป็นสิ่งสำคัญอันดับต้น ๆ พวกเขาระบุว่าจุดสนใจในปัจจุบันคือการใช้ฟังก์ชันต่างๆให้มากที่สุดเพื่อให้นักพัฒนาสามารถเรียกใช้แอปพลิเคชัน SYCL ที่หลากหลายบนแพลตฟอร์ม NVIDIA GPU ได้ การเพิ่มประสิทธิภาพการทำงานจะเกิดขึ้นในภายหลังด้วยความช่วยเหลือของสมาชิกในชุมชน