Установите OpenCL на человечности 16.04, генерал Intel i5 7th Ноутбук Dell Inspiron

Я недавно купил серийный ноутбук Dell Inspiron 3000 с процессором поколения Intel i5 7th. Машина прибыла предварительно загруженная с Windows 8, но быть сторонником Ubuntu, я установил Ubuntu 16.04 на нем.

Я должен работать с OpenCL на своем ноутбуке, для которого я выполнил процедуру, перечисленную в этом потоке (OpenCL На человечности 16.04, Intel Sandy Bridge CPU), и установил PyOpenCL (несущественно, этот поток работал отлично на мою рабочую станцию на работе, где у меня есть машина Xeon),

Я использовал следующий сценарий Python (https://github.com/benshope/PyOpenCL-Tutorial/blob/master/010_introspection.py) для получения этого вывода на моем ноутбуке:

============================================================
OpenCL Platforms and Devices
============================================================
Platform - Name:  Intel Gen OCL Driver
Platform - Vendor:  Intel
Platform - Version:  OpenCL 1.2 beignet 1.1.1
Platform - Profile:  FULL_PROFILE
beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)

Тот же сценарий на моей рабочей станции дает мне:

============================================================
Platform - Name:  Intel(R) OpenCL
Platform - Vendor:  Intel(R) Corporation
Platform - Version:  OpenCL 2.0 LINUX
Platform - Profile:  FULL_PROFILE
--------------------------------------------------------
Device - Name:  Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
Device - Type:  CPU
Device - Max Clock Speed:  2200 Mhz
Device - Compute Units:  24
Device - Local Memory:  32 KB
Device - Constant Memory:  128 KB
Device - Global Memory: 31 GB
Device - Max Buffer/Image Size: 8013 MB
Device - Max Work Group Size: 8192

lspci дает мне:

lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)

(На возможно несвязанной ноте я также установил графический драйвер на своем ноутбуке, который не имел место, когда я сначала пытался установить OpenCL),

В основном я не могу выяснить, какой формат OpenCL подошел бы для моих аппаратных средств.

Любой совет был бы действительно большим :)

2
задан 24 February 2018 в 13:12

2 ответа

Хорошо, я поняла это. Кроме того, это не было ракетостроение: /

Ссылка ( OpenCL В Ubuntu 16.04, процессор Intel Sandy Bridge ), которой я следовал ранее, была идеальной, так как я работал на машине Xeon. Это не сработало бы (большой сюрприз!) На моем ноутбуке, поскольку, очевидно, это не машина Xeon.

Мне нужно было использовать SDK для Linux, который доступен после заполнения формы. После заполнения формы вы будете перенаправлены на страницу, где сможете выбрать продукт и версию и загрузить файл .gz или файл .tgz. .Tgz предназначен для ОС Yocto , но во время установки вы можете запустить его без потери обобщения для Ubuntu 16.04.

Установка довольно проста, так как для ее использования очень удобен исполняемый скрипт оболочки install.sh.

Ниже приведены общие шаги:

  1. распаковать папку

    tar -xzvf intel_sdk_for_opencl_2017_yocto_7.0.0.2567_x64.tgz
    
  2. запустить скрипт оболочки

    ./install.sh
    
  3. следуйте инструкциям

Выходные данные скрипта Python затем показывают:

============================================================
OpenCL Platforms and Devices
============================================================
Platform - Name:  Intel Gen OCL Driver
Platform - Vendor:  Intel
Platform - Version:  OpenCL 1.2 beignet 1.1.1
Platform - Profile:  FULL_PROFILE
beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)
============================================================
Platform - Name:  Experimental OpenCL 2.1 CPU Only Platform
Platform - Vendor:  Intel(R) Corporation
Platform - Version:  OpenCL 2.1 LINUX
Platform - Profile:  FULL_PROFILE
    --------------------------------------------------------
    Device - Name:  Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
    Device - Type:  CPU
    Device - Max Clock Speed:  2500 Mhz
    Device - Compute Units:  4
    Device - Local Memory:  32 KB
    Device - Constant Memory:  128 KB
    Device - Global Memory: 8 GB
    Device - Max Buffer/Image Size: 1962 MB
    Device - Max Work Group Size: 8192
============================================================
Platform - Name:  Intel(R) OpenCL
Platform - Vendor:  Intel(R) Corporation
Platform - Version:  OpenCL 2.0 
Platform - Profile:  FULL_PROFILE
    --------------------------------------------------------
    Device - Name:  Intel(R) HD Graphics
    Device - Type:  GPU
    Device - Max Clock Speed:  1000 Mhz
    Device - Compute Units:  23
    Device - Local Memory:  64 KB
    Device - Constant Memory:  3209904 KB
    Device - Global Memory: 6 GB
    Device - Max Buffer/Image Size: 3135 MB
    Device - Max Work Group Size: 256
    --------------------------------------------------------
    Device - Name:  Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
    Device - Type:  CPU
    Device - Max Clock Speed:  2500 Mhz
    Device - Compute Units:  4
    Device - Local Memory:  32 KB
    Device - Constant Memory:  128 KB
    Device - Global Memory: 8 GB
    Device - Max Buffer/Image Size: 1962 MB
    Device - Max Work Group Size: 8192
2
ответ дан 2 December 2019 в 02:44

