Как установить AMD APP SDK в Kali Linux?

The Codeby — одна из сильнейших Red Team в RU сегменте. Команда профессионалов, специализирующаяся на аудите информационных систем и тестировании на проникновение.

Мы предлагаем: Аудит веб-сайта компании, Аудит внешнего периметра, Аудит веб-приложения, Аудит внутренней корпоративной сети, Проверка ИБ-грамотности сотрудников, Анализ кода ПО, Аудит Wi-Fi и СКУД, Выявление уязвимостей ПО серверов и рабочих станций, Пентест инфраструктуры методом черного ящика. Подробнее .

*Только для юрлиц

Эта инструкция из серии о том, Как установить GLRX, AMD APP SDK, CAL++ и Pyrit в Kali Linux. Идея в том, чтобы установить корректные драйвера в Kali Linux для вашей видеокарты и использовать комбинацию из CPU+GPU с программой Pyrit для увеличения скорости обработки данных. Практическим примером использования этой комбинации является «Взлом Wi-Fi пароля (WPA/WPA2), используя pyrit и cowpatty в Kali Linux».

Сама по себе установка AMD APP SDK в Kali Linux ничего не даёт. Это всего лишь промежуточный шаг для установки CAL++. Установка CAL++ тоже является всего лишь промежуточным шагом для установки Pyrit.

Для чего вся эта морока? Посмотрите на следующие два бенчмарка Pyrit. Первый — без подключённого CAL++, а второй с подключённым CAL++

31

41

В первом бенчмарке работает только процессор — i7, с турбобустами и прочими свистоперделками. Во втором бенчмарке подключается видеокарта — результат превышает первый в более чем 8 раз! Фактически, всю производительность в подобного рода вычислениях определяет графический процессор.

Если у вас более слабый процессор или более мощная видеокарта (моему ноуту уже несколько лет), а также если у вас настольный компьютер с полноценной видеокартой (а не ноут), то у вас выигрыш от подключения к вычислениям графического процессора будет в ещё большее число раз.

Читатели, пожалуйста, следуйте инструкциям из этой серии в следующем порядке:

  • Установка проприетарного драйвера AMD ATI fglrx
  • Как установить AMD APP SDK в Kali Linux?
  • Как установить CAL++ в Kali Linux?
  • Как установить Pyrit в Kali Linux?

AMD APP SDK Runtime — что это за программа и нужна ли она?

Amd app что это за программа?

Приветствую друзья! Сегодня моя задача — узнать максимум информации об AMD APP SDK Runtime, а также написать все простыми словами, чтобы было понятно каждому)) Судя по названию — возможно нужно для драйверов видеокарты. Ладно, поехали разбираться!

AMD APP SDK Runtime — что это такое?

Данный компонент необходим только разработчикам для создания программ, которые при помощи видеокарты производят вычисления.

Поэтому, при установке драйверов — с него можно снять галочку:

Учитывая, что он весит 90 мегов, то думаю реально стоит снять галочку.

Нашел еще одну версию: данный компонент это аналог CUDA (NVIDIA), простыми словами — нужно чтобы видеокартой считать математические операции, так, как это делает процессор (возможно нужно для майнинга). Инфа найдена на форуме Overclockers.

Также походу без этого компонента не будет пахать OpenCL. Что такое OpenCL? Это некая платформа (фреймворк) для написания программ, которые могут производить вычисления при помощи видеокарты и процессора. То есть примерно тоже самое, что я уже писал выше, а значит снова делаем вывод — вряд ли обычному юзеру данная штука нужна))

Кстати на заметку — чтобы видеокарта нормально конвертировала видео, нужно поставить AMD Media Codec Package.

Интересный момент. Как мы уже выяснили, при помощи данного компонента можно видеокартой производить вычисления. Именно поэтому, бывает так, что какой-то процесс грузит комп.. и если удалить компонент, то возможно что нагрузка исчезнет.. а самое интересное, знаете почему? Потому что могут работать вирусы, которые майнят на вашем ПК. А без компонента они этого делать не смогут))

AMD APP SDK Runtime — ошибка

Но бывает и другая ситуация — у вас может быть ошибка, связанна с данным компонентом, например:

Тогда нужно поступить так:

  1. Зажать Win + R, появится окошко Выполнить, вставляете туда команду appwiz.cpl, нажимаете ОК.
  2. Находим в списке софта AMD Calayst Install Manager, нажимаем правой кнопкой > Изменить.
  3. Появится окошко — нажимаем Далее.
  4. Доходим в общем до момента, где будет три выбора: Диспетчер удаления, Исправить диспетчер установки, Быстрое удаление. Вот здесь нужно выбрать первый вариант и нажать Далее.
  5. Потом выбрать Пользовательское (или Custom).
  6. Поставить галочку напротив AMD APP SDK Runtime и нажать Далее > Готово > выполнить перезагрузку (лучше именно сразу).

Что мы сделали? Этими действиями вы восстановите компонент, из-за которого появлялась ошибка. А потом уже, если это исправит и ошибки не будет — можно теоритически будет его таким же способом удалить, только галочку уже нужно будет снять.

Еще нашел важную инфу: если у вас выскакивает ошибка мол прекращена работа kdbsync.exe, то здесь тоже может помочь удаление этого компонента. Одному человеку реально помогло.

