Для компиляции и запуска кода OpenCL под Linux вам понадобятся четыре вещи:
1) Драйвер NVIDIA, который поддерживает OpenCL. Драйверы в комплекте с Ubuntu несколько
старые, но они все равно должны работать просто отлично. Если у вас нет явной потребности в текущем
драйверы, вы должны придерживаться тех, которые поставляются с Ubuntu. Чтобы было ясно, это
те же драйверы, установленные через менеджер ограниченных драйверов. Библиотеки OpenCL поставляются с драйвером, поэтому достаточно просто запустить драйвер OpenCL.
2) Инструментарий CUDA. Это включает в себя заголовки, необходимые для компиляции кода OpenCL. Установите это в папку по умолчанию.
3) SDK для вычислений на GPU (дополнительно). Это включает в себя различные специальные инструменты поддержки NVIDIA, а также примеры кода OpenCL.
Все три из этих предметов могут быть найдены в http://developer.nvidia.com/cuda-toolkit-40.
4) Привязки OpenCL C ++ (необязательно). Как ни странно, они не включены в CUDA Toolkit, но если вы используете C ++, они могут сделать ваш код намного более читабельным. Вы можете скачать их с http://www.khronos.org/registry/cl/api/1.1/cl.hpp, и просто поместить их в / usr / local / cuda / include / CL на вашем рабочем столе.
После того, как они будут установлены, вам потребуется выполнить еще несколько шагов, чтобы иметь возможность скомпилировать и запустить OpenCL вне NVIDIA SDK.
1) В инструментарий CUDA будут включены заголовки OpenCL (перечислены в http://www.khronos.org/registry/cl/),, вероятно, они находятся в каталоге / usr / local / cuda / include / CL. Чтобы сделать эти заголовки доступными для всей системы, вам следует свяжите этот каталог с / usr / include /, чтобы к ним можно было обращаться как / usr / include / CL / [headerfilename]. Вместо создания символической ссылки вы можете добавить / usr / local / cuda / include к вашему C_INCLUDE_PATH
и CPLUS_INCLUDE_PATH
переменные окружения, но это будет продолжаться только для текущего сеанса.
2) Убедитесь, что библиотека OpenCL (libOpenCL.so) присутствует в / usr / lib. Это должно было быть установлено водителем, поэтому вам не нужно ничего делать.
Вы готовы написать код. Обязательно включите CL/cl.h
(или CL/cl.hpp
, если вы хотите использовать версию API C ++) в любую программу C (++), которая выполняет вызовы API OpenCL. При компиляции не забудьте связать с библиотекой OpenCL (передайте gcc флаг -lOpenCL
).
Что касается вашего нетбука, встроенная графика обычно не поддерживает OpenCL. Теоретически, AMD APP Acceleration поддерживает запуск OpenCL на процессоре, но не ясно, работает ли он на самом деле.