The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Компиляция приложений с поддержкой OpenCL без закрытых драйверов
При сборке Wine не для личного использования, а чтобы распространять сборки, я
столкнулся с проблемой. С какой реализацией OpenCL линковать? NVIDIA, AMD,
Intel, Mesa? Ответ - FreeOCL!

На самом деле, не важно с чем линковать. У всех известных мне реализаций
OpenCL, сама библиотека libOpenCL.so.1 занимает  около 30 Кб.
Оказывается, внутри этой библиотеки ничего нет. Сам OpenCL находится в другой
библиотеке (например в libatiocl64.so - см.
/etc/OpenCL/vendors/*.icd для подробностей). Однако залить
проприетарный драйвер в OBS-репозиторий я не могу, так как закрытый код.
Остаётся только Mesa и FreeOCL.

FreeOCL это программная реализация OpenCL, написанная на C++, и имеющая у
себя в зависимостях libatomic_ops - а LLVM не имеющая. Установив в систему
FreeOCL и opencl-headers, я успешно собрал Wine. Причём
Wine линкуется только с OPENCL_1.0, что не помешало конечному софту,
запущенному в Wine, успешно задействовать расширения 1.2 и 2.0.

В общем, рекомендую всем, кто до сих пор собирает с AMD APP SDK 3.0, перейти на
FreeOCL. Я попробовал скомпилировать весь известный мне OpenCL-софт при помощи
FreeOCL, а затем запустить на NVIDIA и AMD - всё работает безупречно. Не
падает, не отказывается стартовать, и демонстрирует ровно ту же скорость работы.

P.S. Бинарник получает зависимость от libOpenCL.so.1 (параметр
-lOpenCL), а пакет RPM или DEB также получает от pkg-config ещё
несколько зависимостей:

   libOpenCL.so.1(OPENCL_1.0)(64bit)
   libOpenCL.so.1(OPENCL_1.1)(64bit)
   libOpenCL.so.1(OPENCL_1.2)(64bit)
   libOpenCL.so.1(OPENCL_2.0)(64bit)

Поэтому если вы собираете пакеты, а не просто tar.gz архив с программой,
рекомендую пропатчить FreeOCL патчем
freeocl-0.3.6-disable-symbol-versioning.patch. В этом случае, пакет получит
зависимость только от libOpenCL.so.1()(64bit). Например в моей
системе в пакете NVIDIA 340.xx нет "версионинга" OpenCL, а в 390.xx
он есть. Вследствие чего, пакет не хотел устанавливаться, но после force
install - работал.
 
22.08.2018 , Автор: Аноним
Ключи: opencl / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / C/C++, сборка, отладка

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, iZEN (ok), 16:37, 23/08/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    12 лет собираю софт без OpenCL. Что я теряю, чего лишаюсь?
     
     
  • 2.2, Аноним (2), 21:38, 23/08/2018 [^] [ответить]    [к модератору]
  • +/
    мегахеши.
     
  • 2.3, Аноним (3), 23:36, 23/08/2018 [^] [ответить]    [к модератору]
  • +/
    12 лет назад его ещё совсем не было. Так что, тогда ты точно ничего не терял.
     
  • 2.4, Аноним (4), 10:30, 24/08/2018 [^] [ответить]    [к модератору]
  • +/
    12 лет собирать софт и сморозить такое. Глупость действительно неисправима!
     
     
  • 3.9, iZEN (ok), 22:08, 24/08/2018 [^] [ответить]    [к модератору]
  • +/
    > 12 лет собирать софт и сморозить такое. Глупость действительно неисправима!

    Я серьёзно. Что я пропустил?


     
  • 3.11, Аноним (-), 23:33, 25/08/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    > 12 лет собирать софт и сморозить такое. Глупость действительно неисправима!

    Это же iZEN. Сегодня он показал что можно 12 лет собирать софт и при этом все-же остаться ламером и нубом.

     
     
  • 4.13, Аноним (13), 14:52, 27/08/2018 [^] [ответить]     [к модератору]  
  • +/
    Понимаешь ли, мой маленький друг, то, что iZEN хочет заполнить пробелы в своих з... весь текст скрыт [показать]
     
     
  • 5.18, ананим.orig (?), 23:33, 02/09/2018 [^] [ответить]    [к модератору]  
  • +/
    > iZEN хочет заполнить пробелы в своих знаниях и при этом не боится

    Не заблуждайтесь.
    ..
    Если не хотите прослушать курс (не менее ламepский кстати) на тему, как жаба разруливает зависимости при распространении блобов.

     
  • 2.10, Аноним (-), 23:32, 25/08/2018 [^] [ответить]     [к модератору]  
  • +/
    Ускорения массово параллелящихся операций раз так во много Видал разгон в 30 ра... весь текст скрыт [показать]
     
     
  • 3.12, iZEN (ok), 14:09, 26/08/2018 [^] [ответить]    [к модератору]  
  • +/
    >> 12 лет собираю софт без OpenCL. Что я теряю, чего лишаюсь?
    > Ускорения массово параллелящихся операций раз так во много. Видал разгон в 30
    > раз. Но да, это требует GPU и достаточно работоспособный 3D драверй
    > с opencl-ным рантаймом.

    На nvidia-driver-390.77 и видеокарте Geforce GT 710 работает?

    На xf86-video-ati-7.9.0 и видеокарте AMD 785G (HD 4200) работает?

     
     
  • 4.14, Аноним (14), 22:39, 27/08/2018 [^] [ответить]    [к модератору]  
  • +/
    Да, но большая часть софта не получит преимуществ, слишком старые видеокарты не поддерживают современные инструкции и софт просто не задействует opencl на них.
     
     
  • 5.15, iZEN (ok), 09:48, 28/08/2018 [^] [ответить]    [к модератору]  
  • +/
    А что будет, если поставить Geforce GTX 1050? Какие преимущества я получу от OpenCL в этом случае?
     
     
  • 6.16, Инсайдер (?), 03:01, 29/08/2018 [^] [ответить]    [к модератору]  
  • +/
    Одно из преимуществ: https://hashcat.net/hashcat/
     
  • 6.19, siu77 (ok), 10:45, 03/09/2018 [^] [ответить]    [к модератору]  
  • +/
    Когда OpenCL только начал появляться, было множество новостей о том, что вычисления в электронных таблицах LibreOffice ускоряются в несколько раз.
    Например, из 2014:
    http://www.techenablement.com/libreoffice-opencl-acceleration-for-the-masses-

    Но вроде бы, с тех пор все вменяемые дистры запилили поддержку этой фичи по дефолту. Так что, смысл этой пересборки мне тоже не очень понятен. Без фороникса не разобраться, короче.

     
     
  • 7.20, нах (?), 17:56, 04/09/2018 [^] [ответить]    [к модератору]  
  • +/
    погодите-ка, вы хотите сказать, что у вас были ТАКИЕ таблицы в опенофисе, что их вычисления (вычисления, йопаралон - не старт oocalc, не отрисовка бесконечных элементов интерфейса, не открытие файла, а ВЫЧИСЛЕНИЯ) выполнялись заметное глазом время?

     
     
  • 8.21, siu77 (ok), 22:45, 04/09/2018 [^] [ответить]    [к модератору]  
  • +/
    Ну, не все же на ай9 сидят. ))

    В обсуждении новости в 2013-м году возникло похожее непонимание:
    https://www.phoronix.com/forums/forum/software/desktop-linux/38672-libreoffice
    И вот что было отвечено: "OpenCL also means CPU multi core." Т.е., как gcc может обрабатывать одну задачу с помощью нескольких ядер, так и, в идеале, многое может быть реализовано для параллельного выполнения. Другое дело, что сейчас уже 2018, а многого не видно.

     
  • 1.5, Zenitur (ok), 12:47, 24/08/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    У меня такой вопрос: есть ли разница между header-ами OpenCL из CUDA Toolkit, AMD APP SDK и с сайта Khronos Group (пакет opencl-headers)?
     
     
  • 2.8, Аноним (8), 20:28, 24/08/2018 [^] [ответить]     [к модератору]  
  • +/
    По идее, должна быть, ведь вендоры имеют право добавлять свои собственные расшир... весь текст скрыт [показать]
     
  • 1.6, Андрей (??), 16:31, 24/08/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    6 лет назад в Debian появился пакет ocl-icd с реализацией платформонезависимого драйвера, который можно использовать для разработки, а потом оно будет работать с проприетарными драйверами.

    "OpenCL implementations are provided as ICD (Installable Client Driver). An OpenCL program can use several ICD thanks to the use of an ICD Loader as provided by this project. This free ICD Loader can load any (free or non free) ICD."

    Источник: https://forge.imag.fr/projects/ocl-icd/

     
     
  • 2.7, Аноним (8), 20:27, 24/08/2018 [^] [ответить]    [к модератору]  
  • +/
    Вот оно что. Спасибо
     
  • 2.22, Аноним (22), 12:15, 22/09/2018 [^] [ответить]    [к модератору]  
  • +/
    Так что же, в итоге, лучше? FreeOCL или OCL-ICD?
     
     
  • 3.23, Аноним (23), 21:10, 22/09/2018 [^] [ответить]    [к модератору]  
  • +/
    Результат будет одинаковым. Наверное лучше OCL-ICD, потому что он создан конкретно для того, чтобы компилить с ним софт, а FreeOCL претендует на серьёзность, на то, чтобы выполнять OpenCL-код на CPU
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor