Компиляция OpenCL в Ubuntu

Мой опыт программирования составляет около 1 года опыта программирования на C / C ++ в средней школе, но я провел свое исследование и написал простую программу с OpenCL несколько месяцев назад. Мне удалось относительно легко скомпилировать и запустить это на компьютере Apple с помощью g ++ и опции --framework. Теперь я на своей машине с Ubuntu и понятия не имею, как ее скомпилировать. Правильные драйверы были загружены вместе с Stream SDK от ATI (у меня ATI Radeon HD5870). Любая помощь будет оценена по достоинству!


person user492268    schedule 30.10.2010    source источник
comment
NVIDIA: заголовок stackoverflow.com/questions/7542808/   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 02.11.2015


Ответы (3)


Пытаться

locate libOpenCL.so

Если он находится в одном из стандартных каталогов (скорее всего, / usr / lib или / usr / local / lib), вам необходимо заменить «--framework OpenCL» на «-lOpenCL». Если g ++ не может найти библиотеку, вы можете указать g ++ искать в конкретном каталоге, добавив «-L / path / to / library».

Я бы хотел, чтобы мой Linux был более полезным ... Вероятно, лучше всего, если вы повторно загрузите ati-stream-sdk, после его распаковки откройте Терминал и «cd / path / to / extract / files»; в этом каталоге выполните make && sudo make install

  • make вы, наверное, знаете это из окон, это компилируется, все, что нужно скомпилировать
  • && объединяет команды вместе, следующие команды будут выполнены только в том случае, если первая команда выполнена успешно.
  • sudo make install это поместит файлы в ожидаемые места (sudo выполняет команду с привилегиями суперпользователя, вам нужно будет ввести свой пароль)

Надеюсь, это поможет.

person bjoernz    schedule 30.10.2010
comment
Я пробовал это, но потом получаю фатальную ошибку: CL / opencl.h: Нет такого файла или каталога (одна из вещей, которые я # включил в свою программу). - person user492268; 31.10.2010
comment
возможно, вам нужно сообщить g ++ о расположении каталога CL / (вы делаете это с заглавной тире i): g ++ -L / path / to / library -I / path / to / CL main.cpp -lOpenCL - person bjoernz; 31.10.2010
comment
Теперь я получаю: / usr / bin / ld: cannot find -lOpenCL collect2: ld вернул 1 статус выхода. Может быть, мне стоит спросить, должен ли я перемещать файлы из папки SDK в разные части моей файловой системы. Прошу прощения, я новичок в Linux (совсем недавно пытался переключиться с Windows). - person user492268; 31.10.2010
comment
И она компилируется и запускается! К сожалению, я написал это, когда OpenCL все еще находился на стадии бета-тестирования ... так что, очевидно, необходимы некоторые изменения кода. Спасибо за помощь! - person user492268; 31.10.2010
comment
Да, и в случае, если кто-то находится в аналогичном положении, последняя строка для компиляции была: g ++ -lOpenCL -L / stream-sdk-2.2 / lib / x86_64 / -I / stream-sdk-2.2 / include / [file_name]. c - person user492268; 31.10.2010
comment
Мне пришлось бежать g++ -L/opt/AMDAPP/lib/x86_64/ -I/opt/AMDAPP/include [filename.cpp] -lOpenCL - person Benjamin Manns; 14.09.2012

Возможно, вам не хватает динамических библиотек в конфигурации динамического компоновщика.

Найдите, где находятся библиотеки. Скорее всего, / usr / lib или / usr / local / lib.

Убедитесь, что расположение пути также настроено в одном из следующих мест:

  • LD_LIBRARY_PATH - вы можете установить его в оболочке среды, например .bashrc
  • /etc/ld.so.conf - вам нужно будет вызвать ldconfig для обновления кеша, и для изменения файла требуется root-доступ.
person Paulo Pinto    schedule 30.10.2010

Причина

Помимо @bjoernz, моя система не может найти файл libOpenCL.so

Это потому, что отсутствует правильный файловый каталог.

После поиска в Интернете я обнаружил, что libOpenCL.so файл может быть предоставлен пакетом ocl-icd-opencl-dev.

Решение

Вам просто нужно установить упомянутый выше пакет, набрав в cmd

sudo apt update
sudo apt install ocl-icd-opencl-dev

Следовательно, libOpenCL.so можно найти в папке /usr/lib/x86_64-linux-gnu/.

Моя системная информация

  • ОС: Ubuntu 16.04 LTS.
  • Графический процессор: NVIDIA GeForce GTX 660
  • Драйвер графического процессора: nvidia-375
  • OpenCL: 1.2

Ссылка:

[1] Как установить libOpenCL.so в ubuntu

[2] Как настроить OpenCL в Linux

person WY Hsu    schedule 04.09.2017