Как вызвать DFT oneMKL в ядре sycl (Intel GPU) (в Windows)C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как вызвать DFT oneMKL в ядре sycl (Intel GPU) (в Windows)

Сообщение Anonymous »

В настоящее время я могу в ЦП (хосте) использовать функцию DFT oneMKL для реализации вычислений данных. Но теперь я хочу реализовать операцию ДПФ oneMKL в графическом процессоре устройства. Я пробовал много чего, но безуспешно. Поэтому я пришел сюда в надежде получить помощь, спасибо! Кстати, я использую язык Intel oneAPI DPC++.
Моя среда:
ЦП: процессор Intel(R) Core(TM) i7-1065G7;
Графический процессор: графика Intel(R) Iris(R) Plus;
ОС: Win11;
IDE: VS2022;
OneAPI BaseToolkit: 2024.0.1.45;
Библиотека ядра OneMath: 2024.1.0.696;
  • Я пробовал инкапсулировать настройки DFT в функцию, не являющуюся ядром, а затем ядро ​​устройства вызывает эта функция. Но он будет сообщать об ошибках: 【Ядро SYCL не может вызвать неопределенную функцию без атрибута SYCL_EXTERNAL】【Ядро SYCL не может вызвать функцию с переменным числом аргументов】
  • I проверил стандарт SYCL2020: 【Код устройства SYCL, как определено в этой спецификации, не поддерживает вызовы виртуальных функций, указатели функций в целом, исключения, информацию о типах времени выполнения или полный набор библиотек C++, которые могут зависеть от этих функций или функций конкретный хост-компилятор. Тем не менее, эти базовые ограничения могут быть сняты с помощью некоторых конкретных расширений Khronos или поставщиков.】Из вышеизложенного я могу сделать вывод, что DFT библиотеки Intel oneMKL должна быть вызываемой в ядре. (возможно?)
  • Ожидайте, что это DFT можно будет вызвать в ядре (Intel GPU).
  • Ниже показан DFT, реализующий oneMKL в ЦП:
#include
#include
#include
#include
using namespace std;

int main() {

complex input[48] = { 0.5,-0.991445,0.258819,0.793353,-0.866025,-0.130526,0.965926,-0.608761,-0.5,0.991445,-0.258819,-0.793353,0.8 66025,0.130526,-0.965926,0.608761, 0.5,-0.991445,0.258819,0.793353,-0.866025,-0.130526,0.965926,-0.608761,-0.5,0.991445,-0.258819,-0.793353,0.866025,0.13052 6,-0.965926,0.608761,0.5,-0.991445,0.258819,0.793353,- 0.866025,-0.130526,0.965926,-0.608761,-0.5,0.991445,-0.258819,-0.793353,0.866025,0.130526,-0.965926,0.608761 };
complex output[48]; // Output for complex-to-complex DFT;

DFTI_DESCRIPTOR_HANDLE my_desc_handle = NULL; // Descriptor handle for complex to complex FFT;

MKL_LONG status; // Variable to store command execution status;
status = DftiCreateDescriptor(&my_desc_handle, DFTI_DOUBLE, DFTI_COMPLEX, 1, 48); // Create a descriptor;
status = DftiSetValue(my_desc_handle, DFTI_PLACEMENT, DFTI_NOT_INPLACE); // Set non-in-place operations;
status = DftiSetValue(my_desc_handle, DFTI_NUMBER_OF_TRANSFORMS, 1); //Set the number of transformations to 1;
status = DftiCommitDescriptor(my_desc_handle); // Submit the descriptor to make its configuration effective;
status = DftiComputeForward(my_desc_handle, input, output); // Execute forward FFT;
status = DftiFreeDescriptor(&my_desc_handle); // Release descriptor;

cout

Подробнее здесь: https://stackoverflow.com/questions/785 ... in-windows
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как вызвать DFT oneMKL в ядре sycl (Intel GPU) (в Windows)
    Anonymous » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Попытка решить: ОШИБКА Intel oneMKL: параметр 6 был неправильным при входе в DGELSD.
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Sycl избегая ненужных передачи памяти и примеров Intel Oneapi Guide
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Sycl избегая ненужных передачи памяти и примеров Intel Oneapi Guide
    Anonymous » » в форуме C++
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • GPU в GPU прямой передачу данных с помощью ConnectX и RDMA
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»