Заключение

  1. AMD APP SDK Runtime — компонент, который нужен в первую очередь разработчикам. Как я понимаю, основная функция компонента — использование мощностей видеокарты для математических вычислений (как это делает процессор).
  2. Может вызывать ошибку. Решение — переустановить драйвера, либо сам компонент. Или в крайнем случае полностью удалить драйвера AMD (например утилитой Display Driver Uninstaller), после скачать их с офф сайта и установить заново.

Надеюсь информация пригодилась. Удачи.

Geographical user distribution

Islamic Republic of Iran 13.19%
Germany 10.44%
United Kingdom 7.69%
United States 6.59%
Brazil 6.04%
Algeria 6.04%
Spain 3.85%
Russian Federation 3.85%
Turkey 3.3%
Indonesia 3.3%
  • Windows 7 (6.1)
  • Windows XP (5.1)
  • Windows Vista (6.0)
  • 10.0
  • Windows 8.1 (6.3)
  • Windows 8 (6.2)

Установка драйверов AMD в ОС ubuntu

Для установки драйверов amdgpu-pro 17.40 в терминале, открытом из папки с разархивированными файлами драйвера, выполняют команду:

При появлении ошибок доступа к amdgpu-pro-install нужно дать файлу необходимые права командой:

Кроме того, в дополнение к драйверам 17.40, желательно установить компонент ROCM командами:

Этот пакет является платформой для GPU Enabled HPC и UltraScale Computing.

Для установки более новых драйверов (18.0+) используется команда:

Если при установке драйверов возникают ошибки с правами доступа, то нужно попробовать предоставить права выполнения файлу amdgpu-pro-install как программы с помощью контекстного меню или командой:

Для установки в серверной версии системы 18.04 только средствами командной строки используют команды (для драйверов 19.30):

После процедуры стандартной установки драйверов для видеокарт amd нужно также инсталлировать дополнительные пакеты:

Этим, среди прочего, лечится ошибка WARNING: amdgpu dkms failed for running kernel mining.

После инсталляции драйверов нужно добавить пользователя в группу видео. Это осуществляется командой:

Проверка пользователей, включенных в группу video делается командой:

Проверить правильность устанвоки драйверов можно командами:

После этого нужно откорректировать загрузчик, где нужно включить поддержку больших страниц видеопамяти (режим compute), а также отключить загрузку драйвера radeon для видеокарт поколения CGN 2.

Выделение памяти

Для работы с памятью надо выделить ресурс. Согласно документации, ресурс может располагаться в локальной памяти (local memory = stream processor memory) и удаленной памяти (remote memory = system memory). Насколько я понял, remote memory является ничем иным, как оперативной памятью, тогда как local memory — память самой GPU.

Зачем нужна remote memory, если есть local memory? Во-первых, она нужна для разделения одной и той же памяти между несколькими GPU. То есть, remote memory можно выделить один раз и работать с ней из нескольких GPU. Во-вторых, не все GPU поддерживают прямое обращение к своей памяти (см. ниже «Получение прямого доступа к памяти»).

Ширина и высота выделяемого ресурса измеряется в элементах памяти.
Сам же элемент памяти описывается параметром memoryFormat:

Жаль, что 64-битные операции на старых видеокартах (не Evergreen) можно выполнять только с данными типа float…

Правило №4: формат элемента описывает лишь способ, которым GPU будет трактовать данные, лежащие в этом элементе. Физически элемент всегда занимает 16 байт памяти.

Это можно понять, если вспомнить, что в первой части мы описали ресурс следующим образом:

Правило №5: соблюдайте типы, которые вы объявляет в ядре и при выделении ресурса. При их несовпадении вы не сможете привязать ресурс к ядру.

Правило №6: для константной памяти тип элемента всегда должен быть типа float.

Почему так сделано, мне не ясно, так как все равно можно загружать из константной памяти целочисленные значения (что мы и делаем в примере).

Еще пара слов о флагах, которые необходимы при выделении памяти:

Со вторым флагом я никогда не работал, когда он дает преимущество, я не знаю. Да и судя по знаку вопроса в комментарии самих авторов, они тоже не в курсе (smile).
А вот первый флаг нужен для выделения глобального буфера(«g[]»).

Теперь применим теорию на практике. Помня о примере, описанном в предыдущей статье, зададимся еще и параметрами запуска ядра:

После того, как ресурсы уже не понадобятся, их надо будет освободить:

Что такое технология AMD APP?

Технология AMD APP — это набор продвинутых аппаратных и программных технологий, которые задействуют ядра графических процессоров AMD (GPU) для совместной работы с системными процессорами x86 (CPU) для гетерогенного выполнения, в результате чего многие приложения, не только графические, увеличивают свою производительность. Это позволяет лучше сбалансировать платформы, эффективнее использовать их вычислительные ресурсы по выполнению задач на недостижимой ранее скорости, а также даёт возможность разработчикам программного обеспечения ещё одну возможность оптимизировать их программы для AMD Accelerated Processing Units (APUs).

Читайте также:  Почему не включается монитор при запуске компьютера

Что такое AMD APP Software Development Kit?

The AMD APP Software Development Kit (SDK) — это полная платформа разработчиков от AMD, которая позволяет вам быстро и просто создавать приложения, способные использовать технологию AMD APP. SDK содержит примеры, документацию и другие материалы для быстрого старта с использованием OpenCL™, Bolt, or C++ AMP в ваших C/C++ программах или Aparapi для ваших Java приложений.

Как установить AMD APP SDK в Kali Linux 2

Amd app что это за программа?

