Настройка OpenCL в Ubuntu

Я пытаюсь собрать проект OpenCL в Ubuntu. У меня есть Core i5 и AMD HD 5660, которые оба совместимы.

когда я выполняю следующий код

cl_int status;
// Retrieve the number of platforms
cl_uint numPlatforms = 0;
status = clGetPlatformIDs(0, NULL, &numPlatforms);
if (status != CL_SUCCESS)
{
    std::cout << "Error: Getting platforms!" << std::endl;
    std::cin.get();
}

я получил Error: Getting platforms!

Когда я выполню clinfo, Я получил: terminate called after throwing an instance of 'cl::Error \n what(): clGetPlatformIDs'

Я использую драйвер AMD 14.4 и SDK 2.9 (в руководстве по установке AMD упоминается, что настройка этих двух файлов будет обрабатывать регистрацию переменных icd и среды)

Что я делаю не так, что не могу заставить работать мою прогу?

Обратите внимание, что я использую Eclipse с правильным путем к lib (/opt/AMDAPP/lib/x86_64). Программа компилируется правильно.

РЕДАКТИРОВАТЬ

Процесс установки

  1. сначала установите драйвер x64 14.4

  2. я установил AMD-APP-SDK-v2.9-lnx64.tgz (Распаковать SDK и чем выполнить sudo ./Install-AMD-APP.sh.), как рекомендуется в руководстве по установке.

  3. подтверждено AMDAPPSDKROOT 'andLD_LIBRARY_PATH` верны.

  4. создана символическая ссылка на /usr/lib64/OpenCL/vendors/amd/libOpenCl.so.1 в /use/lib (поскольку это x64 битный ПК и по какой-то причине opencl ищет драйвер x64 в /lib)

1 ответ

Я думаю, по крайней мере, на Ubuntu 15.04, вы можете просто установить fglrx или же fglrx-updates и зависимости. Вы можете увидеть все нужные библиотеки OpenCL в основном пакете. Я не думаю, что вам нужен бизнес AMD SDK вообще, если у вас установлен fglrx. Андреас дает много полезной информации.

dpkg -L fglrx-updates-core | grep -v kcl | grep cl
/usr/bin/atiodcli
/usr/bin/clinfo
/usr/lib/libamdocl12cl64.so
/usr/lib/libamdocl64.so
/usr/lib/libaticalcl.so
/usr/lib32/libaticalcl.so
/usr/lib32/libamdocl32.so
/usr/lib32/libamdocl12cl32.so
/etc/OpenCL/vendors/amdocl64.icd

Вам нужно иметь flgrx драйвер загружен и работает.

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