Как скомпилировать и запустить open cl-коды на процессорах Intel i5, имеющих Intel HD 4000 GPU? Open cl был установлен в / opt / intel / opencl и версии Ubuntu 12.04. Любая помощь будет очень полезна ... Спасибо
@thomas, когда я запускаю файл, он не находит ни одного файла или библиотеки ... ошибка говорит о том, что такого файла или каталога CL / cl.h не найдено. Также есть один файл с именем kernelBuilder, когда я пытаюсь его выполнить, появляется одна подсказка, но она останавливается и сообщает, что GCOnf выдает предупреждение, клиент не смог подключиться к демону шины D и не получил ответ ....
Пиюш Кумар
@PiyushKumar sudo apt-get install opencl-headersвозможно. После этого он должен найти libOpenCL.so, но в прошлом у меня были серьезные проблемы с тем, что Intel не могла зарегистрировать библиотеку и вызывала ошибки компоновки.
Томас
@ Томас, попробую ... Думаю, я мог бы использовать твои эксперименты
Спасибо, но, по словам Intel, они не поддерживают OpenCL на HD 4000 для Linux: OpenCL SDK 1.2 для Linux без Xeon? , Какую производительность вы получаете?
nealmcb
1
Ага - теперь я вижу, что README.txt для beignet объясняет, что это альтернатива Intel OpenCL SDK, который действительно поддерживает HD 4000. Спасибо! Обратите внимание, что люди действительно должны запускать makeтакже .... Нужно ли запускать ldconfigсвидетельство проблемы с пакетом?
nealmcb
2
Производительность, как и у opencl, довольно плохая и довольно глючная. Код, который выполняется в других реализациях opencl, иногда просто вылетает или выдает ошибку. Это позволяет создавать тривиальные тестовые вещи, не прибегая к вычислительной установке.
RobotHumans
Я не думаю, что необходимость добавлять его в путь поиска в библиотеке является проблемой с библиотекой. Если вы используете OpenCL, предполагается, что у вас есть некоторые технические ноу-хау. Лично я хотел бы, чтобы все пакеты OpenCL устанавливались одновременно, и вы могли просто переключить, какая библиотека была включена в ваш путь поиска, и повторно запустить ldconfig, чтобы указать на другую. Это может быть полезно, если в качестве среды тестирования у вас был тестовый блок со всеми тремя «брендами» видеочипсетов, и вы разработали способ для тестирования или просто запуска теста для всех возможных целей.
RobotHumans
1
В этом есть смысл. Я был бы больше на борту с чем-то вроде шлепка в жокей, альтернативных обновлений или чего-то еще. Переключать библиотеки с чем-то, что должно переключать библиотеки? Конечно, это кажется хорошей идеей для несостоятельной ситуации.
RobotHumans
0
Для компиляции вам необходим компилятор, такой как gcc. Вы можете скачать gcc из своего репозитория. (выберите больший номер версии для дополнительной функции C ++ 11).
$> sudo apt-get install gcc-4.7
После этого вы должны связать свою библиотеку OpenCL с приложением, которое вы компилируете. Допустим, код приложения хоста (main.c) и код приложения ядра (kernel.cl) находятся в папке с именем test. Вы должны сделать следующее:
sudo apt-get install opencl-headers
возможно. После этого он должен найтиlibOpenCL.so
, но в прошлом у меня были серьезные проблемы с тем, что Intel не могла зарегистрировать библиотеку и вызывала ошибки компоновки.Ответы:
Первый:
sudo apt-get install beignet opencl-headers
Добавьте папку beignet в путь поиска вашей библиотеки:
Получите простой тестовый бинарный файл:
Отредактируйте make-файл так, чтобы он выглядел так:
Вот и ты. OpenCL работает для семейства видеокарт Intel HD ...
./capsbasic
источник
make
также .... Нужно ли запускатьldconfig
свидетельство проблемы с пакетом?Для компиляции вам необходим компилятор, такой как gcc. Вы можете скачать gcc из своего репозитория. (выберите больший номер версии для дополнительной функции C ++ 11).
$> sudo apt-get install gcc-4.7
После этого вы должны связать свою библиотеку OpenCL с приложением, которое вы компилируете. Допустим, код приложения хоста (main.c) и код приложения ядра (kernel.cl) находятся в папке с именем test. Вы должны сделать следующее:
$ test> gcc -I / opt / intel / include -L / opt / intel / lib / [x86 или x86_64] / main.c -o a.out
Это должно заботиться о компиляции. Вы должны запустить вывод как:
$ Тестов> ./ a.out
и позаботьтесь о любой ошибке во время выполнения, которую вы можете получить (включая исправление пути к вашему kernel.cl и т. д.).
источник