เครื่องมือความเข้ากันได้ของ Intel DPC++ 

เครื่องมือความเข้ากันได้ของ Intel DPC++

เริ่มต้นด้วยเครื่องมือความเข้ากันได้ของ Intel® DPC+ +

เครื่องมือความเข้ากันได้ของ Intel® DPC++ ช่วยในการย้ายโปรแกรมของนักพัฒนาที่เขียนด้วย CUDA* ไปยังโปรแกรมที่เขียนด้วย Data Parallel C++ (DPC++) ซึ่งมีพื้นฐานมาจาก C++ สมัยใหม่และรวมเอามาตรฐานอุตสาหกรรมแบบพกพา เช่น SYCL*

  • ไปที่คู่มือนักพัฒนาเครื่องมือความเข้ากันได้ของ Intel® DPC++ และข้อมูลอ้างอิงสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือ
  • ไปที่ Release Notes สำหรับปัญหาที่ทราบและข้อมูลล่าสุด

บันทึก การใช้เครื่องมือความเข้ากันได้ของ Intel® DPC++ จะทำให้โครงการไม่ถูกโอนย้ายทั้งหมด จำเป็นต้องมีงานเพิ่มเติมตามที่ระบุไว้ในเอาต์พุตของเครื่องมือความเข้ากันได้ของ Intel® DPC++ เพื่อให้การย้ายข้อมูลเสร็จสมบูรณ์

ก่อนที่คุณจะเริ่มต้น

เครื่องมือความเข้ากันได้ของ Intel® DPC++ รวมอยู่ใน Intel® oneAPI Base Toolkit หากคุณยังไม่ได้ติดตั้ง Intel® oneAPI Base Toolkit ให้ทำตามคำแนะนำในคู่มือการติดตั้ง

ส่วนหัว CUDA บางตัว files (เฉพาะสำหรับโครงการของคุณ) อาจต้องเข้าถึงได้จาก Intel® DPC++
เครื่องมือความเข้ากันได้ เครื่องมือความเข้ากันได้ของ Intel® DPC++ ค้นหาส่วนหัว CUDA เหล่านี้ files ในตำแหน่งเริ่มต้น:

  • /usr/local/cuda/include
  • /usr/local/cuda-xy/include โดยที่ xy เป็นหนึ่งในค่าเหล่านี้: 8.0, 9.x, 10.x และ 11.0–11.6

คุณสามารถอ้างอิงตำแหน่งที่กำหนดเองได้โดยชี้ไปที่ตำแหน่งดังกล่าวด้วย –cuda-include-path= ตัวเลือกในบรรทัดคำสั่งเครื่องมือความเข้ากันได้ของ Intel® DPC++

บันทึก พาธรวม CUDA ไม่ควรเหมือนกับหรือพาธย่อยของไดเร็กทอรีซึ่งมีซอร์สโค้ดที่ต้องโอนย้ายอยู่

ปัจจุบัน เครื่องมือความเข้ากันได้ของ Intel® DPC++ สนับสนุนการย้ายข้อมูลของโปรแกรมที่ใช้ CUDA เวอร์ชัน 8.0, 9.x, 10.x และ 11.0–11.6 รายการภาษาและเวอร์ชันที่รองรับอาจมีการขยายเพิ่มเติมในอนาคต

ในการตั้งค่าสภาพแวดล้อมเครื่องมือความเข้ากันได้ของ Intel® DPC++ ให้รันดังต่อไปนี้:

  • บน Linux (sudo): ที่มา /opt/intel/oneapi/setvars.sh
  • บน Linux (ผู้ใช้): ที่มา ~/intel/oneapi/setvars.sh
  • บนระบบปฏิบัติการ Windows :ไดรฟ์:\ โปรแกรม Files (x86)\Intel\oneAPI\setvars.bat

ไวยากรณ์การเรียกใช้ทั่วไปจากเชลล์ระบบปฏิบัติการคือ:

dpct [ตัวเลือก] [ … ]

บันทึก c2s เป็นนามแฝงของคำสั่ง dpct และอาจใช้แทนได้

ข้อมูลการใช้งานในตัว 

