Можно ли разгрузить функцию на графическую карту?

У меня есть многопоточное приложение C++, и я хочу получить более высокую производительность и снизить общую загрузку процессора с помощью графики Intel HD.

Я не использую CILK. (Приложение написано на чистом C++)

Я прочитал следующую ссылку: Как перенести вычисления в Intel(R) Graphics Technology

Но не нашел способа обрабатывать записанные функции или потоки на графической карте.

Является ли это возможным? Есть ли способ использовать компилятор Intel для разгрузки функций (или потоков) в Intel HD Graphics?

Спасибо

1 ответ

Решение

Да, это возможно. Но это не так просто.

Вы можете использовать CUDA, OpenCL или DirectCompute для того, что вы хотите, однако вам нужно написать параллельную версию вашей функции. Запуск "последовательной" функции на GPU определенно не интересен. Распараллеливание алгоритма может быть самой сложной задачей, базовые API-интерфейсы примерно одинаковы.

Я сочувствую этому:

  • код, который вы имеете, сделан для (однопоточных) процессоров, поэтому является последовательным
  • код, который вы хотите запустить, должен быть параллельным

Я не знаю ни одного инструмента, способного распараллелить алгоритм.

Другие вопросы по тегам