Источник: http://www.blackmoreops.com/2013/11/22/install-amd-app-sdk-kali-linux/ (материал актуализирован)

Эта статья является частью цикла, в который входят следующие заметки:

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

Начнём с проверки, установлен ли модуль fglrx:

lsmod | grep fglrx

Вы должны получить что-то вроде этого:

# lsmod | grep fglrx fglrx 13303808 150 button 16384 1 fglrx

Если модуль не установлен, то переходите к инструкции «Как установить драйвер AMD Catalyst 15.7 (ATI fglrx) на Kali Linux 2».

Что такое технология AMD APP?

Технология AMD APP — это набор продвинутых аппаратных и программных технологий, которые задействуют ядра графических процессоров AMD (GPU) для совместной работы с системными процессорами x86 (CPU) для гетерогенного выполнения, в результате чего многие приложения, не только графические, увеличивают свою производительность. Это позволяет лучше сбалансировать платформы, эффективнее использовать их вычислительные ресурсы по выполнению задач на недостижимой ранее скорости, а также даёт возможность разработчикам программного обеспечения ещё одну возможность оптимизировать их программы для AMD Accelerated Processing Units (APUs).

Что такое AMD APP Software Development Kit?

The AMD APP Software Development Kit (SDK) — это полная платформа разработчиков от AMD, которая позволяет вам быстро и просто создавать приложения, способные использовать технологию AMD APP. SDK содержит примеры, документацию и другие материалы для быстрого старта с использованием OpenCL™, Bolt, or C++ AMP в ваших C/C++ программах или Aparapi для ваших Java приложений.

Чтобы узнать больше, посмотрите OpenCL™ Zone.

Загрузка AMD APP SDK 3.0

Загрузите AMD APP SDK 3.0 со страницы загрузки архивов AMD.

Я скачиваю AMD APP SDK 3.0 for 64-bit Linux.

Установка SDK

Процесс установки указан для конкретной версии SDK. Более того, предполагается, что скачивание произошло в папку /root/Загрузки, а ваша текущая директория /root. Текущую директорию можно проверить командой pwd.

Если у вас другие пути или другая версия, то измените команды в соответствии с вашими данными. Или воспользуйтесь графической оболочкой для этих процедур.

mkdir amdappsdk mv /root/Загрузки/AMD-APP-SDKInstaller-v3* amdappsdk/ cd amdappsdk tar xvjf AMD-APP-SDKInstaller-v3* sh `ls AMD-APP-SDK* | grep -E 'sh'`

Скачиваем AMD APP SDK с помощью скрипта:

wget https://gist.githubusercontent.com/vchuravy/1faa40c2df51e3a9ee55/raw/8d79b81781f4990dd09583ca39b6373700725a8e/amd_sdk.sh sh amd_sdk.sh tar xvjf AMD-SDK.tar.bz2 sh `ls AMD-APP-SDK* | grep -E 'sh'`

Установка происходит в интерактивном режиме. Нам будет показана лицензия, которую нужно пролистать до конца клавишей [Enter]. Затем у нас спросят подтверждение:

By clicking accept, you confirm that you are neither a resident nor a national of Cuba, Iran, North Korea, the Sudan or Syria.

Принимая, вы подтверждаете, что вы не резидент и не гражданин стран Куба, Иран, Северная Корея, Судан или Сирия.

Если вы принимаете условия лицензии и не являетесь гражданином какой-либо из этих самых лучших стран, то нажимаете y.

Далее у нас спрашивают:

Enter the Installation directory. Press ENTER for choosing the default directory: [/opt]

В какой каталог установить программу. Если вы просто нажмёте [Enter], то программа установится в дефолтный каталог /opt — именно это нам и нужно.

Отредактируйте файл /root/.bashrc

Чтобы узнать путь, куда программа установилась:

ls -ld /opt/AMDAPPSDK-3*

Добавьте в самый конец следующие строки:

# AMD APP SDK export AMDAPPSDKROOT=/opt/AMDAPPSDK-3.0/ export AMDAPPSDKSAMPLESROOT=/opt/AMDAPPSDK-3.0/ export LD_LIBRARY_PATH=$lib/x86_64:$ export ATISTREAMSDKROOT=$AMDAPPSDKROOT

Сохраните и закройте, затем наберите в терминале команду:

Проверить успешность можно следующей командой:

env | grep -i amd

Вывод должен быть таким:

AMDAPPSDKSAMPLESROOT=/opt/AMDAPPSDK-3.0/ LD_LIBRARY_PATH=/opt/AMDAPPSDK-3.0/lib/x86_64:/opt/AMDAPPSDK/lib/x86_64: ATISTREAMSDKROOT=/opt/AMDAPPSDK-3.0/ AMDAPPSDKROOT=/opt/AMDAPPSDK-3.0/ PWD=/root/amdappsdk

Разработчики AMD APP SDK долго перекладывали файлы, необходимые для компиляции CAL++, по разным папкам своего SDK. Из-за этого при изменении версий SDK возникали проблемы с компиляцией CAL++. В конце-концов файлы, необходимые для CAL++, просто исчезли. Чтобы вернуть их обратно, накатываем этот патч.

По сути, мы копируем каталог /include/CAL из SDK версии 2.7 в нашу SDK 3.0. Честно говоря, можно было просто установить версию AMD APP SDK 2.7.