Я понимаю после пребывания больше 16 часов, заставляя OpenCL работать над Windows и Linux, что OpenCL На человечности 16.04, Intel Sandy Bridge CPU является самым близким для получения его работа.

То, что не работало на меня, было от установки драйверов и конфигурации, после которой я попробовал еще от некоторых мест. Да, версии отличались. Я принял это во внимание по мере возможности. Но, затем, это был мой первый раз библиотеки установки и соединение. Так, я надеюсь, что это помогает любым новичкам как я. Я только покрыл часть на Intel GPUs

Получение OpenCL работать

sudo apt install clinfo ocl-icd-opencl-dev opencl-headers

Проверьте вывод clinfo

clinfo | grep "GPU"

проверять, включен ли GPU. Если нет никакой строки как

Device Type                            GPU

в выводе, затем, GPU еще не поддерживает OpenCL. В этом случае попытайтесь установить beignet-opencl-icd, mesa-opencl-icd, и т.д. - может быть, по одному. Продолжайте проверять вывод clinfo после каждого. Если это включает вышеупомянутую строку, Вы сделаны.

Установка Intel OpenCL Drivers

Если это не работает, установите opencl драйверы Intel от https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_driver. Автоматическая установка требует тонны времени и пространства. Существует альтернативный метод все же. Разархивируйте архив. Установите посторонний объект, если Вы уже не имеете: sudo способный посторонний объект установки

cd в разархивированную папку, и выполненный

sudo alien -i *.rpm

Проверьте вывод “clinfo” снова. Это должно иметь GPU. clinfo | grep “GPU”

На данном этапе у Вас была бы рабочая реализация OpenCL.

Однако при испытании примеров (отсюда), я нашел, что большая часть работы в качестве примера с библиотеками Intel (см. ниже), некоторые не работают с библиотеками, установленными с распределением (установленный выше). (Я предполагаю, это из-за различных openCL включенных версий.)

Установите OpenCL SDK Intel

Установите Intel OpenCL SDK для Linux (после регистрации бесплатно) с ними, отсюда Intel OpenCL SDK для Linux. Просто запустите скрипт установщика - никакая потребность работать над частями того, чтобы заставлять это работать с Eclipse и так далее. Вы, возможно, должны

sudo apt install dkms

На данном этапе у Вас должны быть все готовые вещи.

Если Вы - новичок (как я)

Знайте процесс компиляции программ C: во-первых, объектные файлы сгенерированы, затем они связаны. См. https://stackoverflow.com/questions/31179452/what-exactly-is-in-a-o-a-so-file.

В IDE (я не знаю о терминале), существует две части к контакту с библиотеками. Сначала включает путь к заголовочным файлам. Второй включает файлы библиотеки в проект.

Я использую CodeBlocks. Так, причина, Linux любим, состоит в том, потому что, самая первая команда этого ответа отправила файлы в их намеченные места. Заголовочные файлы находятся в/usr/include каталоге под папкой 'CL'. Библиотека (в моем случае) находится под/usr/lib/x86_64-linux-gnu, названа 'libOpenCL.so'. Вы не должны делать ничего далее для использования их. Можно только начать кодировать -

#include<CL/cl.h>

В случае Intel OpenCL SDK заголовочные файлы находятся под/opt/intel/opencl-sdk/include; в то время как файлы библиотеки находятся под После установки, проверьте содержание/opt/intel/opencl для содержания. Они также имеют библиотеки. Однако один из файлов библиотеки дал мне синтаксическую ошибку (libclang.so). Intel OpenCL SDK должен быть загружен главным образом для заголовочных файлов в:/opt/intel/opencl-sdk/lib64 - только .so. (Я нашел, что libclang.so файл дал синтаксическую ошибку. Проверьте при запущении программы.)

В случае CodeBlocks, для использования файлов этого Intel - не по умолчанию - Создают новый проект. Щелкните правой кнопкой по проекту в подокне менеджера. Пойдите для “Создания опций”. Выберите Название проекта в левой панели – таким образом, настройки будут применены и для Версий выпуска и для Отладочных версий. В настройках Linker-> библиотеки ссылок, нажмите "Add". Здесь, добавьте библиотеки (не заголовочные файлы; все .so): в/opt/intel/opencl-sdk/lib64. На вкладке каталогов Search, в соответствии с 'компилятором', добавляют/opt/intel/opencl/include (или везде, где Ваши заголовочные файлы).

В случае Eclipse, во-первых, устанавливают CDT. Затем после создания проекта, в соответствии с Проектом-> Свойства-> Сборка C/C++-> Настройки-> Настройки Инструмента, (1) в соответствии с Компилятором C++ GCC, включает, добавьте каталог заголовочных файлов. (2) при Компоновщике C++ GCC, в разделе Libraries, добавляют OpenCL и в более низкой части, в разделе Library Path, добавляют путь. В моем случае, для получения его работа я потребовал,/opt/intel/opencl/include в первой части и/opt/intel/opencl/SDK/lib64 во второй части. Значение по умолчанию как в случае Codeblocks не работало. Возможно, его должное к версиям, или я не попробовал правильно - Eclipse плохо мне знаком.

Готово.

Следующее должно выполнить и скомпилировать: https://github.com/bgaster/opencl-book-samples/blob/master/src/Chapter_3/OpenCLInfo/OpenCLInfo.cpp

Кредиты: Интернет

1
ответ дан 2 December 2019 в 02:44

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

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