Описание тега dpc++
Используйте этот тег, чтобы задавать вопросы о компиляторе и библиотеке Intel® oneAPI DPC++. Компилятор Intel® oneAPI DPC++ позволяет разработчикам использовать язык DPC++. Библиотека Intel® oneAPI DPC++ дополняет компилятор и предоставляет возможности повышения производительности для разработчиков на C++, которые создают разнородные приложения и решения. Его API-интерфейсы основаны на знакомых стандартах - C++ STL, Parallel STL (PSTL), Boost.Compute и SYCL.
2
ответа
Как печатать внутри SYCL parallel_for (ядро)?
Я работаю над примером приложения vectorAdd, которое было предоставлено вместе с базовым пакетом oneAPI. Когда я попытался распечатать сумму внутри ядра, я получил следующую ошибку. Пожалуйста, найдите приложенный исходный код и ошибку при компиляци…
27 ноя '19 в 09:28
1
ответ
Неправильные результаты при запуске кода SYCL. при попытке параллельного цикла
Я новичок в этой области параллельного программирования. Я пытаюсь распараллелить ниже последовательный код в SYCL. Но когда я пытаюсь запустить код, получаю неверные результаты. Ниже приведены серийный код, код SYCL и выходной снимок экрана. Пожалу…
27 ноя '19 в 14:25
2
ответа
буферы в образцах кода CCL вместе с инструментарием oneapi
Я просматривал образцы кода CCL вместе с инструментарием oneapi. В приведенном ниже коде DPC++(SYCL) изначально sendbuf буфер создается на стороне процессора и не инициализируется, а в той части, где происходит разгрузка на целевое устройство, измен…
20 ноя '19 в 09:12
1
ответ
Возникли проблемы с созданием буферов данных для настраиваемых объектов oneAPI
Я новичок в oneAPI и подобных фреймворках, поэтому у меня возникают проблемы с управлением данными с использованием буферов данных SYCL. Моя задача - найти подстроки в заданной строке с помощью алгоритма Ахо-Корасика. Моя идея заключалась в том, что…
08 май '20 в 17:56
1
ответ
sycl / dpC++ аксессор против global_ptr в объекте функции ядра
Со следующим кодом игрушки с использованием Intel OneAPI beta6. #include <CL/sycl.hpp> #include <iostream> namespace sycl = cl::sycl; const int SIZE=1; class Increment_accessor { public: Increment_accessor(sycl::accessor<int, 1, sycl:…
12 май '20 в 02:45
1
ответ
приведение методов доступа к указателям C++ в коде ядра (особенно (int (*)[Nelem])
Среда: Ubuntu 18.04, OneAPI beta 6 Полный код приведен ниже, но вот ошибка: #dpcpp -O2 -g -o so2 so2.cpp -lOpenCL -lsycl so2.cpp:64:38: error: cannot cast from type 'global_ptr<int>' (aka 'multi_ptr<int, access::address_space::global_space&…
17 май '20 в 20:25
1
ответ
SYCL spec 1.2.1 (rev 7) раздел 4.8.9.3 ошибка?
Основываясь на коде в разделе 4.8.9.3 спецификации SYCL 1.2.1 (версия 7), я написал следующее: #include <CL/sycl.hpp> namespace sycl = cl::sycl; const int Nproc = 8; int main(int argc, char *argv[]) { int x[Nproc]; sycl::device dev = sycl::def…
29 июн '20 в 22:28
1
ответ
Как я могу указать стандартную версию C++ в параметрах компилятора DPC++?
Я наткнулся на бесплатные вещи в виде набора инструментов Intel oneAPI, и все работает отлично, образцы компилируются нормально, но я не знаю, как указать стандарт C++ в параметрах компилятора. Насколько я понимаю, DPC++ построен поверх Clang, поэто…
05 июн '20 в 10:41
0
ответов
Расчет гистограммы в ядре Opencl
Мне трудно понять, как работает расчет гистограммы, следуя примеру в этой книге. На странице 65 обсуждается вычисление гистограммы по изображению. Ядро предназначено для работы в рабочей группе. Однопоточные процессы256 pixels (binsize) из изображен…
26 июл '20 в 10:36
1
ответ
Требуется ли сборка LLVM для сборки hipSYCL?
Я использую Centos 7 и пытаюсь создать hipSYCL (см. Здесь) Проблема в том, что для hipSYCL требуется информация cmake из сборки LLVM (через переменную cmake LLVM_DIR). Для меня это проблематично, потому что для сборки LLVM требуются огромные 35 ГБ д…
20 окт '20 в 19:41
1
ответ
Что более эффективно в SYCL - использовать один буфер или несколько буферов?
Предположим, у меня есть массив данных, например массив трехмерных векторов размера N. Предположим, что каждая итерация моего ядра SYCL исключительно или в первую очередь касается только одного вектора. Какой из следующих способов разбить это на неп…
11 ноя '20 в 07:57
2
ответа
Случайный код выхода при увеличении размеров массива в DPC++ Vector Addition
Я пытаюсь запустить образец oneAPI DPC++ hello-world, который добавляет два одномерных массива как на CPU, так и на GPU, и проверяет результаты. Код показан ниже: /* DataParallel Addition of two Vectors */ #include <CL/sycl.hpp> #include <a…
03 окт '20 в 20:02
1
ответ
Мой код DPC++ не компилируется как циклы, о которых я говорил ниже, почему?
Здравствуйте, я пытаюсь распараллелить два цикла с помощью DPC++, но это дает внутреннюю ошибку LLVM ERROR: SPIRV. Не знаю почему, ребята, не могли бы вы помочь мне разобраться в проблеме? https://simplecore-ger.intel.com/techdecoded/wp-content/uplo…
27 ноя '20 в 23:53
2
ответа
Умножение матриц в SYCL с использованием 2D std::vector
Я новичок в SYCL и C++. Это мое ядро для простого умножения матриц с использованием 2D std::vector. void MatrixMulParallel(queue& q, const std::vector<std::vector<double>>& a_host, const std::vector<std::vector<double>…
17 окт '20 в 21:15
1
ответ
Пример Simple_Add DPC++ oneAPI не запускается
Я пытаюсь запустить базовый пример Simple_Add DPC++ из примера браузера oneAPI; Я использую VS2019 и oneAPI toolkit 2021 Beta Update 10. При запуске проекта происходит сбой. queue q(d_selector, dpc_common::exception_handler); выбрасывание исключения…
17 фев '21 в 19:37
1
ответ
Как отлаживать приведенную ниже программу DPC++ с выгруженным на GPU ядром?
Я хочу запустить программу DPC++ в Intel GNU Project Debugger. Я загрузил Intel GDB из Intel OneAPI Basekit. Он поставляется с предустановленным OneAPI Basekit. Ссылка для скачивания: [https://software.intel.com/content/www/us/en/develop/tools/oneap…
27 апр '21 в 08:10
1
ответ
ОШИБКА: неявный захват this недопустим для функций ядра, SYCL, DPCPP
Я пытаюсь написать своего рода класс «карты», который обертывает вызовы OneAPI, скрывая проблемы с аппаратным нацеливанием, с помощью некоторого параметра, указывающего тип цели (ЦП или графический процессор / ускоритель). Карта направляет код в ядр…
01 май '21 в 21:04
3
ответа
ОШИБКА: ядро SYCL не может вызывать через указатель функции, DPCPP, TBB
Я пытаюсь определить массив функций и перейти к карте, которую я определил как класс, тогда, если мое устройство является ЦП, выполнение каждой из моих функций по вектору проходит через ЦП, в противном случае - через SYCL часть и выполнить на GPU. В…
10 май '21 в 18:55
1
ответ
Как использовать интерфейсы инструментов профилирования для графического процессора для измерения времени на ускорителях +openCL+DPCPP
В своей программе я определил массив функций typedef int(*func)(int x); //define different functions auto function = [](int x){ return x; }; auto functionTimesTwo = [](int x){ return (x*2); }; auto functionDivideByTwo = [](int x){ return (x/2); }; a…
11 май '21 в 13:11
1
ответ
Как измерить время выполнения GPU с помощью Profiling+openCL+Sycl+DPCPP
Прочитал эту ссылку https://github.com/intel/pti-gpu и я попытался использовать отслеживание активности устройства для OpenCL(TM), но я сбит с толку и не знаю, как мне измерить время на ускорителях с помощью документации по активности устройства. дл…
19 май '21 в 17:10