Процесс установки указан для конкретной версии SDK. Более того, предполагается, что скачивание произошло в папку /root/Downloads, а ваша текущая директория /root. Текущую директорию можно проверить командой pwd

Если у вас другие пути или другая версия, то измените команды в соответствии с вашими данными. Или воспользуйтесь графической оболочкой для этих процедур.

Установка происходит в интерактивном режиме. Нам будет показана лицензия, которую нужно пролистать до конца клавишей [Enter]. Затем у нас спросят подтверждение:

Принимая, вы подтверждаете, что вы не резидент и не гражданин стран Куба, Иран, Северная Корея, Судан или Сирия.

Если вы принимаете условия лицензии и не являетесь гражданином какой-либо из этих самых лучших стран, то нажимаете y.

Далее у нас спрашивают:

В какой каталог установить программу. Если вы просто нажмёте [Enter], то программа установится в дефолтный каталог /opt — именно это нам и нужно.

Отредактируйте файл /root/.bashrc

Добавьте в самый конец следующие строки:

Сохраните и закройте, затем наберите в терминале команду:

Проверить успешность можно следующей командой:

Вывод должен быть таким:

Разработчики AMD APP SDK долго перекладывали файлы, необходимые для компиляции CAL++, по разным папкам своего SDK. Из-за этого, при изменении версий SDK, возникали проблемы с компиляцией CAL++. В конце-концов файлы, необходимые для CAL++, просто исчезли. Чтобы вернуть их обратно, накатываем этот патч.

По сути, мы копируем каталог /include/CAL из SDK версии 2.7 в нашу SDK 3.0. Честно говоря, можно было просто установить версию AMD APP SDK 2.7.

Как установить AMD APP SDK в Kali Linux?

Эта инструкция из серии о том, Как установить GLRX, AMD APP SDK, CAL++ и Pyrit в Kali Linux. Идея в том, чтобы установить корректные драйвера в Kali Linux для вашей видеокарты и использовать комбинацию из CPU+GPU с программой Pyrit для увеличения скорости обработки данных. Практическим примером использования этой комбинации является «Взлом Wi-Fi пароля (WPA/WPA2), используя pyrit и cowpatty в Kali Linux».

Сама по себе установка AMD APP SDK в Kali Linux ничего не даёт. Это всего лишь промежуточный шаг для установки CAL++. Установка CAL++ тоже является всего лишь промежуточным шагом для установки Pyrit.

Для чего вся эта морока? Посмотрите на следующие два бенчмарка Pyrit. Первый — без подключённого CAL++, а второй с подключённым CAL++

В первом бенчмарке работает только процессор — i7, с турбобустами и прочими свистоперделками. Во втором бенчмарке подключается видеокарта — результат превышает первый в более чем 8 раз! Фактически, всю производительность в подобного рода вычислениях определяет графический процессор.

Если у вас более слабый процессор или более мощная видеокарта (моему ноуту уже несколько лет), а также если у вас настольный компьютер с полноценной видеокартой (а не ноут), то у вас выигрыш от подключения к вычислениям графического процессора будет в ещё большее число раз.

Читатели, пожалуйста, следуйте инструкциям из этой серии в следующем порядке:

Описание

С помощью платформы разработки Accelerated Parallel Processing, сокращённо AMD APP SDK появляется возможность внедрить современные решения APP в те продукты, к которым пользователи проявляют активный интерес. Платформа нужна, чтобы запустить процесс майнинга на своём CPU для процессоров марки AMD, который без неё часто не будет работать на процессорах этой фирмы.

Раньше эта платформа была известна под названием ATI Stream SDK, однако со временем в неё добавили абсолютно новый язык программирования и в новом варианте, Brook+ заменили на гораздо более продвинутый язык OpenCL, позволяющий находить лучшие решения в связке с GPGPU. Стоит отметить, что OpenCL – прямой конкурент NVIDIA, Оба производителя являюется конкурентами между собой и соперниками AMD на рынке, производя графические чипы. Однако, на этот раз конкуренты объединили усилия.

Не стоит углубляться в отличия технологий, но необходимо рассмотреть явные плюсы от использования AMD APP SDK. Так, особо подчеркнуть следует встроенный компонент CMake, представляющий мультиплатформенный автоматизированный сборщик проектов. Он формирует Makefil, используемый потом другими сборщиками.

Решение это достаточно узкоспециализированное, рассчитывалось на тех, кто работает в области портирования или оптимизации компьютерных игр, но так уж получилось, что для майнинга эта платформа также весьма интересна. Она подойдёт тем, кто добывает крипту через свои графические адаптеры Radeon. Совершенно не каждую программу – майнер можно заставить адекватно работать на компьютере без запуска этой программки. Конечно, за добычу отвечают только несколько фрагментов пакета, но по отдельности их нигде ненайти, поэтому, придётся ставить полную версию, стоит также изучить её дополнительные возможности, могут пригодиться. Кроме того, вместо неё можно поставить драйвера AMD Catalyst экспериментальных версий, но они идут не на каждой операционной системе, так, XP они не поддерживаются, как и в некоторых других операционках.


ATI Stream SDK было переименовано в AMD Accelerated Parallel Processing (APP) SDK, на смену основного языка программирования GPGPU вычислений Brook+ пришел OpenCL. Однако, не многие догадываются, что писать код для ATI-шных карточек можно при помощи другой технологии: AMD Compute Abstraction Layer (CAL) / Intermediate Language (IL). Технология CAL предназначена для написания кода, взаимодействующего с GPU и выполняющегося на CPU, в то время как технология IL позволяет писать код, который будет выполняться непосредственно на GPU.

Читайте также: 

Могу ли я удалить или удалить InstallManagerApp.exe?

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

Согласно различным источникам онлайн, 7% людей удаляют этот файл, поэтому он может быть безвредным, но рекомендуется проверить надежность этого исполняемого файла самостоятельно, чтобы определить, является ли он безопасным или вирусом. Лучшая диагностика для этих подозрительных файлов — полный системный анализ с Reimage, Если файл классифицирован как вредоносный, эти приложения также удалят InstallManagerApp.exe и избавляются от связанных вредоносных программ.

Однако, если это не вирус, и вам необходимо удалить InstallManagerApp.exe, вы можете удалить AMD Install Manager со своего компьютера, используя программу удаления, которая должна находиться по адресу: «C: Program Files AMD CIM Bin64 «. InstallManagerApp.exe «/ UNINSTALL / IGNORE_UPGRADE / ON_REBOOT_MESSAGC: НЕТ. Если вы не можете найти его деинсталлятор, вам может потребоваться удалить AMD Install Manager, чтобы полностью удалить InstallManagerApp.exe. Вы можете использовать функцию «Установка и удаление программ» на панели управления Windows.

  • 1. в Меню Пуск (для Windows 8 щелкните правой кнопкой мыши в нижнем левом углу экрана), нажмите панель, а затем под программы:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удаление программы.
    o Windows XP: нажмите Добавить или удалить программы.
  • 2. Когда вы найдете программу AMD Install Managerщелкните по нему, а затем:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удалить.
    o Windows XP: нажмите Удалить or Изменить / Удалить вкладка (справа от программы).
  • 3. Следуйте инструкциям по удалению AMD Install Manager.

Скачать AMD APP SDK

AMD APP SDK — это платформа разработки от крупного производителя графических карт AMD. Данное решение позволяет внедрять преимущества технологии APP (Accelerated Parallel Processing) в свои продукты. Ранее данная платформа была известна как ATI Stream SDK. Cо сменой названия SDK получил еще и новый основной язык программирования. В новой версии, вместо Brook+ «в связке» с GPGPU стал использоваться более гибкий и продвинутый OpenCL. Кстати, OpenCL является основным конкурентном CUDA — похожей технологии от компании NVIDIA, которая также является крупны производителем графических чипов и, по совместительству, главным соперником AMD на рынке. В отличия обоих технологий углубляться не будем, потому как не считаем себя достаточно компетентными в данном вопросе.

Из основных преимуществ AMD APP SDK стоит выделить наличие встроенного компонента CMake. Он представляет собой мультиплатформенную автоматизированную система сборки проектов. Если говорить точнее, основная задача этого программного решения состоит в формировании Makefile, который, в последствии, может использоваться сторонними «сборщиками».

Вообще перед нами довольно узкоспециализированное решение. Оно рассчитано на людей, которые, например, занимаются портированием и оптимизацией видеоигр. Но помимо разработчиков, AMD APP SDK может также пригодится майнерам. Как вы неверное догадались, нужна она тем, кто осуществляет добычу криптовалюты при помощи графических адаптеров Radeon. Дело в том, что далеко не все программы для майнинга могут запустится и корректно работать на компьютерах, не установлено данное ПО. Точнее говоря, для запуска добычи требуются лишь отдельные компоненты данного пакета. Но установить их можно только в «коплекте» со всеми остальными инструментами разработчика, ну или вместе с экспериментальными версиями драйверов AMD Catalyst, которые доступны далеко не для все операционных систем (например, отсутствует поддержкак Windows XP).

Как установить и использовать в расчетах OpenCL

Прошло уже больше года как стало возможным писать программы для OpenCL в MQL5, и теперь при старте терминала MetaTrader 5 в Журнал выводятся сообщения о найденных устройствах с поддержкой OpenCL, как показано на картинке.

Сообщения в Журнале терминала MetaTrader 5 о найденных OpenCL устройствах

В данном случае терминал MetaTrader 5 определил, что для запуска OpenCL расчетов прямо из MQL5-программы доступно 4 способа: две видеокарты от NVIDIA (OpenCL 1.1) и AMD (OpenCL 1.2), а также на выбор два варианта использования центрального процессора Intel Core-i7 — в зависимости от специально установленного драйвера.

Если на вашем компьютере уже есть подходящее устройство с поддержкой OpenCL версии 1.1 и выше, то можете смело пропускать описание и сразу же переходить к разделу Сравнение производительности, чтобы своими глазами увидеть выигрыш в скорости для задач, допускающих распараллеливание.

OpenCL — это интересно!

Однако еще далеко не все пользователи смогли оценить преимущество использования параллельных вычислений в своих советниках, индикаторах или скриптах, так как не знают о новых возможностях или не имеют подходящих знаний.

Все дело в том, что для запуска любой MQL5 программы, использующей OpenCL, необходимо установить соответствующее программное обеспечение. Поэтому многие так и не сумели запустить скрипт расчета фрактала Мандельброта и многие другие программы, представленные на форуме MQL5.community.

В этой статье мы покажем, как установить OpenCL на Ваш персональный компьютер, чтобы Вы смогли лично убедиться в преимуществах использования параллельных вычислений в MQL5. Здесь мы не будем рассматривать подробности написания программ для OpenCL в MQL5 — на эту тему на сайте уже имеются две замечательные статьи:

  • OpenCL: Мост в параллельные миры и
  • OpenCL: от наивного кодирования — к более осмысленному.