หากต้องการดูรายการตัวเลือกเฉพาะของเครื่องมือความเข้ากันได้ของ Intel® DPC++ ให้ใช้ –help:

dpct – ช่วยด้วย

หากต้องการดูรายการตัวเลือกตัวแยกวิเคราะห์ภาษา (Clang*) ให้ส่ง -help เป็นตัวเลือก Clang:

dpct — - ช่วยด้วย
คำเตือนที่ปล่อยออกมา

เครื่องมือความเข้ากันได้ของ Intel® DPC++ ระบุตำแหน่งในโค้ดที่อาจต้องให้ความสนใจระหว่างการโยกย้าย fileเพื่อให้รหัส SYCL สอดคล้องหรือถูกต้อง
ความคิดเห็นถูกแทรกลงในแหล่งที่สร้างขึ้น files และแสดงเป็นคำเตือนในเอาต์พุต สำหรับอดีตampเลอ:

/เส้นทาง/ไป/file.hpp:26:1: คำเตือน: DPCT1003:0: API ที่โอนย้ายไม่ส่งคืนรหัสข้อผิดพลาด ใส่ (*,0) คุณอาจต้องเขียนโค้ดนี้ใหม่ // บรรทัดซอร์สโค้ดที่สร้างคำเตือน ^

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับความหมายของคำเตือน โปรดดูที่ การอ้างอิงการวินิจฉัย

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับความหมายของคำเตือน โปรดดูที่ข้อมูลอ้างอิงการวินิจฉัย

โยกย้ายโครงการทดสอบอย่างง่าย

เครื่องมือความเข้ากันได้ของ Intel® DPC++ มาพร้อมกับหลาย sampโครงการ le เพื่อให้คุณสามารถสำรวจเครื่องมือและทำความคุ้นเคยกับวิธีการทำงานของมัน:

Sampเลอ โปรเจ็กต์ คำอธิบาย
 เวกเตอร์เพิ่ม DPCT
  • vector_add.cu
เวกเตอร์เพิ่ม DPCT sample สาธิตวิธีโอนย้ายโปรแกรมอย่างง่ายจาก CUDA ไปยัง SYCL Vector Add เป็นวิธีง่ายๆ ในการตรวจสอบว่าสภาพแวดล้อมการพัฒนาของคุณได้รับการตั้งค่าอย่างถูกต้องเพื่อใช้ Intel® DPC++ Compatibility Tool
ตัวเลือกโฟลเดอร์ DPCT
  • main.cu
  • บาร์/util.cu
  • บาร์/util.h
ตัวเลือกโฟลเดอร์ DPCT sampไฟล์แสดงวิธีการโอนย้ายโครงการที่ซับซ้อนมากขึ้นและการใช้ตัวเลือกต่างๆ
โรดิเนีย นอร์ธเวสต์ DPCT
  • เข็ม.cu
  • เข็ม h
  • เข็ม_kernel.cu
Rodinia NW DPCT sampสาธิตวิธีการโอนย้ายโครงการ Make/ CMake จาก CUDA ไปยัง SYCL โดยใช้เครื่องมือความเข้ากันได้ของ Intel® DPC++

Review README file ให้มาพร้อมกับแต่ละ sample สำหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับวัตถุประสงค์และการใช้งานของ sampโครงการเลอ

ในการเข้าถึงสampเลส

  • ใช้ยูทิลิตี oneapi-cli เพื่อเลือกเป็นampจากหมวดเครื่องมือความเข้ากันได้ของ Intel® DPC++ หรือ
  • ดาวน์โหลด sampจาก GitHub*.

สำหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับวิธีดาวน์โหลดและเข้าถึง sampไปที่คู่มือเริ่มต้นใช้งาน Intel® oneAPI Base Toolkit:

ลองเอสampเลอ โปรเจ็กต์ 

ทำตามขั้นตอนเหล่านี้เพื่อย้าย Vector Add DPCT sampโครงการโดยใช้เครื่องมือความเข้ากันได้ของ Intel® DPC++:

  1. ดาวน์โหลด vector_add.cu sampเล.
  2. เรียกใช้เครื่องมือความเข้ากันได้ของ Intel® DPC++ จาก sampไดเรกทอรีราก:
    dpct –ในรูท =. src/vector_add.cu

     

    vector_add.dp.cpp file ควรปรากฏในไดเร็กทอรี dpct_output เดอะ file ตอนนี้เป็น SYCLsource file.

  3. นำทางไปยังแหล่ง SYCL ใหม่ file:
