Программирование OpenCL на CPU и GPU с картами Nvidia?

У меня есть машина bi Xeon с Ubuntu 10.10 и графической картой Nvidia GTX 480, и я хотел бы использовать OpenCL на CPU и GPU.

Я установил последнюю версию драйвера Nvidia (nvidia-current) с помощью apt-get и скачал и установил последнюю версию CUDA Toolkit (3.2) со страницы Nvidia.

НО это позволяет мне запускать только код OpenCL на графическом процессоре Nvidia, а НЕ на процессоре.

Затем я прочитал некоторые статьи в интернете, в которых говорилось, что ATI SDK может запускать код OpenCL на процессоре.

Я установил последнюю версию драйверов ATI, затем попытался скомпилировать SDK.

Затем я смог запустить код на процессоре, но больше не на графическом процессоре.

Есть ли способ запустить код OpenCL как на графическом процессоре Nvidia, так и на процессоре Xeon?

5
задан 19 December 2010 в 06:58

1 ответ

И реализация Nvidia CUDA, и ATI Stream OpenCL поддерживают расширение Khronos ICD, поэтому при вызове clGetPlatformID вы получаете две разные платформы, и, следовательно, вы можете запрашивать устройства CPU / GPU на этих платформах и, конечно, платформа ATI будет верните устройство CPU, а платформа Nvidia вернет устройство GPU.

Затем вы можете создать CommandQueues на этих устройствах и запустить ваше ядро. Конечно, это означает, что разделить задачу между GPU и CPU нетривиально, но, по крайней мере, иметь в приложении кнопку, которая переключается с CPU на GPU, было бы довольно легко.

0
ответ дан 19 December 2010 в 06:58

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

Похожие вопросы: