OpenCL 2.0 и драйверы от AMD и Intel / Хабр
Незамеченной на хабре прошла новость о появлении OpenCL 2.0 драйверов от AMD и Intel.Многим кажется, что подобный API просто очередной маркетинговый buzzword. Отчасти это так, потому что почти все современные аппаратные продукты выходят с пунктом «OpenCL» в списке поддерживаемых технологий и рекламе: последние CPU, GPU, APU (CPU+GPU), FPGA, CPU+FPGA. И многим из области разработки enterprise ПО хочется откреститься от этих «модных» названий, но и это скоро станет невозможно стараниями Oracle и AMD.
Массовый параллелизм аппаратного обеспечения уже давно присутствует в серверах, пресональных компьютерах, телефонах и планшетах, специализированных аппаратных ускорителях. OpenCL в области FPGA рассматривается как способ упростить, удешевить и популяризовать разработку. При этом использование преимуществ, предоставляемых аппаратурой, пока требует от программиста использовать таких API как OpenCL, CUDA, OpenMP. Но появляются попытки скрыть эту сложность от прикладных программистов, например Project Sumatra и ScalaCL.
OpenCL уже позволил оптимизировать производительность графических редакторов Photoshop CC 2014 и GIMP 2.8 RC 1. Рендереры LuxRender и Cycles из проекта Blender также выигрывают от применения этого API. И даже офисный пакет LibreOffice использует OpenCL. Для меня было очень неожиданно узнать из новостей, что мой бывший работодатель отличился в оптимизации VP9 видео энкодера с помощью OpenCL.
OpenCL 2.0 был утвержден как стандарт почти год назад. Этот стандарт поддерживает технологии доступные в современном аппаратном обеспечении: Shared Virtual Memory позволяет избегать лишнего/явного копирования данных между областями памяти, nested parallelism позволяет планировать выполнение kernel функций на устройстве без превлечения host программы уменьшая задержки, pipe как дополнительный способ обмена данными между kernel функциями а также расширенную поддержку atomic операций.
Мне больше всего греет душу, что теперь не нужны «костыли» для реализации atomic операций с floating point данными в OpenCL. Как не странно, эта проблема с atomic cmpxchg volatile приводила очень много людей в мой блог и такой же подход использовали другие разработчики до появления этой возможности в последнем стандарте.
Можно продолжать игнорировать преимущества предоставляемые аппаратным обеспечением… Или попытаться задействовать с большей эффективностью современное аппаратное обеспечение и сделать proof of concept для вашего проекта, если есть возможность параллелизовать алгоритм и объем вычислений в проекте достаточно большой.
А что вы думаете про перспективы использования OpenCL в корпоративном программном обеспечении или вашем проекте?
amd opencl driver windows 10 64 bit
На чтение 4 мин. Просмотров 26 Опубликовано
Программа DriverPack полностью бесплатна
- Главная /
- видеокарты /
- видеокарты Intel /
- Intel (R) OpenCL GPU binaries
Устали искать драйверы для ваших устройств?
DriverPack Online автоматически найдет и установит нужные вам драйверы
Description
Free Download
Support OpenCL 2.0 Core Features:
— Shared Virtual Memory – Coarse Grain
— C1x atomics and memory ordering
— Pipes
— Precision for Math built-in native functions
— Program Scope Variables
— Subgroups
— New built-in functions
— Generic Address Space
— Images
— Flexible ND-Range
— Dynamic Parallelism
AMD Desktop Product Family Compatibility:
— AMD Radeon R9 290 Series
— AMD Radeon R7 260 Series
— AMD Radeon R7 260 Series
— AMD Radeon HD 8000 Series
— AMD Radeon R7 250 Series
— AMD Radeon HD 7000 Series
AMD APU Product Family Compatibility:
— A-Series AMD Radeon R7 Graphics
— A-Series AMD Radeon R4 Graphics
— A-Series AMD Radeon R6 Graphics
— A-Series AMD Radeon R2 Graphics
— A-Series AMD Radeon R5 Graphics
— AMD Radeon HD 8000D Series
— A-Series AMD Radeon R3 Graphics
— AMD Radeon HD 8000G Series
AMD Mobility Product Family Compatibility:
— AMD Radeon R9 M200 Series
— AMD Radeon R5 M200 Series
— AMD Radeon R7 M200 Series
— AMD Radeon HD 8000M Series
Known Issues:
— Graphical corruption observed while running Sandra subtest bandwidth
— Adobe Premiere Pro 2014 application hang observed
— Multi-GPUs not supported on OpenCL 2.
— CPU Conformance not supported on OpenCL 2.0
It is highly recommended to always use the most recent driver version available.
Try to set a system restore point before installing a device driver. This will help if you installed an incorrect or mismatched driver. Problems can arise when your hardware device is too old or not supported any longer.
Незамеченной на хабре прошла новость о появлении OpenCL 2.0 драйверов от AMD и Intel.
Многим кажется, что подобный API просто очередной маркетинговый buzzword. Отчасти это так, потому что почти все современные аппаратные продукты выходят с пунктом «OpenCL» в списке поддерживаемых технологий и рекламе: последние CPU, GPU, APU (CPU+GPU), FPGA, CPU+FPGA. И многим из области разработки enterprise ПО хочется откреститься от этих «модных» названий, но и это скоро станет невозможно стараниями Oracle и AMD.
Массовый параллелизм аппаратного обеспечения уже давно присутствует в серверах, пресональных компьютерах, телефонах и планшетах, специализированных аппаратных ускорителях. OpenCL в области FPGA рассматривается как способ упростить, удешевить и популяризовать разработку. При этом использование преимуществ, предоставляемых аппаратурой, пока требует от программиста использовать таких API как OpenCL, CUDA, OpenMP. Но появляются попытки скрыть эту сложность от прикладных программистов, например Project Sumatra и ScalaCL.
OpenCL уже позволил оптимизировать производительность графических редакторов Photoshop CC 2014 и GIMP 2.8 RC 1. Рендереры LuxRender и Cycles из проекта Blender также выигрывают от применения этого API. И даже офисный пакет LibreOffice использует OpenCL. Для меня было очень неожиданно узнать из новостей, что мой бывший работодатель отличился в оптимизации VP9 видео энкодера с помощью OpenCL.
OpenCL 2.0 был утвержден как стандарт почти год назад. Этот стандарт поддерживает технологии доступные в современном аппаратном обеспечении: Shared Virtual Memory позволяет избегать лишнего/явного копирования данных между областями памяти, nested parallelism позволяет планировать выполнение kernel функций на устройстве без превлечения host программы уменьшая задержки, pipe как дополнительный способ обмена данными между kernel функциями а также расширенную поддержку atomic операций.
Мне больше всего греет душу, что теперь не нужны «костыли» для реализации atomic операций с floating point данными в OpenCL. Как не странно, эта проблема с atomic cmpxchg volatile приводила очень много людей в мой блог и такой же подход использовали другие разработчики до появления этой возможности в последнем стандарте.
Можно продолжать игнорировать преимущества предоставляемые аппаратным обеспечением… Или попытаться задействовать с большей эффективностью современное аппаратное обеспечение и сделать proof of concept для вашего проекта, если есть возможность параллелизовать алгоритм и объем вычислений в проекте достаточно большой.
А что вы думаете про перспективы использования OpenCL в корпоративном программном обеспечении или вашем проекте?
Представлен OpenCL 3.0: без прошлого нет будущего
Khronos Group представила предварительные спецификации стандарта вычислений общего назначения с использованием графических и иных процессоров — OpenCL 3.0. Консорциум отметил, что новая версия стандарта призвана обеспечить новые запрашиваемые разработчиками аппаратные функции, а также повысить гибкость развёртывания в целевых средах. Задачи во многом противоположные, так что без компромиссов не обойтись.
Последние 15 лет можно смело назвать эпохой роста вычислений общего назначения на ГП. Сегодня прогресс мощности ЦП сильно замедлился, а высокопараллельные расчёты становятся всё более общим явлением. Самые мощные в мире суперкомпьютеры теперь обязательно включают в себя ГП. В это время развивался и стандарт OpenCL — открытая среда программирования ГП и других ускорителей вычислений. Изначально созданная Apple и получившая широкое признание в отрасли, OpenCL была первой (и до сих пор наиболее последовательной) попыткой создания общего открытого API для параллельного программирования. OpenCL был адаптирован для всего: от энергоэффективных встраиваемых процессоров и DSP до графических ускорителей, потребляющих полкиловатта.
Сегодня OpenCL не только поддерживается на широком спектре оборудования, но и невероятно актуален даже для текущих событий: это API-интерфейс, используемый в проекте Folding@Home, самом мощном вычислительном кластере в мире, который интенсивно применяется для исследования вариантов борьбы с COVID-19. В то же время эволюция рынка параллельных вычислений не всегда шла в соответствии с планами для Khronos и рабочей группы OpenCL. На ПК стандарт всё ещё находится в подвешенном состоянии. Интерес NVIDIA сдерживается продвижением собственного весьма успешного API CUDA, драйверы AMD OpenCL оставляют желать лучшего, Apple отказывается от OpenCL и переходит на собственный API Metal. Единственным поставщиком, которого, кажется, всерьёз интересует OpenCL, выступает Intel. На мобильных устройствах OpenCL тоже никогда не был широко распространён, несмотря на поддержку большинством мобильных ГП и другими блоками параллельной обработки данных.
Поэтому Khronos решила сделать в некоторой степени большой шаг назад и перезапустить экосистему. OpenCL 3.0, последняя версия вычислительного API, делает выводы из прошлого и по сути превращает основной API в форк OpenCL 1.2. В результате всё, что разработано в рамках OpenCL 2.x, теперь стало необязательным: поставщики могут (и, как правило, будут) поддерживать эти функции, но оно больше не требуются для соответствия основной спецификации. Вместо того чтобы поддерживать каждую функцию OpenCL, независимо от её полезности или бесполезности для конкретной платформы теперь поставщики будут сами решать, какие продвинутые функции они хотели бы поддерживать помимо основных спецификаций, основанных на OpenCL 1.2.
Здесь нужно понять некоторую специфику. Дело в том, что Khronos не имеет собственной реальной власти и не может навязать технологические изменения, являясь отраслевым консорциумом, в который входит множество компаний. Проблема совместного подхода заключается в том, что он требует определенной степени согласия между основными участниками. Если не может быть достигнуто соглашение о будущем, проект не может двигаться вперёд. А если никто не доволен результатом, продукт может не получить достаточно широкой поддержки и умереть в зародыше. Нечто подобное произошло с OpenCL 2.2, который был выпущен ещё в 2017 году. Основным новшеством стала поддержка OpenCL C++ в качестве языка ядра — более современного и объектно-ориентированного, чем использовавшийся ранее C. Однако три года спустя никто не принялся активно продвигать OpenCL 2.2: ни NVIDIA, ни AMD, ни Intel, ни, конечно, ни один производитель однокристальных систем. В результате это вредит стандарту.
Что делать, если OpenCL 2.x в значительной степени игнорируется? Khronos и рабочая группа OpenCL нашли ответ, решив вернуться к тому, что хорошо работало, и это был OpenCL 1.2, представленный впервые в 2011 году и ставший последней версией OpenCL 1.x. По современным стандартам API очень прост: он основан на чистом C и не поддерживает такие вещи, как общая виртуальная память или язык промежуточного представления SPIR-V. Но в то же время это последняя версия API, не включающая в себя массу второстепенных и бесполезных для многих участников рынка возможностей. Это чистый, довольно низкоуровневый API для параллельных вычислений во всём спектре: от мобильных решений до самых мощных видеокарт.
В конечном итоге рабочая группа OpenCL смогла договориться о том, что OpenCL 1.2 должен стать базовой спецификацией OpenCL 3.0 — всё остальное, несмотря на полезность для определённых задач, становится необязательным. Ранее жёсткая, монолитная природа стандарта одновременно препятствовала его развитию. Если поставщика удовлетворял OpenCL 1.2, но при этом ему хотелось реализовать пару дополнительных функций из OpenCL 2.1, то приходилось реализовать всю базовую спецификацию 2.1. В OpenCL 1.x / 2.x не было механизма частичного соответствия — только всё или ничего, и ряд компаний выбрали второе.
Теперь OpenCL 3.0 специально структурирован так, чтобы поставщики могли использовать только те части, которые им нужны, не пытаясь поддерживать всё остальное. Теперь ядром является OpenCL 1.2 с поддержкой запросов дополнительных функций, а также некоторыми дополнениями, призванными обеспечить совместимость. Все функции OpenCL 2.x, а также новые функции OpenCL 3.0, являются необязательными, позволяя поставщикам платформ самим решать, какие именно дополнительные возможности им нужны, и нужны ли вообще.
Например, производитель однокристальных систем для смартфонов может обеспечить OpenCL 1.2, и затем использовать несколько новых функций вроде асинхронных расширений DMA или разделяемой виртуальной памяти. В то же время крупный производитель видеокарт может поддержать бо́льшую часть функций OpenCL 2.x, но исключить поддержку разделяемой виртуальной памяти, что малополезно для дискретного ускорителя. В конечном счёте OpenCL 3.0 даёт поставщикам платформ возможность выбирать те функции, которые необходимы именно им, по сути, приспосабливая OpenCL к конкретным задачам.
Это очень похоже на подход Khronos к Vulkan, который оказался гораздо более успешным API в последние годы. Предоставление поставщикам некоторой гибкости в реализации функций API позволило Vulkan распространиться как на мобильных устройствах, так и на настольных ПК. Подобный успех хотела бы повторить и рабочая группа OpenCL.
В конечном счёте, как считает Khronos, последние годы развития OpenCL показали, что сложно сделать стандарт угодным сразу всем, сохранив его абсолютную монолитность. У производителей SoC нужды одни, у ЦП со встроенной графикой — другие, у дискретных видеокарт — третьи. А ведь есть ещё такие вещи, как FPGA и другие более экзотические варианты использования OpenCL. Таким образом, необходимо уйти от монолитности ради высокой адаптируемости к самому широкому спектру устройств и сред.
Несмотря на значительные изменения в философии разработки, OpenCL 3.0 создан так, чтобы оставаться обратно совместимым и логичным. Для разработчиков и пользователей благодаря ядру OpenCL 1.2 приложения 1.2 будут работать без изменений на любом устройстве OpenCL 3.0. В то же время приложения для OpenCL 2.x тоже будут работать без изменений на устройствах с OpenCL 3.0, если эти устройства поддерживают соответствующие функции 2.x. То есть на ПК уже созданное с применением OpenCL 2.1 ПО будет продолжать работать, а, например, на смартфонах — нет. Драйверы OpenCL 1.2 и 2.x действительно нуждаются в некоторых изменениях для соответствия требованиям 3. x, но в основном это касается поддержки запросов новых функций OpenCL. Таким образом, производители смогут выпустить драйверы 3.0 довольно быстро.
В дальнейшем разработчикам приложений предстоит правильно использовать функциональные запросы. Поскольку возможности OpenCL 2.x теперь необязательны, всем приложениям, задействующим дополнительные возможности 2.x/3.0, настоятельно рекомендуется использовать запросы функций, чтобы убедиться в наличии их аппаратной поддержки. Поэтому разработчикам приложений OpenCL 2.x рекомендуется обновить своё ПО для выполнения запросов функциональности.
OpenCL 3.0, помимо взгляда назад, делает и шаги вперёд. Главными среди них являются асинхронные расширения DMA, которые должны стать наиболее интересны тем поставщикам платформ, которые до сих пор придерживают OpenCL 1.2. Эта функция позволяет выполнять транзакции DMA одновременно с вычислительными ядрами, в отличие от синхронных операций, которые обычно могут исполняться только между другими операциями вычислительного ядра. Эта особенность примечательна тем, что позволяет передавать сложные структуры памяти, которые являются более продвинутыми, чем простые линейные. Наиболее это полезно для изображений и подобных данных, которые изначально являются 2D/3D структурами.
OpenCL 3.0 также вводит поддержку языка SPIR-V 1.3 (последняя версия SPIR-V — 1.5). Именно версия 1.3 на данный момент является частью спецификации Vulkan 1.1, что должно играть важную роль в улучшении взаимодействия между Vulkan и OpenCL, делая последний более эффективным в графических задачах.
Впрочем, стоит помнить, что OpenCL 3.0 всё ещё является предварительным стандартом и перед утверждением передаётся на обсуждение и знакомство разработчикам и широкой общественности. Впрочем, Khronos надеется, что уже через несколько месяцев они смогут получить ратификацию стандарта.
Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
AMD Opencl Platform Not Found Claymore
Эта ошибка означает то, что майнер не видит видеокарты в системе.
Почему он не видит карты, ведь они есть?
Здесь могут быть две причины:
- Проблемы с драйвером
- Аппаратные проблемы
- Старая версия программы
Рассмотрим обе причины
Проблемы с драйверами
Очень часто при автоматическом обновлении Windows повреждаются драйвера видеокарт. Не будем вдаваться в подробности почему так происходит, опишем решение:
- Удалить полностью старые драйвера и их компоненты через Display Driver Unistaller
- Скачать с официального сайта нужную версию драйвера и установить ее
Используйте программу Display Driver Uninstaller что бы полностью удалить все компоненты старых драйверов их системы.
Скачать с официального сайта.
Аппаратные проблемы
Чаще всего это проблемы с райзерами. И очень часто помогает просто переставить их местами при выключенной системе.
Вынуть из материнской платы PCI-e контакт и поменять местами с другим райзером.
Если не помогло, то возможно проблема не в райзерах и нужно тестировать оборудование. Эта статья поможет найти ошибки.
Старая версия программы
Если у Вас устаревшая версия программы – скачайте самую свежую. В ней исправлены все ошибки и недочеты.
Последняя версия — v15.0 MD5: 8A710D577798BF347FDB2C8A45129941 *Claymore’s Dual Ethereum AMD+NVIDIA GPU Miner v15.0 — Windows.zip (Скачать для Linux)
Проект Claymore представляет самые последние версии программного обеспечения (исправляет все ошибки и баги предыдущих версий)! Поэтому если у Вас старая версия, мы настоятельно советуем скачать последнюю версию Claymore’s по ссылкам ниже, так как с каждым выходом новой версии добыча Эфира становится выгоднее!
Последняя версия — v15.![](/800/600/https/images2.imgbox.com/98/f2/aPvmefw8_o.png)
Файл Opencl.dll отсутствует в Windows 10
Когда вы запускаете игру или программу в Windows 10, то можете столкнуться с ошибкой «Opencl.dll отсутствует, поврежден или найден». Так как файл Opencl.dll связан с обработкой графики, вы можете обнаружить ошибку каждый раз после обновления драйверов как Nvidia или AMD. Это связано с тем, что установщик драйвера производителя видеокарты автоматически перезаписывает существующий файл opencl.dll, своим собственным. Ошибка может возникать когда сам файл opencl.dll отсутствует в системе Windows 10/7 или поврежден. Не рекомендую скачивать файл Opencl.dll со сторонних источников, так как в большей степени он может оказаться вирусом. В этой инструкции о том, как устранить ошибку, когда файл Opencl.dll отсутствует, не найден или поврежден. Начну с более легких соспобов, заканчивая радикальными методами.
1. Проверка поврежденного Opencl.dll файла
Во всех версиях Windows существует встроенный инструмент по проверки и восстановлению системных файлов. Запустите командную строку от имени администратора и введите команды ниже, дожидаясь окончание процесса после каждой.
sfc /scannow
DISM /ONLINE /CLEANUP-IMAGE /RESTOREHEALTH
Если у вас будет написано, что восстановление не удалось, то файл логов сканирования находится по пути C:\Windows\Logs\CBS\CBS.log. Вы его можете прикрепить в комментарии, я посмотрю.
2. Восстановление из образа
Если выше не помог способ, то восстановим из образа ISO. Microsoft поставляет свой собственный SysWOW64\opencl.dll через жесткую ссылку WinSxS, но драйверы NVIDIA могут перезаписывать этот файл. Выполните ниже три пункта:
- Смонтируйте ISO образ на флешку или виртуальный диск с Windows 10.
Dism /Online /Cleanup-Image /RestoreHealth /Source:esd:D:sourcesinstall.
esd1WindowsWinSxSwow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22
sfc /scannow
3. Драйвер видеокарты
Нужно удалить драйвера видеокарты и установить последнюю версию скачав с сайта производителя видеокарты. Воспользуйтесь руководством, как полностью удалить драйвера видеокарты Nvidia, AMD, Intel. После удаления драйвера, зайдите на сайт производителя, скачайте последнюю версию.
4. Где скачать Opencl.dll и куда кидать?
Не скачивайте файл Opencl.dll со сторонних источников. Вы его можете взять на втором компьютере или ноутбуке, это будет безопаснее. Можете попросить, чтобы друг скинул, при условии, что у него компьютер в безопасном состоянии и вы в этом уверены. Файл Opencl.dll находится по двум путям:
- C:\Windows\System32
- C:\Windows\SysWOW64
Загрузка комментариев
У новых видеокарт AMD Radeon действительно проблемы с драйверами. И это не сказки фанатов Nvidia
Истории о плохих драйверах видеокарт AMD Radeon ходят по миру уже очень давно. И пусть зачастую это лишь следствие предвзятости или интерполяции своего собственного опыта на всю продукцию компании, часть правды в этом есть.
Но сейчас мы затронем тему не всех драйверов AMD, а лишь проблемы ПО у видеокарт Radeon RX 5700. Эти адаптеры вышли более полугода назад, но до сих пор действительно испытывают проблемы с драйверами, которые сама AMD официально признала.
Источник, столкнувшись с многочисленными отзывами на этот счёт, решил провести опрос на своём канале в YouTube и набрал почти 50 000 голосов.
Как видим, среди проголосовавших владельцев карт AMD почти половина встречалась с теми или иными проблемами с драйверами. Уточним, в данном случае подразумевались проблемы с теми видеокартами, которыми опрашиваемые пользуются сейчас. У Nvidia менее трети пользователей ответили на вопрос положительно.
В опросе нет выбора поколений видеокарт, но источник отмечает, что в комментариях очень многие пишут именно о линейке Radeon RX 5700.
При этом автор материала отмечает, что, во-первых, сам является владельцем такого адаптера, во-вторых, в его семье несколько ПК с такими видеокартами. Кроме того, такие видеокарты не раз проходили тестирования на сайте TechSpot, который и опубликовал данную статью. Однако при всём при этом наши коллеги, а также члены семьи автора лишь пару раз за четыре-пять месяцев сталкивались с какими-либо проблемами с ПО данных 3D-карт. Впрочем, опрос намекает на то, что им просто повезло.
Также не в пользу AMD говорит и другой факт. Автор опросил нескольких продавцов компьютерной техники, и те рассказали, что карты Radeon RX 5700 весьма часто приносят с жалобами, но проверка не выявляет никаких проблем, а это значит, что они тоже связаны с ПО.
Как итог, проблема действительно есть, и она достаточно велика, хотя неясно, как часто те или иные пользователи сталкиваются с какими-то её проявлениями. Также пока неясно, затрагивает ли она младшие модели RX 5600 XT и RX 5500 XT.
OpenCL | blog.lexa.ru
Давно копил в себеВот есть такая ViennaCL, пакет линейной алгебры для «вычислительных ускорителей» (приходится писать так потому что Xeon Phi). На днях вышла версия 1.4.1 и про нее написано:
…and features a GEMM kernel reaching more than 1.3 TFLOPs on an AMD HD7970.Я призадумался, как такое может быть, ведь HD7970 — это чуть меньше терафлопса на стандартных клоках, ну гигагерц-edition, но 1.3TFLOPs означает, что разогнали на ~35% (верю с трудом) и использовали на 100% (вовсе не верю).
Начал разбираться. Нашел вот это:
Our sample HD7970 reaches over 1.3 TFLOPs in single precision and 200 GFLOPs in double precision.Теперь другое странно: на двух HD6990 (т.е. 4 чипа предыдущего поколения) лично добивался 1.
![](/800/600/https/oclab.ru/wp-content/uploads/2018/07/Capture.jpg)
Да, то что я мучал полтора года назад — это было написано бодрыми немцами на CAL/IL, ViennaCL — OpenCL, но не должно же быть ТАКОЙ разницы, больше чем в три раза по эффективности?
Если посмотреть на Anandtech-овские тесты Titan GTX, то там для DGEMM приведена цифирка: HD7970 — 689 GFLOP/s и референс на ‘Matsumoto et al’. Я поискал и нашел вот эту вот статью (и только потом увидел ссылку на нее прямо у Ананда), из которой получается что 689 GFLOPs — это производительность APPML, а этот самый Мацумото получил over 800 (т.е. вполне разумные ~80% от теоретической, что для одночиповой системы похоже на правду для GEMM).
Анандтеху — незачет (потому что из всех возможных цифирок конкурента — взяли самую маленькую), но про ViennaCL остаюсь в еще более тягостном недоумении, если библиотека от вендора (APPML) дает результаты вдвое выше, чем у Vienna, то чем они там гордятся то?
Еще большая катастрофа происходит с OpenCL-бенчмарками на сильно разной архитектуре (AMD/NVidia).
Вот, к примеру, Luxmark Database.
[Руководство] Начало работы OpenCL с Radeon RX 5700xt (для Folding @ Home): Fedora
Привет, друзья Fedora,
Я просто хотел написать сообщение о моем опыте использования OpenCL на 5700xt в надежде, что это будет полезно для других — я не нашел недавнего руководства для этого в Fedora.
Основная причина, по которой я хотел использовать OpenCL, — это Folding @ Home (отличный проект, проверьте его, если вы хотите пожертвовать ресурсы ЦП / ГП на исследования болезней, включая COVID-19).Похоже, что возможности OpenCL драйверов amdgpu с открытым исходным кодом (через mesa-libOpenCL) ограничены, и ни F @ H, ни Blender у меня не работали должным образом, используя его. Я читал в другом месте, что мне пришлось бы использовать драйвер amdgpu-pro от AMD, чтобы получить надлежащую поддержку OpenCL. Я не хотел полностью переключаться на проприетарный драйвер, поскольку драйвер в ядре является стабильным и производительным, поэтому я решил сделать гибридную настройку, в которой я продолжал использовать драйвер amdgpu с открытым исходным кодом для целей отображения / opengl и использовал OpenCL библиотеки из драйвера amdgpu-pro, чтобы разрешить F @ H и другим приложениям использовать графический процессор для вычислений.Рад сообщить, что работает безупречно.
Вот шаги, которые я использовал для установки:
Загрузите пакет Radeon Software для Linux отсюда. Выберите версию для RHEL x86 64-bit / RHEL 8.1. На момент написания этой статьи номер ревизии / версии драйвера был 19.50.
Распакуйте пакет в рабочий каталог.
Установите следующие пакеты:
amdgpu-core
amdgpu-pro-core
libdrm-amdgpu
libdrm-amdgpu-common
libopencl-amdgpu-pro
opencl-amdgpu-pro-comgr
opencl-amdgpu-pro-icd
Я использовал следующую командную строку для их установки (из рабочего каталога верхнего уровня):
sudo dnf install RPMS / x86_64 / opencl-amdgpu-pro-icd-19.50-967956.el8.x86_64.rpm RPMS / x86_64 / opencl-amdgpu-pro-comgr-19.50-967956.el8.x86_64.rpm RPMS / noarch / amdgpu-pro-core-19.50-967956.el8.noarch.rpm RPMS /noarch/amdgpu-core-19.50-967956.el8.noarch.rpm RPMS / x86_64 / libopencl-amdgpu-pro-19.50-967956.el8.x86_64.rpm RPMS / x86_64 / libdrm-amdgpu-2.4.99-967956.el8 .x86_64.rpm RPMS / noarch / libdrm-amdgpu-common-1.0.0-967956.el8.noarch.rpm
Это должно быть установлено без ошибок зависимостей. Вам не нужно беспокоиться о поломке вашей системы, поскольку при этом добавляются только некоторые библиотеки под / opt / amdgpu *
и некоторые файлы конфигурации под / etc / OpenCL / vendors
, а существующий драйвер дисплея amdgpu остается нетронутым.
/ opt / amdgpu-pro / lib64
/ opt / amdgpu-pro / lib
Чтобы применить изменения
ld.so.conf.d /
в работающей системе, запуститеsudo ldconfig
. В качестве альтернативы вы можете просто перезагрузить систему.На этом этапе ваша установка OpenCL должна работать. Вы можете проверить это с помощью команды
Clinfo
(установите с помощьюdnf install Clinfo
, если у вас ее нет). ЗапускClinfo -l
должен выглядеть примерно так:
Platform # 0: AMD Accelerated Parallel Processing
`- Устройство # 0: gfx1010
Платформа # 1: переносимый язык вычислений
`- Устройство # 0: pthread-AMD Ryzen 9 3950X 16-ядерный процессор
Если вы видите платформу AMD Accelerated Parallel Processing, и если у вас есть устройство, указанное под ней, вы золотой. gfx1010
— это код устройства для 5700xt, вы увидите другой код для другой карты (я тестировал эти шаги для работы с Vega 64). На этом этапе вы можете добавить новый слот для графического процессора в клиент Folding @ Home, и он должен иметь возможность распознавать ваш графический процессор и правильно складывать (для меня это так!). С помощью этой настройки я также тестировал, что Blender может использовать графический процессор для рендеринга с помощью движка Cycles.
Дайте мне знать, если у вас возникнут вопросы / отзывы. Если это руководство было полезно, я могу поделиться более подробной информацией о моей настройке (например, настройка пользовательской кривой вентилятора для вентилятора графического процессора, настройка параметров мощности и т. Д.).
Ура!
Как включить поддержку Intel OpenCL в Windows при установленном графическом драйвере AMD Radeon
В системе Windows 10 с графическим процессором AMD Radeon и графическим процессором Intel (настольным или портативным) с графическими драйверами, установленными для обоих графических процессоров, я уверен, вы увидите, что OpenCL ограничен только графическим процессором AMD. Если вы выполните поиск файлов, связанных с Intel OpenCL, с помощью проводника или Regedit, вы быстро обнаружите, что все файлы драйверов OpenCL находятся там. Так почему же при наличии графического процессора AMD Radeon отключена поддержка Intel OpenCL? Извините, я не знаю ответа.Наверное, пикантная история с драйверами (AMD?). Но вот способ включить поддержку Intel OpenCL в 32-битной и 64-битной Windows с помощью простой настройки реестра.
Перед настройкой реестра вот поддержка OpenCL в моей тестовой системе:
Тестовая система
— ЦП: Intel Core i7-8700K + UHD Graphics 630 + драйвер Intel v6444
— MSI Radeon RX 470 + Adrenalin 18.12.3
— 64-разрядная версия Windows 10 v1809
Поддержка OpenCL
GPU Caps Viewer — это 32-разрядное приложение.Давайте посмотрим на ту же поддержку с 64-битным приложением, как прототип грядущего GPU Shark 2:
Не лучше.
Вот настройка для включения поддержки OpenCL для процессоров Intel. OpenCL ICD (устанавливаемый клиентский драйвер, OpenCL.dll, поставляемый с графическим драйвером) пытается загрузить все реализации OpenCL, описанные в ключе HKEY_LOCAL_MACHINE \ SOFTWARE \ Khronos \ OpenCL \ Vendors (64-битное приложение на Win64 или 32-битном app на WIn32) реестра.Для 32-битных приложений в 64-битной Windows ключ: KEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Khronos \ OpenCL \ Vendors.
В этом разделе перечислены все реализации OpenCL (дополнительные сведения см. В расширении OpenCL cl_khr_icd). В моей тестовой системе первый ключ отсутствовал, а второй ключ присутствовал, но со значением, которое не сработало…
Вот правильные значения для обоих ключей. Эти значения правильно активировали OpenCL для ЦП / графических процессоров Intel в моей тестовой системе, когда драйвер AMD Adrenalin 18.12.3 уже был установлен.
64-приложение на Win64 или 32-разрядное приложение на Win32
В разделе HKEY_LOCAL_MACHINE \ SOFTWARE \ Khronos \ OpenCL \ Vendors создайте значение DWORD со следующим именем:
C: \ Windows \ System32 \ DriverStore \ FileRepository \ iigd_dch. inf_amd64_f02a6686365638a8 \ IntelOpenCL64.dll
Я нашел этот путь в реестре (ищите значения IntelOpenCL_x64_CpuRuntime или IntelOpenCL_x32_CpuRuntime):
32-разрядное приложение на Win64
В разделе HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Khronos \ OpenCL \ Vendors создайте значение DWORD со следующим именем:
C: \ Windows \ System32 \ DriverStore \ FileRepository \ iigd_dch.inf_amd64_f02a6686365638a8 \ IntelOpenCL32.dll
После создания этих значений наконец появилась поддержка OpenCL для ЦП и ГП Intel:
Примечание 1 : в системе без графического процессора AMD эти настройки бесполезны, поскольку поддержка Intel OpenCL правильно включена после установки драйвера Intel.
Примечание 2 : в системе с NVIDIA GPU (с GeForce 417.35) + Intel GPU (драйвер v6444) эти настройки также бесполезны, потому что поддержка Intel OpenCL включена правильно.Более того, ключ реестра OpenCL (Khronos \ OpenCL \ Vendors) пуст…
Как включить поддержку OpenCL на платформах NVIDIA и AMD
Первые версии реализаций OpenCL теперь доступны для платформ NVIDIA и AMD (платформа… это термин, который вы часто встретите в OpenCL). Вот небольшое руководство по включению OpenCL на оборудовании AMD и NVIDIA под Windows.
Включение OpenCL на платформе NVIDIA
На платформе NVIDIA OpenCL поставляется с последней версией R195.39 или R195.62 WHQL. R195.39 — первый драйвер, предлагающий общедоступную поддержку OpenCL. OpenCL.dll, который поставляется с R195.38, на самом деле является интерфейсом Khronos OpenCL, а реальная реализация OpenCL скрыта в некоторых файлах nvcuda … В любом случае установки R195.39 / R 195.62 достаточно, чтобы OpenCL был в вашей системе. После установки драйвера запустите GPU Caps Viewer 1.8.0, и вы должны увидеть что-то вроде этого:
Все GeForce 8 и выше являются устройствами с поддержкой OpenCL.
![](/800/600/https/i.ibb.co/Ttqb9Sn/open-CL-info.png)
Включение OpenCL на платформе AMD
А вот и мы, с AMD это сложнее всего! Самое главное, чтобы ваша система была чистой от остатков драйверов дисплея NVIDIA.Если, как и я, в вашей системе установлены драйверы ATI и NVIDIA, кодовый путь графического процессора AMD OpenCL работать не будет. Только путь кода ЦП будет в порядке. Да, друзья мои, AMD предоставляет OpenCL с поддержкой CPU и GPU. Очень круто. Чтобы убедиться, что ваша система чистая, просто запустите программу очистки драйверов Guru3D, чтобы удалить остатки ForceWare.
В некоторых случаях этого недостаточно, и свежая установка Windows может быть решением (это то, что я сделал для Catalyst 9.12… 🙁
Теперь у вас чистая система, и вам нужно установить последнюю версию Catalyst 9.12 исправление, которое включает поддержку OpenCL. На самом деле Cat 9.12 не включает автономную поддержку OpenCL: вы должны установить ATI Stream v2 beta4.
После установки Catalyst 9.12 необходимо установить SDK ATI Stream beta4. После этого у вас должна быть поддержка OpenCL GPU + CPU. Хотите убедиться? Запустите GPU Caps Viewer 1.8.0, и вы должны увидеть что-то вроде этого:
Судя по моим тестам, в Windows Vista графический процессор OpenCL поддерживается Radeon HD 3000 (по крайней мере, HD 3000 определяется как устройство OpenCL, но мне не удалось запустить демонстрацию из-за ошибки связывания), Radeon HD 4000 ( Я успешно протестировал HD 4850) и серию HD 5000 (HD 5770 и HD 5870).
Драйвер AMD OpenCL: 1) обнаруживает процессор Intel 2) перечисляет один и тот же тип графического процессора с другой версией OpenCL
Конфигурация моей рабочей станции:
- Intel (R) Xeon (R) CPU E5-2609 v2 @ 2,50 ГГц (x2)
- AMD FirePro W9100 (x2)
Операционная система:
- Windows Server 2012 R2 стандартный
Я использую демонстрацию OpenCL lwjgl (ссылка) для перечисления платформ и устройств.
Задача 1)
После установки драйверов AMD на мою рабочую станцию AMD Accelerated Parallel Processing список платформ Intel (R) Xeon (R) CPU E5-2609 v2 @ 2.50GHz как устройство. (3-е устройство указано для платформы AMD)
Я тестировал один и тот же код для драйверов AMD и Intel OpenCL, и собственная реализация Intel была намного быстрее для своего собственного оборудования. ( ничего удивительного )
В любом случае я не хочу, чтобы устройство Intel слушалось под платформой AMD.
Задача 2)
Мой 2 идентичных AMD FirePro W9100 (устройства 1 и 2 на платформе AMD) указаны с разным уровнем поддержки OpenCL .
Что может вызвать эту проблему и, что более важно, как я могу заставить мою вторую карту использовать драйвер OpenCL 2.0?
Результаты демонстрации OpenCL:
НОВАЯ ПЛАТФОРМА: [0x7FFE51B57B60]
CL_PLATFORM_PROFILE = FULL_PROFILE
CL_PLATFORM_VERSION = OpenCL 2.0 AMD-APP (1642,5)
CL_PLATFORM_NAME = Ускоренная параллельная обработка AMD
CL_PLATFORM_VENDOR = Advanced Micro Devices, Inc.
CL_PLATFORM_EXTENSIONS = cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_offline_devices
CL_PLATFORM_ICD_SUFFIX_KHR = AMD
** НОВОЕ УСТРОЙСТВО: [0x1087BD0]
OpenCL 2.0 - Расширения: cl_amd_device_attribute_query cl_amd_fp64 cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_amd_printf cl_amd_vec3 cl_ext_atomic_counters_32 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_fp64 cl_khr_gl_event cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_image2d_from_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir
CL_DEVICE_TYPE = 4
CL_DEVICE_VENDOR_ID = 4098
CL_DEVICE_MAX_COMPUTE_UNITS = 44
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = 3
CL_DEVICE_MAX_WORK_GROUP_SIZE = 256
CL_DEVICE_MAX_CLOCK_FREQUENCY = 930
CL_DEVICE_ADDRESS_BITS = 64
CL_DEVICE_AVAILABLE = истина
CL_DEVICE_COMPILER_AVAILABLE = истина
CL_DEVICE_NAME = Гавайи
CL_DEVICE_VENDOR = Advanced Micro Devices, Inc.
CL_DRIVER_VERSION = 1642,5 (ВМ)
CL_DEVICE_PROFILE = FULL_PROFILE
CL_DEVICE_VERSION = OpenCL 2.0 AMD-APP (1642,5)
CL_DEVICE_EXTENSIONS = cl_khr_fp64 cl_amd_fp64 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_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buffer cl_khr_spir cl_khr_subgroups cl_khr_gl_event cl_khr_depth_images
CL_DEVICE_OPENCL_C_VERSION = OpenCL C 2.0
Суббуфер разрушен: 17348816
Буфер разрушен (2): 16864864
Буфер разрушен (1): 16864864
** НОВОЕ УСТРОЙСТВО: [0x10851E0]
OpenCL 1.2 - Расширения: cl_amd_device_attribute_query cl_amd_fp64 cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_amd_printf cl_amd_vec3 cl_ext_atomic_counters_32 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp64 cl_khr_gl_event cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_image2d_from_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir
CL_DEVICE_TYPE = 4
CL_DEVICE_VENDOR_ID = 4098
CL_DEVICE_MAX_COMPUTE_UNITS = 44
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = 3
CL_DEVICE_MAX_WORK_GROUP_SIZE = 256
CL_DEVICE_MAX_CLOCK_FREQUENCY = 930
CL_DEVICE_ADDRESS_BITS = 64
CL_DEVICE_AVAILABLE = истина
CL_DEVICE_COMPILER_AVAILABLE = истина
CL_DEVICE_NAME = Гавайи
CL_DEVICE_VENDOR = Advanced Micro Devices, Inc.CL_DRIVER_VERSION = 1642,5 (ВМ)
CL_DEVICE_PROFILE = FULL_PROFILE
CL_DEVICE_VERSION = OpenCL 1.2 AMD-APP (1642,5)
CL_DEVICE_EXTENSIONS = cl_khr_fp64 cl_amd_fp64 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_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_khr_image2d_from_buffer cl_khr_spir cl_khr_gl_event
CL_DEVICE_OPENCL_C_VERSION = OpenCL C 1.
2
Суббуфер разрушен: 17348816
Буфер разрушен (2): 16864864
Буфер разрушен (1): 16864864
** НОВОЕ УСТРОЙСТВО: [0x5DDFE790]
OpenCL 1.2 - Расширения: cl_amd_device_attribute_query cl_amd_fp64 cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_amd_printf cl_amd_vec3 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp64 cl_khr_gl_event cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir
CL_DEVICE_TYPE = 2
CL_DEVICE_VENDOR_ID = 4098
CL_DEVICE_MAX_COMPUTE_UNITS = 8
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = 3
CL_DEVICE_MAX_WORK_GROUP_SIZE = 1024
CL_DEVICE_MAX_CLOCK_FREQUENCY = 2500
CL_DEVICE_ADDRESS_BITS = 64
CL_DEVICE_AVAILABLE = истина
CL_DEVICE_COMPILER_AVAILABLE = истина
CL_DEVICE_NAME = Intel (R) Xeon (R) CPU E5-2609 v2 @ 2.50 ГГц
CL_DEVICE_VENDOR = ПодлинныйIntel
CL_DRIVER_VERSION = 1642,5 (sse2, avx)
CL_DEVICE_PROFILE = FULL_PROFILE
CL_DEVICE_VERSION = OpenCL 1.2 AMD-APP (1642,5)
CL_DEVICE_EXTENSIONS = cl_khr_fp64 cl_amd_fp64 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_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_device_fission cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_d3d10_sharing cl_khr_spir cl_khr_gl_event
CL_DEVICE_OPENCL_C_VERSION = OpenCL C 1.2
-ПЫТАЯСЬ ИСПОЛНИТЬ РОДНОЕ ЯДРО-
Аргумент KERNEL EXEC: 1337, должно быть 1337
Статус обратного вызова события: CL_COMPLETE
ПУСТОЕ РОДНОЕ ЯДРО СРЕДНЕЕ ВРЕМЯ ВЫПОЛНЕНИЯ: 28.8072us
Суббуфер разрушен: 17348816
Буфер разрушен (2): 16864864
Буфер разрушен (1): 16864864
-------------------------
НОВАЯ ПЛАТФОРМА: [0x5DB27010]
CL_PLATFORM_PROFILE = FULL_PROFILE
CL_PLATFORM_VERSION = OpenCL 1.
2
CL_PLATFORM_NAME = Intel (R) OpenCL
CL_PLATFORM_VENDOR = Корпорация Intel (R)
CL_PLATFORM_EXTENSIONS = cl_khr_icd 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_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64
CL_PLATFORM_ICD_SUFFIX_KHR = INTEL
** НОВОЕ УСТРОЙСТВО: [0x5DB1E8F0]
OpenCL 1.2 - Расширения: cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics_extended_atomics_khr_global_int32_extended_atomics_extended_atomics_khr_local_cl_khr_base_cl_khr_cl_dress_cl_khr_d_cl_cl_khr_d_cl_cl_hd_cl_khr_cd_cl_cl_khr_d_cl_cl_khr_d_cd_cl_cl_khr_d_cd_cl_cl_khr_d_cd_cl_hd
CL_DEVICE_TYPE = 2
CL_DEVICE_VENDOR_ID = 32902
CL_DEVICE_MAX_COMPUTE_UNITS = 8
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = 3
CL_DEVICE_MAX_WORK_GROUP_SIZE = 8192
CL_DEVICE_MAX_CLOCK_FREQUENCY = 2500
CL_DEVICE_ADDRESS_BITS = 64
CL_DEVICE_AVAILABLE = истина
CL_DEVICE_COMPILER_AVAILABLE = истина
CL_DEVICE_NAME = Intel (R) Xeon (R) CPU E5-2609 v2 @ 2.50 ГГц
CL_DEVICE_VENDOR = Корпорация Intel (R)
CL_DRIVER_VERSION = 5.0.0.57
CL_DEVICE_PROFILE = FULL_PROFILE
CL_DEVICE_VERSION = OpenCL 1.2 (сборка 57)
CL_DEVICE_EXTENSIONS = cl_khr_icd 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_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64
CL_DEVICE_OPENCL_C_VERSION = OpenCL C 1.2
-ПЫТАЯСЬ ИСПОЛНИТЬ РОДНОЕ ЯДРО-
Аргумент KERNEL EXEC: 1337, должно быть 1337
Статус обратного вызова события: CL_COMPLETE
ПУСТОЕ ИСХОДНОЕ ЯДРО СРЕДНЕЕ ВРЕМЯ ВЫПОЛНЕНИЯ: 9.5031us
Суббуфер разрушен: 1574991568
Буфер разрушен (2): 1563032880
Буфер разрушен (1): 1563032880
мес.
![](/800/600/https/otvet.imgsmail.ru/download/2336254_302a859149edfc4d4ae43f74d24fdf10_800.png)
Я прочитал эту ссылку — https://wiki.debian.org/ru/AtiHowTo и решите установить OpenCL.
драйвер r600g все еще должен загружать проприетарный микрокод в графический процессор для включения аппаратного ускорения. Эта прошивка обычно входит в ядро, но поставляется отдельно в Debian.
Итак, я установил прошивку:
# apt-show-versions firmware-linux-nonfree firmware-linux
firmware-linux-nonfree: обновлено все / sid 0.40
прошивка-linux: все / sid 0.40 обновлено
Затем я обновляю версию ядра:
uname -v
# 1 SMP PREEMPT RT Debian 3.12,8–1 (19 января 2014 г.)
и проверенные флаги ядра:
grep DRM_RADEON / boot / config - $ (uname -r)
CONFIG_DRM_RADEON = м
# CONFIG_DRM_RADEON_UMS не установлен
grep AGP / boot / config - $ (uname -r)
CONFIG_AGP = y
CONFIG_AGP_AMD64 = y
CONFIG_AGP_INTEL = y
CONFIG_AGP_SIS = y
CONFIG_AGP_VIA = y
Также я установил достаточно свежую версию xserver:
# apt-show-versions xorg
xorg: amd64 / sid 1: 7.7 + 5 обновлено
Я выбираю radeon в качестве драйвера:
Вы наверняка используете xserver-xorg-core wheezy, который не предоставить xorg-video-abi-6.0 больше, и radeonhd недоступен для более новый xorg-video-abi, потому что он был удален из Debian
# APT-шоу-версии xserver-xorg-video-radeon
xserver-xorg-video-radeon: amd64 / sid 1: обновление 7.3.0-1
Это дает мне работу OpenGL:
$ glxinfo | grep OpenGL
Строка поставщика OpenGL: X.Org
Строка рендерера OpenGL: Gallium 0.4 на AMD RV770
Строка версии основного профиля OpenGL: 3.1 (Core Profile) Mesa 10.1.0-devel (git-81144c0 saucy-oibaf-ppa + curaga)
Строка версии языка затенения основного профиля OpenGL: 1.
40
Флаги контекста основного профиля OpenGL: (нет)
Расширения основного профиля OpenGL:
Строка версии OpenGL: 3.0 Mesa 10.1.0-devel (git-81144c0 saucy-oibaf-ppa + curaga)
Строка версии языка затенения OpenGL: 1.30
Флаги контекста OpenGL: (нет)
Расширения OpenGL:
Я пытаюсь использовать приложение, работающее с OpenCL.
Эта программа работает нормально на CPU:
$ mono scallion / bin / Debug / scallion.exe параллакс
Готовим деликатесы из зеленого лука ...
Собираем 1 выкройку в 1 ведро.Использование ядра, оптимизированного из файла kernel.cl (Optimized4)
Использование размера рабочей группы 1
Компиляция ядра ... готово.
LoopIteration: 10 HashCount: 167,77MH Скорость: 7,8MH / s Время выполнения: 00: 00: 21
Прогнозировано: 19: 38: 20
Остановка и выключение ...
LoopIteration: 11 HashCount: 184,55MH Скорость: 7,8MH / s Время выполнения: 00: 00: 23
Прогноз: 19: 36: 58 инициализации: 2687 мс / 1 (2687 мс, 0,37 / с)
сгенерировать ключ: 153 мс / 6 (25,5 мс, 39,22 / с)
предварительное вычисление ЦП: 7 мс / 6 (1,17 мс, 857,14 / с)
всего без инициализации: 23706 мс / 1 (23706 мс, 0,04 / с)
установить буферы: 0 мс / 11 (0 мс, 0 / с)
буферы записи: 0 мс / 11 (0 мс, 0 / с)
прочитанные результаты: 23699 мс / 11 (2154.45 мс, 0,46 / с)
результаты проверки: 0 мс / 11 (0 мс, 0 / с)
7,78 миллиона хешей в секунду
Остановка и выключение ...
Но я не могу обнаружить графический процессор:
$ моно-лук / bin / Debug / scallion.exe
Использование: лук-шалот [ОПЦИИ] + регулярное выражение [регулярное выражение] +
Опции:
-l, --listdevices Выводит список устройств, которые можно использовать.
-d, --device = VALUE Задает устройство opencl, которое следует использовать.
В списке устройств нет GPU:
$ mono scallion / bin / Debug / зеленый лук.exe -l
Id: 0 Название: Intel (R) Core (TM) 2 Quad CPU Q9650 @ 3,00 ГГц
PreferredGroupSizeMultiple: 1 ComputeUnits: 4 Тактовая частота: 2000
MaxConstantBufferSize: 65536 MaxConstantArgs: 8 MaxMemAllocSize: 2147483648
Я не могу найти инструкции по настройке OpenCL:
apt-get установить libclc-r600
APT-шоу-версии libclc-r600 ocl-icd-libopencl1
libclc-r600: all / saucy 0 ~ git20140101-1 ~ gd ~ s uptodate
ocl-icd-libopencl1: обновлено amd64 / sid 2.
1.3-2
и после запуска приложения выдает ошибку:
~ / github.com / lachesis / зеленый лук $ mono ./scallion/bin/Debug/scallion.exe -l
Необработанное исключение:
System.InvalidOperationException: Код ошибки: '- 1001'
at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] в: 0
в scallion.CLDeviceInfo.GetPlatformIds () [0x00000] в: 0
в scallion.CLDeviceInfo.GetDeviceIds () [0x00000] в: 0
в scallion.CLRuntime.GetDevices () [0x00000] в: 0
в scallion.Program.ListDevices () [0x00000] в: 0
в scallion.Program.Main (System.String [] args) [0x00000] в: 0
[ОШИБКА] ФАТИЧЕСКОЕ НЕОБРАБОТАННОЕ ИСКЛЮЧЕНИЕ: System.InvalidOperationException:
Код ошибки: '- 1001'
at scallion.CLDeviceInfo.CheckError (Int32 err) [0x00000] в: 0
в scallion.CLDeviceInfo.GetPlatformIds () [0x00000] в: 0
в scallion.CLDeviceInfo.GetDeviceIds () [0x00000] в: 0
в scallion.CLRuntime.GetDevices () [0x00000] в: 0
в scallion.Program.ListDevices () [0x00000] в: 0
в scallion.Program.Main (System.String [] args) [0x00000] в: 0
Значения кода ошибки определены в opencl.h Похоже, ваша платформа настроена неправильно.Ошибка CL_PLATFORM_NOT_FOUND_KHR (-1001) из идентификаторов clGetPlatformID. Это потому, что у вас есть диспетчер, но нет реальных драйверов OpenCL ».
После
sudo apt-get install libopencl1-mesa
$ find / -iname «libMesaOpenCL.so *» 2> / dev / null
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1.0.0
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1
В конфигурационном файле должно быть
cat / etc / OpenCL / vendors / mesa.icd
libMesaOpenCL.so
Ошибка
фатальная ошибка: невозможно открыть файл '/usr/lib/clc/rv770-r600--.bc': нет такого файла или каталога
Как заставить это работать?
Загрузить графический драйвер AMD Catalyst OpenCL 2.0 14.
![](/800/600/https/i0.wp.com/www1.fcenter.ru/img/article/videocards/NVIDIA_GeForce_GTX_770_2Gb/201133.png)
Поддержка основных функций OpenCL 2.0:
— Общая виртуальная память — Крупнозернистая
— С1х атомика и упорядочение памяти
— Конвейеры
— Точность для математических встроенных собственных функций
— Переменные области действия программы
— Подгруппы
— Новые встроенные функции
— Общее адресное пространство
— Изображения
— Гибкий диапазон ND
— Динамический параллелизм
Семейство продуктов AMD для настольных ПК Совместимость:
— AMD Radeon R9 290 Series
— AMD Radeon R7 260 Series
— AMD Radeon R7 260 Series
— AMD Radeon HD 8000 Series
— AMD Radeon R7 250 Series
— AMD Radeon HD 7000 Series
— AMD Radeon R7 240 Series
Совместимость семейства продуктов AMD APU:
— AMD Radeon R7 Graphics
— A-Series -Series AMD Radeon R4 Graphics
— AMD Radeon R6 Graphics
A-Series — AMD Radeon R2 Graphics
A-Series AMD Radeon R5 Graphics
— AMD Radeon HD 8000D Series
— A-Series A Графика MD Radeon R3
— AMD Radeon HD 8000G Series
Семейство продуктов AMD Mobility Совместимость:
— AMD Radeon R9 M200 Series
— AMD Radeon R5 M200 Series
— AMD Radeon R7 M200 Series
— AMD Radeon HD 8000M Series
Известные проблемы:
— Графическое искажение наблюдается во время работы полосы пропускания субтеста Sandra
— Наблюдается зависание приложения Adobe Premiere Pro 2014
— Многопроцессорные графические процессоры не поддерживаются в OpenCL 2.0
— Соответствие ЦП не поддерживается в OpenCL 2.0
О драйверах графики:
При установке графического драйвера система может правильно распознавать набор микросхем и производителя карты, обновление видеодрайвера может привести к различным изменениям.
Он может улучшить общее графическое восприятие и производительность в играх или различных инженерных программных приложениях, включить поддержку новых разработанных технологий, добавить совместимость с новыми наборами микросхем GPU или решить различные проблемы, которые могли возникнуть.
Когда дело доходит до применения этого выпуска, шаги по установке должны быть легкими, поскольку каждый производитель старается максимально упростить их, чтобы каждый пользователь мог обновлять графический процессор самостоятельно и с минимальными рисками (тем не менее, проверьте если эта загрузка поддерживает ваш графический чипсет).
Поэтому получите пакет (при необходимости извлеките его), запустите установку, следуйте инструкциям на экране для полной и успешной установки и обязательно перезагрузите систему, чтобы изменения вступили в силу.
При этом загрузите драйвер, примените его в своей системе и наслаждайтесь недавно обновленной видеокартой. Более того, проверяйте наш веб-сайт как можно чаще, чтобы быть в курсе последних выпусков.
Настоятельно рекомендуется всегда использовать самую последнюю доступную версию драйвера.
Попробуйте установить точку восстановления системы перед установкой драйвера устройства. Это поможет, если вы установили неправильный или несоответствующий драйвер. Проблемы могут возникнуть, если ваше оборудование слишком старое или больше не поддерживается.
#! / Bin / bash | |
# Этот сценарий установит поддержку AMDGPU-PRO OpenCL и Vulkan. | |
# | |
# Для Ubuntu и его разновидности просто установите пакет с помощью этой команды | |
# в каталоге извлеченных драйверов instread. | |
# | |
# ./amdgpu-pro-install —opencl = legacy, pal —headless —no-dkms | |
# | |
# Для Arch Linux или Manjaro используйте opencl-amd в AUR instread.![]() | |
# | |
# Чтобы использовать драйвер amdvlk, запустите программу / игру с помощью этой команды: | |
# | |
# VK_ICD_FILENAMES = «/ opt / amdgpu-pro / etc / vulkan / icd.d / amd_icd64.json «game64 | |
# | |
# Если программа / игра 32-битная, используйте эту команду: | |
# | |
# VK_ICD_FILENAMES = «/ opt / amdgpu-pro / etc / vulkan / icd.d / amd_icd32.json» game32 | |
# | |
Префикс | = ‘amdgpu-pro’ |
# amdgpu-pro версия пакета | |
major = ’20 ‘ | |
минор = ’50 ‘ | |
build = ‘1232447’ | |
system = ‘ubuntu-20.04 ‘ | |
# libdrm-amdgpu-amdgpu1 версия | |
libdrmver = ‘2.4.100’ | |
libamd_comgrver = ‘1.9.0’ | |
shared32 = «/ opt / amdgpu-pro / lib / i386-linux-gnu» | |
shared64 = «/ opt / amdgpu-pro / lib / x86_64-linux-gnu» | |
ids = «/ opt / amdgpu / share / libdrm» | |
vk_icd = «/ opt / amdgpu-pro / etc / vulkan / icd.![]() | |
# убедитесь, что мы работаем с правами root. | |
, если [`whoami`! = Root]; затем | |
echo Запустите этот сценарий с помощью sudo | |
выход | |
fi | |
# проверка 64-битной архитектуры | |
, если [$ (uname -m)! = ‘X86_64’]; затем | |
echo Этот сценарий установки поддерживает только 64-разрядную версию Linux. | |
выход | |
fi | |
# скачать и распаковать драйверы | |
rm -r $ {префикс} — $ {major}. $ {Minor} — $ {build} — $ {system} &> / dev / null | |
, если [! -f ./${prefix}-${major}.$ {minor} — $ {build} — $ {system} .tar.xz]; затем | |
wget —referer https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-unified-linux-20-50 https://drivers.amd.com/drivers/linux/ $ {prefix} — $ {major}. $ {minor} — $ {build} — $ {system} .tar.xz | |
fi | |
tar xJf $ {prefix} — $ {major}.![]() | |
cd $ {prefix} — $ {major}.$ {minor} — $ {build} — $ {system} | |
echo Извлечение файлов драйвера AMDGPU-PRO OpenCL … | |
#ar x «../$ {prefix} — $ {major}. $ {Minor} — $ {build} — $ {system} / Clinfo-amdgpu-pro _ $ {major}. $ {Minor} — $ { build} _amd64.deb « | |
#tar xJf data.tar.xz | |
#ar x «../${prefix}-${major}.${minor}-${build}-${system}/clinfo-amdgpu-pro_${major}.$ {minor} — $ {build} _i386.deb « | |
#tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/comgr-amdgpu-pro_1.9.0-${build}_amd64.deb» | |
tar xJf data.tar.xz | |
#ar x «../${prefix}-${major}.${minor}-${build}-${system}/comgr-amdgpu-pro-dev_1.9.0-${build}_amd64.deb « | |
#tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/hip-rocr-amdgpu-pro_${major}.${minor}-$ {build} _amd64.deb « | |
tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/hsa-runtime-rocr-amdgpu_1.2.0-${build}_amd64.deb» | |
tar xJf data.![]() | |
#ar x «../${prefix}-${major}.${minor}-${build}-${system}/hsa-runtime-rocr-amdgpu-dev_1.2.0-${build}_amd64.deb « | |
#tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/hsakmt-roct-amdgpu_1.0.9-${build}_amd64.deb» | |
tar xJf data.tar.xz | |
#ar x «../${prefix}-${major}.${minor}-${build}-${system}/hsakmt-roct-amdgpu-dev_1.0.9 — $ {build} _amd64.deb « | |
#tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/libdrm-amdgpu-amdgpu1_${libdrmver}-${build}_amd64.deb» | |
tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/libdrm-amdgpu-amdgpu1_${libdrmver}-${build}_i386.deb» | |
tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/libdrm-amdgpu-common_1.0.0-${build}_all.deb» | |
tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/opencl-orca-amdgpu-pro-icd_${major}.${minor} — $ {build} _amd64.deb « | |
tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/opencl-orca-amdgpu-pro-icd_${major}.${minor}-${build} _i386.![]() | |
tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/opencl-rocr-amdgpu-pro_${major}.${minor}-$ {build} _amd64.deb « | |
tar xJf data.tar.xz | |
#ar x «../${prefix}-${major}.${minor}-${build}-${system}/opencl-rocr-amdgpu-pro-dev_${major}.$ {minor} — $ {build} _amd64.deb « | |
#tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/rocm-device-libs-amdgpu-pro_1.0.0-${build}_amd64. deb « | |
tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/vulkan-amdgpu-pro_${major}.${minor}-${build } _amd64.deb « | |
tar xJf data.tar.xz | |
ar x «../${prefix}-${major}.${minor}-${build}-${system}/vulkan-amdgpu-pro_${major}.${minor}-${build } _i386.deb « | |
tar xJf data.tar.xz | |
# Удалить целевой каталог | |
echo Удалить целевой каталог. | |
rm -r / opt / amdgpu &> / dev / null | |
rm -r / opt / amdgpu-pro &> / dev / null | |
# Создать целевой каталог | |
echo Создать целевой каталог.![]() | |
mkdir -p $ {ids} | |
mkdir -p $ {shared32} | |
mkdir -p $ {shared64} | |
mkdir -p $ {vk_icd} | |
echo Patch и установка драйвера AMDGPU-PRO OpenCL … | |
RM / и т. Д. / OpenCL / vendors / amdocl-orca64.icd | |
RM /etc/OpenCL/vendors/amdocl-orca32.icd | |
RM /etc/OpenCL/vendors/amdocl64.icd | |
# По некоторым причинам этот каталог не существует в какой-либо системе | |
, если [! -f / etc / OpenCL / vendors]; затем | |
echo Каталог / etc / OpenCL / vendors не существует | |
echo Создание его… | |
mkdir -p / и т.д. / OpenCL / вендоры | |
fi | |
ср ./etc/OpenCL/vendors/*.icd / etc / OpenCL / vendors | |
cp ./opt/amdgpu-pro/etc/vulkan/icd.d/*.json $ {vk_icd} | |
cp .![]() | |
pushd./ opt / amdgpu / lib / i386-linux-gnu &> / dev / null | |
rm «libdrm_amdgpu.so.1» | |
mv «libdrm_amdgpu.so.1.0.0» «libdrm_amdpro.so.1.0.0» | |
ln -s «libdrm_amdpro.so.1.0.0» «libdrm_amdpro.so.1» | |
mv «libdrm_amdpro.so.1.0.0» «$ {shared32}» | |
mv «libdrm_amdpro.so.1» «$ {shared32}» | |
popd &> / dev / null | |
pushd./ opt / amdgpu / lib / x86_64-linux-gnu &> / dev / null | |
rm «libdrm_amdgpu.so.1» | |
mv «libdrm_amdgpu.so.1.0.0» «libdrm_amdpro.so.1.0.0» | |
ln -s «libdrm_amdpro.so.1.0.0» «libdrm_amdpro.so.1» | |
mv «libdrm_amdpro.so.1.0.0» «$ {shared64}» | |
mv «libdrm_amdpro.so.1» «$ {shared64}» | |
popd &> / dev / null | |
pushd./ opt / amdgpu-pro / lib / i386-linux-gnu &> / dev / null | |
sed -i «s | libdrm_amdgpu | libdrm_amdpro | g» libamdocl-orca32.![]() | |
mv «libamdocl-orca32.so» «$ {shared32}» | |
mv «libamdocl12cl32.so» «$ {shared32}» | |
mv «amdvlk32.so» «$ {shared32}» | |
popd &> / dev / null | |
pushd./ opt / amdgpu-pro / lib / x86_64-linux-gnu &> / dev / null | |
rm «libamd_comgr.so» | |
sed -i «s | libdrm_amdgpu | libdrm_amdpro | g» libamdocl-orca64.so | |
mv «libamdocl-orca64.so» «$ {shared64}» | |
mv «libamdocl12cl64.so» «$ {shared64}» | |
mv «libamd_comgr.so. $ {Libamd_comgrver}» «$ {shared64}» | |
ln -s «libamd_comgr.итак. $ {libamd_comgrver} «» libamd_comgr.so « | |
mv «libamd_comgr.so» «$ {shared64}» | |
mv «libamdocl64.so» «$ {shared64}» | |
#mv «libcltrace.so» «$ {shared64}» | |
mv «amdvlk64.so» «$ {shared64}» | |
popd &> / dev / null | |
echo «# Поддержка AMDGPU-PRO OpenCL»> zz_amdgpu-pro_x86_64.conf | |
echo «/ opt / amdgpu-pro / lib / x86_64-linux-gnu» >> zz_amdgpu-pro_x86_64.![]() 2019. Все права защищены. Карта сайта |