Что такое OpenCL

OpenCL — это открытый стандарт параллельного программирования, разработанный консорциумом Khronos Group в 2008 году. Этот стандарт позволяет создавать приложения, которые могли бы выполняться параллельно на различных по архитектуре графических (GPU) или центральных (CPU) процессорах, расположенных в некоторой гетерогенной системе.

Другими словами OpenCL позволяет задействовать для вычислений одной задачи все ядра центрального процессора или все вычислительные мощности видеокарты, что, в конечном счете, уменьшает время выполнения программы. И поэтому использование OpenCL является очень полезным для задач, связанных с трудоемкими и ресурсозатратными вычислениями.

Например, применительно к MQL5, увеличение быстродействия может быть очень полезно для некоторого скрипта (индикатора или эксперта), который проводит сложный и длительный анализ исторических данных по нескольким символам и таймфреймам (здесь стоит отметить, что MQL5 программа, претендующая на параллельное исполнение, должна быть написана специальным образом при помощи OpenCL API).

Поддержка OpenCL

Поддержка OpenCL в MQL5 начинается с версии стандарта 1.1, который появился в июне 2010 года. Поэтому, для использования параллельных вычислений, необходимо иметь относительно свежее программное и аппаратное обеспечение, соответствующее этому стандарту.

При всем этом важно отметить, что для использования OpenCL совсем не обязательно иметь видеокарту на Вашем ПК — вполне достаточно будет и наличия центрального процессора. А это значит, что практически каждый пользователь имеет возможность использовать OpenCL для сокращения времени выполнения своих MQL5 программ.

Конечно, по быстродействию распределенных вычислений центральные процессоры значительно уступают своим соперникам из «графического цеха», однако и хорошего многоядерного центрального процессора Вам будет вполне достаточно для получения значительного увеличения быстродействия. Но мы отвлеклись, идем дальше.

Как уже говорилось выше, для параллельных вычислений можно использовать как видеокарты, так и центральные процессоры. На рынке производителей соответствующего устройств есть три основных компании лидера — это Intel, AMD и NVidia. В следующей таблице представлена информация об устройствах и операционных системах, которые поддерживают OpenCL 1.1 для каждого из этих трех производителей:

AMD Radeon HD Graphics начиная с серии 6400;
ATI Radeon HD Graphics начиная с серии 5400;
ATI FirePro Graphics серии A300, S, W, V;
ATI Mobility Radeon HD начиная с серии 5400;
ATI FirePro M7820 M5800 (подробнее здесь).

Процессоры семейства K8 и старше:

Opteron, Athlon 64, Athlon 64 FX, Athlon 64 X2, Sempron, Turion 64, Turion 64 X2, Phenom, Phenom II (подробнее здесь).

APU (гибридный процессор, включающий в себя центральный и графический процессоры):

Проверьте, установлено ли на вашем персональном компьютере хотя бы одно устройство (CPU или GPU) и операционная система, которые поддерживают OpenCL 1.1. Если таковые имеются, то Вы смело можете переходить к следующему параграфу, который описывает процедуру настройки OpenCL в зависимости от производителя аппаратного обеспечения.

Настройка OpenCL

Если на Вашем ПК установлено необходимое оборудование и операционная система, то для использования параллельных вычислений в MetaTrader 5 нужно сделать всего один шаг — настроить OpenCL для одного из Ваших устройств.

Процедура настройки OpenCL различается в зависимости от того какое аппаратное обеспечение Вы собрались использовать — видеокарту или центральный процессор. Если терминал MetaTrader 5 распознал видеокарту с поддержкой OpenCL, то достаточно сделать апдейт ее драйвера до последней версии.

Ставить для центрального процессора специальный комплект средств разработки (SDK) потребуется только в том случае, если на компьютере не установлена подходящая видеокарта.

Важно: Если уже есть установленная видеокарта с поддержкой OpenCL, то ставить софтверную версию для эмуляции OpenCL на центральном процессоре не нужно!

Ну, разве что для проведения экспериментов, так как видеокарты для использования OpenCL имеют безусловное преимущество.

Следующие параграфы описывают процедуру настройки OpenCL в зависимости от производителя. Вы можете перейти сразу на интересующую Вас инструкцию настройки, нажав на соответствующую ссылку:

1. Intel

Для использования OpenCL на процессорах Intel необходимо скачать и установить «Intel SDK for OpenCL Applications«. Для этого перейдем на страницу сайта разработчика, с которой это можно сделать.

Читайте также:  Отключение антивирусной программы 360 Total Security

Рис. 1.1. Страница загрузки Intel SDK для OpenCL.

Рис. 1.1. Страница загрузки Intel SDK для OpenCL.

Здесь представлена общая информация об OpenCL, а также список доступных пакетов для скачивания. Чтобы скачать представленные пакеты нужно нажать на кнопку «Compare and Download Products» в правом верхнем углу страницы.

Рис. 1.2. Информация о доступных пакетах и требованиях для установки.

Рис. 1.2. Информация о доступных пакетах и требованиях для установки.

После нажатия на кнопку появится окошко, в котором будет представлена информация о том, для каких типов процессоров и операционных систем подходят указанные пакеты. Выбираем и загружаем подходящий пакет, нажав на кнопку «Download» над его изображением.

