Інструмент сумісності intel DPC++
Почніть роботу з інструментом сумісності Intel® DPC+ +
Інструмент сумісності Intel® DPC++ допомагає перенести програму розробника, написану на CUDA*, на програму, написану на Data Parallel C++ (DPC++), яка базується на сучасному C++ і включає портативні промислові стандарти, такі як SYCL*.
- Відвідайте Intel® DPC++ Compatibility Tool Посібник і довідник для розробників, щоб отримати додаткову інформацію про інструмент.
- Відвідайте Примітки до випуску, щоб отримати відомі проблеми та найновішу інформацію.
ПРИМІТКА Використання інструмента сумісності Intel® DPC++ призведе до того, що проект не буде перенесено повністю. Для завершення міграції потрібна додаткова робота, як зазначено в результатах інструмента сумісності Intel® DPC++.
Перед тим як ти почнеш
Інструмент сумісності Intel® DPC++ входить до базового набору інструментів Intel® oneAPI. Якщо ви не встановили базовий набір інструментів Intel® oneAPI, дотримуйтесь інструкцій у посібнику з інсталяції.
Певний заголовок 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++ Compatibility Tool, виконайте наступне:
- У Linux (sudo): джерело /opt/intel/oneapi/setvars.sh
- У Linux (користувач): джерело ~/intel/oneapi/setvars.sh
- У Windows :Drive:\ Програма Files (x86)\Intel\oneAPI\setvars.bat
Загальний синтаксис виклику з оболонки операційної системи:
dpct [параметри] [ … ] |
ПРИМІТКА c2s є псевдонімом команди dpct і може використовуватися замість неї.
Вбудована інформація про використання
Щоб переглянути список інструментів сумісності Intel® DPC++, використовуйте –help:
dpct – допомога |
Щоб переглянути список параметрів аналізатора мови (Clang*), передайте -help як параметр Clang:
dpct — -допомога |
Видані попередження
Інструмент сумісності Intel® DPC++ визначає місця в коді, які можуть потребувати вашої уваги під час міграції files щоб зробити код SYCL сумісним або правильним.
Коментарі вставляють у згенероване джерело files і відображається як попередження у вихідних даних. наприкладampле:
/шлях/до/file.hpp:26:1: попередження: DPCT1003:0: перенесений API не повертає код помилки. (*,0) вставлено. Можливо, вам доведеться переписати цей код. // рядок вихідного коду, для якого було створено попередження ^ |
Додаткову інформацію про значення конкретного попередження див Діагностична довідка.
Щоб отримати докладніші відомості про те, що означає конкретне попередження, зверніться до Діагностичного довідника.
Перенесіть простий тестовий проект
Інструмент сумісності Intel® DPC++ поставляється з кількома sampфайли проектів, щоб ви могли вивчити інструмент і ознайомитися з тим, як він працює:
Sample Project | опис |
Векторне додавання DPCT
|
Vector Add DPCT sampLe демонструє, як перенести просту програму з CUDA на SYCL. Vector Add забезпечує простий спосіб перевірити, чи правильно налаштовано ваше середовище розробки для використання інструменту сумісності Intel® DPC++. |
Параметри папки DPCT
|
Параметри папки DPCT sample показує, як перенести більш складні проекти та використовувати опції. |
Rodinia NW DPCT
|
Rodinia NW DPCT sampLe демонструє, як перенести проект Make/CMake із CUDA на SYCL за допомогою Інструменту сумісності Intel® DPC++. |
Review README file надається з кожним sample для більш детальної інформації про призначення та використання sample проект.
Щоб отримати доступ до sampле
- скористайтеся утилітою oneapi-cli, щоб вибрати якampфайл із категорії Intel® DPC++ Compatibility Tool або
- завантажити sampлес від GitHub*.
Для отримання більш детальної інформації про те, як завантажити та отримати доступ до sampфайли, відвідайте посібники для початку роботи з базовим інструментарієм Intel® oneAPI:
- Посібник із початку роботи з базовим набором інструментів Intel® oneAPI для Windows*
- Початок роботи з базовим інструментарієм Intel® oneAPI для Linux*
- Почніть роботу з базовим набором інструментів Intel® oneAPI для macOS*
Спробуйте Sample Project
Виконайте ці кроки, щоб перенести Vector Add DPCTampпроект файлу за допомогою інструмента сумісності Intel® DPC++:
- Завантажте vector_add.cu sampLe.
- Запустіть інструмент сумісності Intel® DPC++ із sampкореневий каталог le:
dpct –in-root=. src/vector_add.cu Vector_add.dp.cpp file має з’явитися в каталозі dpct_output. The file тепер є джерелом SYCL file.
- Перейдіть до нового джерела SYCL file:
cd dpct_output |
Перевірте згенерований вихідний код і виправте будь-який код, який Інструмент сумісності Intel® DPC++ не зміг перенести. (Код, використаний у цьому прикладіampфайл простий, тому ручні зміни можуть не знадобитися). Для отримання найбільш точних і детальних інструкцій щодо адресації попереджень, що надходять із засобу сумісності Intel® DPC++, див. розділ «Адресація попереджень у переміщеному коді» README files.
ПРИМІТКА Для компіляції переміщених sample, додайте -I/include до вашої команди компіляції.
Для більш складних sample інструкції див Перенести проект розділ Посібника розробника та довідника інструмента сумісності Intel® DPC++.
знайти
зміст | опис |
Сумісність з Intel® DPC++
Посібник розробника інструментів і |
Детально надview функцій, робочого процесу та використання Intel® DPC++ Compatibility Tool. |
On-Demand Webinar: | Як перенести код CUDA на Data Parallel C++ (DPC++) за допомогою Intel® DPC++ Compatibility Tool, механізму одноразової міграції, який портує як ядра, так і виклики API. |
Посібники зі встановлення для Intel® | Докладні інструкції щодо отримання та встановлення пакетів Intel® oneAPI за допомогою різних режимів встановлення та менеджерів пакетів. |
Версія специфікації SYCL | Специфікація SYCL PDF. Пояснює, як SYCL інтегрує пристрої OpenCL із сучасним C++. |
Специфікація SYCL 2020 | Специфікація SYCL 2020 PDF. |
Хронос* SYCL завершеноview | А закінченняview SYCL, наданий групою Khronos. |
Компіляція CUDA з clang | Опис підтримки CUDA в clang. |
Розширення Intel LLVM SYCL | Пропоновані розширення специфікації SYCL. |
Шари для проекту Yocto* | Додайте один компонент API до збірки проекту Yocto за допомогою мета-рівнів Intel. |
Документи / Ресурси
![]() |
Інструмент сумісності intel DPC++ [pdf] Посібник користувача Інструмент сумісності DPC, інструмент сумісності, інструмент |
посилання
-
llvm/sycl/doc/extensions на sycl · intel/llvm · GitHub
-
oneAPI-samples/Tools/Migration at master · oneapi-src/oneAPI-sampліс · GitHub
-
Компіляція CUDA з clang — документація LLVM 17.0.0git
-
Посібник із встановлення наборів інструментів Intel® oneAPI
-
Примітки до випуску інструмента сумісності Intel® DPC++
-
Почніть роботу з Intel® oneAPI Base Toolkit (базовий набір) і Intel®...
-
Початок роботи з базовим інструментарієм Intel® oneAPI для Linux*
-
Початок роботи з базовим інструментарієм Intel® oneAPI для Windows*
-
Intel® DPC++ Compatibility Tool Посібник і довідка розробника
-
Діагностична довідка
-
Перенести проект
-
Перенесення існуючого коду CUDA на код DPC++
-
Додавання компонентів oneAPI до збірок проекту Yocto*
-
SYCL завершеноview - The Khronos Group Inc