Ответ 1
Строго говоря, SDK не требуется. На самом деле SDK не требуется, так как SDI NVIDIA и AMD/ATI связывают код с их средами и, в свою очередь, своим оборудованием. Что вам нужно:
1) Графический процессор, который будет запускать код OpenCL. Смотрите этот вопрос: Список совместимого с OpenCl CPU/графического процессора
2) Библиотека OpenCL (libOpenCL.so в Linux); это обычно включается и устанавливается вместе с графическим драйвером, который может быть загружен из AMD или NVIDIA.
3) Файлы заголовков OpenCL. Они могут быть получены из Khronos.org, но включены во все SDK OpenCL, о которых я знаю. В системе Linux они обычно входят в каталог /usr/include/CL
NVIDIA и AMD SDK предоставляют ряд утилит и оболочек, которые упрощают использование OpenCL API, но они не требуются для написания кода OpenCL или для вызова API. Эти обертки и утилиты не обходятся. Если вы заинтересованы в написании портативного кода, придерживайтесь спецификации OpenCL, также доступной на Khronos.org.
Чтобы написать код, все, что вам нужно сделать, это включить opencl.h в вашу хост-программу, а затем сделать вызовы API, необходимые для настройки среды OpenCL и запустить вашу программу OpenCL. Кроме того, не забудьте связать библиотеку OpenCL (дайте gcc флаг -lOpenCL под Linux).