ซีดี dpct_output

ตรวจสอบซอร์สโค้ดที่สร้างขึ้นและแก้ไขโค้ดใดๆ ที่เครื่องมือความเข้ากันได้ของ Intel® DPC++ ไม่สามารถโอนย้ายได้ (รหัสที่ใช้ในตัวอย่างนี้ample นั้นเรียบง่าย ดังนั้นอาจไม่จำเป็นต้องทำการเปลี่ยนแปลงด้วยตนเอง) สำหรับคำแนะนำที่ถูกต้องและละเอียดที่สุดเกี่ยวกับการจัดการกับคำเตือนที่ปล่อยออกมาจากเครื่องมือความเข้ากันได้ของ Intel® DPC++ โปรดดูส่วนคำเตือนในการแก้ไขที่อยู่ในส่วน Migrated Code ของ อ่านฉัน files.

บันทึก ในการรวบรวม s ที่โยกย้ายample เพิ่ม -I/include ในคำสั่งคอมไพล์ของคุณ

สำหรับ s ที่ซับซ้อนมากขึ้นampคำแนะนำดูที่ โยกย้ายโครงการ ส่วนของคู่มือนักพัฒนาเครื่องมือความเข้ากันได้ Intel® DPC++ และข้อมูลอ้างอิง

ค้นหาเพิ่มเติม

เนื้อหา คำอธิบาย
ความเข้ากันได้ของ Intel® DPC++

คู่มือนักพัฒนาเครื่องมือและ

อ้างอิง

รายละเอียดมากกว่าview ของคุณลักษณะ Intel® DPC++ Compatibility Tool เวิร์กโฟลว์ และการใช้งาน
ตามความต้องการ Webอินาร์:

การโยกย้าย CUDA ที่มีอยู่ของคุณ

รหัสเป็นรหัส DPC++

วิธีโอนย้ายรหัส CUDA ไปยัง Data Parallel C++ (DPC++) โดยใช้เครื่องมือความเข้ากันได้ของ Intel® DPC++ ซึ่งเป็นกลไกการย้ายข้อมูลแบบครั้งเดียวที่พอร์ตทั้งเคอร์เนลและการเรียก API
คู่มือการติดตั้งสำหรับ Intel®

ชุดเครื่องมือ oneAPI

คำแนะนำโดยละเอียดเกี่ยวกับวิธีรับและติดตั้งแพ็คเกจ Intel® oneAPI โดยใช้โหมดตัวติดตั้งและตัวจัดการแพ็คเกจที่แตกต่างกัน
รุ่นข้อกำหนด SYCL

1.2.1 พีดีเอฟ

ข้อกำหนด SYCL PDF อธิบายว่า SYCL รวมอุปกรณ์ OpenCL เข้ากับ C++ สมัยใหม่ได้อย่างไร
ข้อกำหนด SYCL 2020 PDF ข้อมูลจำเพาะ SYCL 2020
Khronos* SYCL จบแล้วview โอเวอร์view ของ SYCL ที่จัดทำโดย Khronos Group
รวบรวม CUDA ด้วยเสียงดังกราว คำอธิบายของการสนับสนุน CUDA ในเสียงดังกราว
ส่วนขยาย Intel LLVM SYCL ส่วนขยายที่เสนอไปยังข้อกำหนด SYCL
เลเยอร์สำหรับโครงการ Yocto* เพิ่มหนึ่งคอมโพเนนต์ API ให้กับการสร้างโครงการ Yocto โดยใช้เมตา-อินเทลเลเยอร์

โลโก้ของอินเทล

เอกสาร / แหล่งข้อมูล

เครื่องมือความเข้ากันได้ของ Intel DPC++ [พีดีเอฟ] คู่มือการใช้งาน
เครื่องมือความเข้ากันได้ของ DPC, เครื่องมือความเข้ากันได้, เครื่องมือ

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *