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ский кстати) на тему, как жаба разруливает зависимости при распространении блобов.

     
     
  • 6.24, Аноним (24), 18:51, 24/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Все знать в этом мире нереально .
    Лично вы например тоже чего-то не знаете .
    Давайте я буду смеяться над вами, над тем что лично вы не знаете ?
    И напишу что вы в этом деле нуб , клоун и дегенерат .
     
  • 2.10, Аноним (-), 23:32, 25/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > 12 лет собираю софт без OpenCL. Что я теряю, чего лишаюсь?

    Ускорения массово параллелящихся операций раз так во много. Видал разгон в 30 раз. Но да, это требует GPU и достаточно работоспособный 3D драверй с opencl-ным рантаймом.

     
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +1 +/
    погодите-ка, вы хотите сказать, что у вас были ТАКИЕ таблицы в опенофисе, что их вычисления (вычисления, йопаралон - не старт oocalc, не отрисовка бесконечных элементов интерфейса, не открытие файла, а ВЫЧИСЛЕНИЯ) выполнялись заметное глазом время?

     
     
  • 8.21, siu77 (ok), 22:45, 04/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, не все же на ай9 сидят В обсуждении новости в 2013-м году возникло похож... текст свёрнут, показать
     

  • 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 [^] [^^] [^^^] [ответить]  
  • +/
    > У меня такой вопрос: есть ли разница между header-ами OpenCL из CUDA
    > Toolkit, AMD APP SDK и с сайта Khronos Group (пакет opencl-headers)?

    По идее, должна быть, ведь вендоры имеют право добавлять свои собственные расширения. Не знаю, добавляли ли NVIDIA с AMD что-нибудь своё в OpenCL

     

  • 1.6, Андрей (??), 16:31, 24/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    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
     

  • 1.25, Анонннн (?), 14:04, 31/10/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Дошел ли прогресс до такого состояния, что собрав мою, не использующую на прямую opencl, программу вместе в opencl, я получу приваку к скорости?
     


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




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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