Открыть Cl в Intel

Как скомпилировать и запустить коды open cl на процессорах Intel i5 с процессором Intel HD 4000 GPU ??? Open cl был установлен в / opt / intel / opencl и версии Ubuntu 12.04. Любая помощь будет очень полезна ... Спасибо

9
задан 07.05.2020, 17:52

2 ответа

Для компиляции вам необходим такой компилятор, как 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

Это должно заботиться о компиляции. Вы должны выполнить вывод как:

$ test> ./ a.out

и позаботиться о любой ошибке во время выполнения, которую вы можете получить (включая исправление пути к вашему kernel.cl и т. Д.).

0
ответ дан 07.05.2020, 17:53

Сначала:
sudo apt-get install beignet opencl-headers

Добавьте папку beignet в путь поиска вашей библиотеки:

sudo su
echo "/usr/lib/beignet/" > /etc/ld.so.conf.d/beignet.conf
ldconfig
exit

Получите простой тестовый двоичный файл:

git clone https://github.com/vpereira/CapsBasic-beignet

Отредактируйте make-файл так, чтобы он выглядел примерно так:

all: capsbasic

capsbasic: capsbasic.cpp Makefile
    g++ capsbasic.cpp -lcl -ocapsbasic -I/usr/include -L/usr/lib/beignet

clean:
    rm -f capsbasic

Вот и все. OpenCL работает для семейства видеокарт Intel HD ...

lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)

./capsbasic

Number of available platforms: 1
Platform names:
    [0] Experiment Intel Gen OCL Driver [Selected]
Number of devices available for each type:
    CL_DEVICE_TYPE_CPU: 0
    CL_DEVICE_TYPE_GPU: 1
    CL_DEVICE_TYPE_ACCELERATOR: 0

*** Detailed information for each device ***

CL_DEVICE_TYPE_GPU[0]
    CL_DEVICE_NAME: Intel HD Graphics Family
    CL_DEVICE_AVAILABLE: 1
    CL_DEVICE_VENDOR: Intel
    CL_DEVICE_PROFILE: FULL_PROFILE
    CL_DEVICE_VERSION: OpenCL 1.1
    CL_DRIVER_VERSION: 0.2
    CL_DEVICE_OPENCL_C_VERSION: OpenCL C 1.1
    CL_DEVICE_MAX_COMPUTE_UNITS: 128
    CL_DEVICE_MAX_CLOCK_FREQUENCY: 1000
    CL_DEVICE_MAX_WORK_GROUP_SIZE: 512
    CL_DEVICE_ADDRESS_BITS: 32
    CL_DEVICE_MEM_BASE_ADDR_ALIGN: 32
    CL_DEVICE_MAX_MEM_ALLOC_SIZE: 134217728
    CL_DEVICE_GLOBAL_MEM_SIZE: 4
    CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 65536
    CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: 8192
    CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: 128
    CL_DEVICE_LOCAL_MEM_SIZE: 65536
    CL_DEVICE_PROFILING_TIMER_RESOLUTION: 80
    CL_DEVICE_IMAGE_SUPPORT: 1
    CL_DEVICE_ERROR_CORRECTION_SUPPORT: 0
    CL_DEVICE_HOST_UNIFIED_MEMORY: 0
    CL_DEVICE_EXTENSIONS: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_fp64 cl_khr_icd cl_khr_gl_sharing
    CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: 16
    CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: 16
    CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: 16
    CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE: 0
    CL_DEVICE_NATIVE_VECTOR_WIDTH_INT: 16
    CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG: 16
    CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT: 16
    CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE: 16
0
ответ дан 07.05.2020, 17:53
  • 1
    Ага - теперь я вижу, что README.txt для бенье объясняет, что это - альтернатива Intel' s OpenCL SDK, который действительно поддерживает HD 4000.Спасибо!! Обратите внимание, что люди действительно должны на самом деле работать make также.... Потребность состоит в том, чтобы работать ldconfig доказательство проблемы с пакетом? – sathish kumar 07.05.2020, 17:54
  • 2
    Я don' t думают необходимость добавить, что это к Вашему пути поиска библиотеки - проблема с библиотекой. Если you' использование ре OpenCL, предположение - то, что у Вас есть некоторое техническое ноу-хау. Лично, я хотел бы его, если бы пакеты OpenCL были все устанавливаемыми одновременно, и Вы могли бы просто переключиться, какая библиотека была включена в Ваш путь поиска и повторно выполнена ldconfig для указания на различный. Это могло быть полезно, если бы у Вас было тестовое поле со всеми 3 видео чипсетами " brands" поскольку тестовая среда и Вы разработали способ сравнить или просто тест выполнения Ваш код всех возможных целей. – fiza khan 07.05.2020, 17:54
  • 3
    Производительность, как opencl идет, довольно плохой и симпатичный glitchy. Код, который работает на других opencl реализациях иногда просто, отказывает или ошибки. Это действительно позволяет Вам создать тривиальные тестовые вещи, не продвигая к вычислить буровой установке. – Kranthi 07.05.2020, 17:54
  • 4
    Это имеет смысл. Я был бы больше на борту с чем-то как удар его в жокее, альтернативах обновления, или что бы то ни было. Библиотеки переключателя с чем-то that' s предполагаемый переключить библиотеки? Несомненно, это походит на хорошую идею для ненадежной ситуации. – PilouPili 07.05.2020, 17:55
  • 5
    Спасибо, но по данным Intel они don' t поддерживают OpenCL на HD 4000 для Linux: OpenCL SDK 1.2 для Linux, без Xeon? . Какую производительность Вы получаете? – moradiya nimisha 07.05.2020, 17:55

Теги

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