Рис. 1.3. Ссылки для скачивания SDK.

Рис. 1.3. Ссылки для скачивания SDK.

Появится еще одно окошко с ссылками для скачивания — выбираем и загружаем SDK нужной битности. Ждем несколько минут и, после завершения загрузки, запускаем полученный файл. Подтверждаем установку компонентов SDK и распаковываем файлы для установки в один из каталогов.

Рис. 1.4. Начало установки Intel SDK для OpenCL.

Рис. 1.4. Начало установки Intel SDK для OpenCL.

На экране появится окно установки «Intel SDK for OpenCL Applications» с поддержкой OpenCL 1.2. Жмем «Next» и следуем инструкции по установке.

Рис. 1.5. Принятие лицензионного соглашения.

Рис. 1.5. Принятие лицензионного соглашения.

Соглашаемся с условиями лицензионного соглашения. После этого в окне отобразятся компоненты, которые будут установлены — нажимаем «Next» и идем далее.

Рис. 1.6. Интеграция SDK c Visual Studio.

Рис. 1.6. Интеграция SDK c Visual Studio.

Если на Вашем ПК установлена «Microsoft Visual Studio» начиная с 2008 года, то будет предложено провести интеграцию для использования OpenCL также внутри нее. Далее остается лишь выбрать для каких пользователей будут доступны установленные компоненты и путь для установки SDK, после чего нажать «Install«.

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

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

Начнется процесс установки, который займет пару минут, после чего на экране отобразится результат успешного выполнения. Нажимаем «Finish» и заканчиваем установку.

Рис. 1.8. Завершение установки.

Рис. 1.8. Завершение установки.

2.1. Видеокарты и APU от AMD

Для установки OpenCL на видеокарту от AMD обновим ее драйвер до последней версии. Для этого переходим на страницу загрузки драйверов.

Рис. 2.1.1. Страница загрузки драйвера AMD.

Рис. 2.1.1. Страница загрузки драйвера AMD.

Если вы знаете характеристики Вашей видеокарты, то драйвер можно найти, заполнив форму в левой части страницы. После выбора нужных строк из списков, жмем на «Display Results» для поиска подходящего драйвера.

Рис. 2.1.2. Загрузка AMD Catalyst.

Рис. 2.1.2. Загрузка AMD Catalyst.

Система подберет несколько драйверов в наборе «Catalyst Software Suite«, в том числе и драйвер для OpenCL. Загружаем «Catalyst» и запускаем полученный файл.

Рис. 2.1.3. Страница загрузки приложения для определения типа видеокарты и версии драйвера.

Рис. 2.1.3. Страница загрузки приложения для определения типа видеокарты и версии драйвера.

Также можно воспользоваться системой автоматического поиска драйверов, нажав на соответствующую ссылку в правом верхнем углу страницы (рис. 2.1.1.). Вам будет предложено загрузить приложение «AMD Driver Autodetect» — делаем это. Затем запускаем загруженное приложение.

Рис. 2.1.4. Приложение для определения и загрузки подходящего драйвера.

Рис. 2.1.4. Приложение для определения и загрузки подходящего драйвера.

Приложение проведет анализ системы и предложит загрузить подходящий драйвер для видеокарты. Загружаем его и запускаем полученный файл. Программа установки предложит выбрать директорию для распаковки файлов — выбираем и нажимаем «Install«.

Рис. 2.1.5. Программа установки AMD Catalyst.

Рис. 2.1.5. Программа установки AMD Catalyst.

Появится окошко с лицензионным соглашением — принимаем его. Далее выбираем режим быстрой установки, каталог для установки «AMD Catalyst» и нажимаем далее.

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

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

Процесс установки займет пару минут, после чего появится уведомление об успешном завершении.

Рис. 2.1.7. Завершение установки.

Рис. 2.1.7. Завершение установки.

2.2. Процессоры от AMD

Для установки OpenCL на процессор от AMD необходимо скачать и установить «AMD APP SDK» последней версии. Для этого переходим на следующую страницу на официальном сайте разработчика.

Рис. 2.2.1. Страница загрузки AMD APP SDK.

Рис. 2.2.1. Страница загрузки AMD APP SDK.

На этой странице есть некоторая информация о самом SDK и о том, что представляет собой OpenCL. Нас же интересует ссылка «Go to Downloads» внизу описания — переходим по ней.

Рис. 2.2.2. Таблица доступных для скачивания SDK.

Рис. 2.2.2. Таблица доступных для скачивания SDK.

Внизу открывшейся страницы будет расположена таблица со списком последних версий SDK для разных операционных систем различной битности, а также ссылки для их скачивания. Выбираем подходящую версию, нажав на соответствующую ссылку. Появится страница с лицензионным соглашением — принимаем его, после чего начнется процесс загрузки.

После запуска загруженного установщика Вам будет предложено распаковать файлы для установки в некоторую директорию. А далее начнется процесс установки уже знакомого нам «AMD Catalyst», содержащего внутри себя «AMD APP SDK» для вашего центрального процессора. Процедуру установки «Катализатора» можно посмотреть на рисунках 2.1.5 — 2.1.7 в пункте 2.1.

3. NVidia

Если у Вас имеется видеокарта от NVidia, то для установки OpenCL также необходимо обновить ее драйвер до последней версии. Для этого откроем страницу загрузки драйверов на сайте разработчика.

Рис. 3.1. Страница загрузки драйвера NVidia.

