Компиляция программы OpenCL с использованием файла CL/cl.h

У меня есть образец "Hello, World!" код из сети, и я хочу запустить его на GPU на моем университетском сервере. Когда я набираю "gcc main.c", он отвечает:

CL/cl.h: нет такого файла или каталога

Что мне делать? Как я могу получить этот файл заголовка?

Ответ 1

Убедитесь, что у вас установлен соответствующий набор инструментов.

Это зависит от того, на чем вы намерены запускать свой код. Если у вас есть карта NVidia, вам необходимо загрузить и установить CUDA-toolkit, который также содержит необходимые бинарные файлы и библиотеки для opencl.

Вы используете Linux? Если вы считаете, что у вас уже установлен OpenCL, может оказаться, что он найден в другом месте, чем стандартный /usr/include. Введите следующее и посмотрите, какие результаты вы получите:

find / -iname cl.h 2>/dev/null

На моем ноутбуке, например, заголовок находится в /usr/local/cuda-5.5/include. Если в этом случае ваш файл заголовка находится в другом месте, вам просто нужно указать путь во время осложнения.

g++ -I/usr/local/cuda-5.5/include main.c -lOpenCL

В качестве альтернативы вы можете создать символическую ссылку из пути к /usr/include:

ln -s /usr/local/cuda-5.5/include/CL /usr/include

Ответ 2

Используете ли вы Ubuntu или Debian distro? Затем вы можете использовать этот пакет для решения проблемы с отсутствующим файлом заголовка:

apt-get install opencl-headers

Вы должны установить библиотеку opencl, чтобы решить проблемы с связями, используя Debian и Ubuntu пакет:

apt-get install ocl-icd-libopencl1

Вы также можете использовать эти несвободные библиотеки: nvidia-libopencl1 (Debian) или nvidia-libopencl1-xx (Ubuntu).

Ответ 3

При компиляции main.c убедитесь, что вы указали путь к файлу заголовка cl.h. Если вам нужна более подробная информация, просто используйте Google и найдите для включения заголовков с gcc.