Рис. 3.1. Страница загрузки драйвера NVidia.

На странице расположено меню, которое позволит найти интересующий драйвер либо вручную, либо в автоматическом режиме. В ручном режиме необходимо ввести тип видеокарты, серию, тип операционной системы и нажать на «Поиск«. После этого система подберет самый свежий драйвер подходящий для Вашей видеокарты, и предложит скачать его.

Рис. 3.2. Загрузка выбранного драйвера.

Рис. 3.2. Загрузка выбранного драйвера.

В автоматическом режиме нужно нажать на «Графические драйверы«, после чего вам будет предложено выполнить сканирование вашей системы при помощи java-приложения «GPU_Reader«.

Рис. 3.3. Запуск приложения для определения типа видеокарты и версии драйвера.

Рис. 3.3. Запуск приложения для определения типа видеокарты и версии драйвера.

Запускаем приложение, нажав на «Run«. Ждем несколько секунд, после чего на странице появится информация о Вашей видеокарте, текущей версии установленного драйвера и версии самого свежего, рекомендованного для установки драйвера. Жмем на «Download» и попадаем на страницу загрузки, показанную на рисунке 3.2.

Рис. 3.4. Результат автоматического определения типа видеокарты и версии драйвера.

Рис. 3.4. Результат автоматического определения типа видеокарты и версии драйвера.

Нажимаем «Загрузить сейчас» и соглашаемся с лицензионным соглашением, нажав на «Принять и скачать«.

Рис. 3.5. Принятие лицензионного соглашения и скачивание драйвера.

Рис. 3.5. Принятие лицензионного соглашения и скачивание драйвера.

Таким образом получаем последнюю версию драйвера для видеокарты. Далее запускаем полученный файл — Вам будет предложено распаковать файлы для установки драйвера в один из каталогов. Распаковываем файлы, после чего начинается процесс установки. Сначала нужно еще раз принять лицензионное соглашение.

Рис. 3.6. Принятие лицензионного соглашения на первом этапе установки.

Рис. 3.6. Принятие лицензионного соглашения на первом этапе установки.

Затем выбираем «Экспресс» режим установки и нажимаем «Далее«. Дополнительно Вам будет предложено установить утилиту «NVidia Experience» — делать это не обязательно.

Рис. 3.7. Выбор режима установки.

Рис. 3.7. Выбор режима установки.

После этого начнется непосредственно процесс установки драйвера, сопровождаемый рекламой последних разработок NVidia — ждем пару минут.

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

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

И всё, драйвер установлен, осталось лишь перезагрузить систему, и Вы сможете использовать OpenCL внутри терминала MetaTrader 5.

Рис. 3.9. Завершение установки.

Рис. 3.9. Завершение установки.

Сравнение производительности

Для того чтобы продемонстрировать преимущество использования OpenCL в MQL5, был написан скрипт OpenCL_Sample.mq5, который вычисляет значения функции от двух переменных на некотором множестве и отображает результат в окне графика при помощи графической метки (OBJ_BITMAP_LABEL). Вычисления проводятся двумя способами — с использованием OpenCL и без. Эти блоки оформлены соответственно в функциях WithOpenCL() и WithoutOpenCL():

После выполнения скрипта, в окне графика на несколько секунд появится раскрашенное множество значений функции. Каждому из них сопоставляется один из тонов цвета, выбранного во входных параметрах (красный, зеленый или синий).

Результат работы скрипта для множества точек плоскости от -22 до 22 с шагом 0.1.

Результат работы скрипта для множества точек плоскости от -22 до 22 с шагом 0.1.

Помимо самой картинки в журнал «Эксперты» выводится время расчета функций каждым из способов, что позволяет легко убедиться в преимуществе и целесообразности использования OpenCL в MQL5. Увеличим значение шага и получим результаты работы скрипта:

Расчет значений функции и их раскраска двумя способами.

Расчет значений функции и их раскраска двумя способами.

Суммарное время расчета функций на CPU с OpenCL уменьшилось более чем в 5 раз, а ведь это еще далеко не предел! Хорошо известно, что расчеты на современных видеокартах с поддержкой OpenCL выполняются на порядок быстрее, чем на процессорах. Этот факт хорошо отражают результаты выполнения скрипта на разных устройствах с OpenCL, представленные в следующей таблице:

Устройство с OpenCL Время выполнения без OpenCL в миллисекундах Время выполнения с OpenCL в миллисекундах Выигрыш
AMD Radeon HD 7970 20 361 мс 171 мс 119.07 раз
NVidia GeForce GT 630 24 742 мс 578 мс 42.8 раз
Intel Core i5 430M 27 222 мс 5 428 мс 5.01 раз
AMD Athlon X2 Dual-Core QL-65 45 723 мс 9 516 мс 4.8 раз

Как видно, использование OpenCL на топовой видеокарте от AMD привело к сокращению времени расчетов более чем в 100 раз! Не менее значимы результаты и на чуть более старой видеокарте GeForce GT 630 от 2011 года — здесь разница во времени в 42 раза. Процессоры от Intel и AMD замыкают таблицу, однако достигаемое на них ускорение будет также очень и очень полезным для расчетов сложных задач.

На этом статья подошла к своему концу. Таблица сравнений наглядно демонстрирует преимущество использования параллельных вычислений в задачах массовой обработки данных. Остается сделать всего лишь один шаг — установить подходящий драйвер для Вашей видеокарты или процессора.

Ссылка на основную публикацию