AMD app sdk runtime что это
AMD app sdk runtime что это
После принятия NVIDIA ® CUDA ™, студии программного обеспечения стали использовать новейший ускоритель AMD APP, который может помочь преобразовать приложения и продемонстрировать превосходную производительность преобразования.
Что такое ускорение AMD APP?
Ускорение AMD App представляет собой набор технологий, имеющихся на AMD Radeon ™ HD серии 6000 и выше графических процессоров и предназначено для улучшения качества видео и повышения производительности приложений. Для полного использования некоторых функций требуется поддержка AMD Accelerated Parallel Processing (APP), технология и / или универсальный видеодекодер AMD (UVD). Технологии AMD Accelerated Parallel Processing (APP) работают с приложениями, разработанными, чтобы воспользоваться его возможностями графического ускорения.
Введение ускорения AMD APP.
NVIDIA ® CUDA ™, спас много времени для тех пользователей ПК ,кто работает с поддержкой CUDA GPU, разработчики программного обеспечения уже перешли на связи с другими пользователями ПК с AMD APP с поддержкой GPU. Для того, чтобы дать пользователям AMD сверхвысокую скорость преобразования и высокую производительность обработки видео, после постоянных исследований и разработок, ускорения AMD APP было принято многими производиетлями программного обеспечения.
Как ускорение AMD APP влияет на процессор?
Когда работает ускоритель AMD APP ,больше пространства и ресурсов компьютера процессора могут быть зарезервированы для других задач, можно одновременно копировать CD / DVD и конвертировать видео файлы. Пользователь может дополнительно включить / выключить аппаратное ускорение на AMD видеокарте ,если таковое было обнаружено. Например фирма Tipard предлагает включить ускорение AMD APP при преобразовании файлов видео высокой четкости.
Демонстрация превосходной производительности преобразования с ускорением AMD APP
Очевидно, что графики ясно показали, что магия ускорения AMD APP может сэкономить пользователям много времени при преобразовании почти любого видео файла в другой формат видео с кодеком H.264 ,установленном на вашем компьютере и работающей видеокартой на AMD APP с поддержкой GPU.
Загрузите и установите драйвер видеокарты AMD.
Для использования ускорения AMD APP, в первую очередь вам придется установить драйвер видеокарты AMD. Пожалуйста, следуйте следующему руководству для завершения установки:
Как скачать и установить AMD Graphics Driver?
Для того, чтобы эффективно использовать ускорение AMD APP, ниже написаны устройства которым требуется драйвер.
1.Графическая карта AMD.
2.Графический драйвер AMD.
ПРИМЕЧАНИЕ: Рекомендую Вам следовать инструкции ниже для установки и убедитесь, что вы правильно установили драйвер AMD Graphics.
Шаг 1:Посетите официальный веб-сайт AMD ,набрав в вашем браузере: .
Шаг 2:Нажмите кнопку ” Find a Driver – Поиск драйверов” в верхнем правом углу на главной странице, чтобы открыть выпадающее меню, содержащее 4 выпадающих списка ,как отображается на ниже скриншоте . Затем, вам нужно выбрать правильный вариант из каждого списка (категории CompoNet, модель продукта Product Line, , операционную систему) один за другим, и нажать кнопку ” View Results – Посмотреть результаты”, чтобы получить определенную модель драйверов AMD Griphics, которые ваш компьютер поддерживает.
Шаг 3: На странице результатов, найдите Catalyst Software Suite в списке драйверов и нажмите правую кнопку Download — Загрузить, чтобы загрузить пакет.
Если параметры системы поддерживают ускорение AMD APP, вы можете нажать кнопку Optional Downloads – Дополнительная загрузка и открыть еще один список ,как показано на рисунке ниже, а потом просто выбрать пакет AMD Media Codec для загрузки.
Шаг 4: После окончания загрузки, следуйте инструкциям по умолчанию, чтобы установить драйвер AMD Graphics.
ПРИМЕЧАНИЕ: После установки драйверов , рекомендую вам перезагрузить приложения, чтобы убедиться что всё установлено правильно .
Примечание: 1. Выше на рисунке показан график , это только один пример. Реальная ситуация ускорения зависит от различных исходных файлов, формата вывода и вашего компьютера PC – установленной ОС, процессора, графической видеокарты и т.д.
2. Ускорение AMD APP может работать только в том случае, если конвертер выдает формат с кодеком H.264.
Если Вам понравилась статья,не стесняйтесь оставить комментарий в форме ниже.
Скачать 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).
AMD app sdk runtime что это
Часовой пояс: UTC + 3 часа
Запрошенной темы не существует.
Часовой пояс: UTC + 3 часа
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan
Как установить и использовать в расчетах OpenCL
OpenCL в клиентском терминале MetaTrader 5
Прошло уже больше года как стало возможным писать программы для OpenCL в MQL5, и теперь при старте терминала 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 — это открытый стандарт параллельного программирования, разработанный консорциумом 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 app sdk runtime что это
При обновлении драйверов видеокарт Radeon HD каждый пользователь сталкивается с тем, что их невозможно скачать отдельно, с официального сайта программы. Они поставляются только в комплекте с монструозным приложением Catalyst Control Center. Если вы хотите установить только драйвера видеокарты AMD, читайте наши инструкции.
Первым делом необходимо скачать последнюю версию драйверов Catalyst 13.1. Прямые ссылки на загрузку драйверов для всех актуальных версий Windows (32 и можно найти здесь. Обращаем внимание — если вы являетесь пользователем видеокарты одной из следующих серий: HD 2000, 3000 и 4000, необходимо установить специальные драйвера Catalyst 13.1 Legacy.
Размер установочного файла для Windows составляет 94.8 MB. Владельцам ОС Windows 7 и Windows 8 придется загружать файл размером 146.5 MB. Сервера AMD отдают файл со скоростью
Пользовательская установка Catalyst 13.1
После запуска установочного файла, программа предложит распаковать файлы. Не все знают, но, после установки драйверов, папку с распакованными файлами можно смело удалять из системы. По умолчанию они распаковываются по следующему адресу: C:AMDSupport13-1_vista_win7_win8_64_dd_ccc_whql, однако, вы вольны выбирать любое другое местоположение, нажав кнопку Browse.
После распаковки файлов необходимых для установки Catalyst Driver, автоматически запустится диалог инсталлятора. После выбора языка, откроется диалоговое окно, в котором необходимо выбрать «Устанавливать». В следующем окне, в разделе «Быстрая или выборочная установка» обязательно выберите пункт «Пользовательское» и нажмите «Далее».
Инсталлятор проведет анализ системы и видеоплаты, после чего предложит выбрать устанавливаемые компоненты. Именно здесь можно запретить установку Catalyst Control Center. Просто снимите отметку с пункта «Catalyst Control Center». Рекомендуем так же отключить установку AMD APP SDK Runtime — этот компонент необходим только разработчикам приложений. В остальных случаях он лишь захламляет систему. А вот «Драйвер дисплея AMD» и «Аудиодрайвер HDMI» — как раз то что нам нужно.
После нажатия на кнопку «Далее» начнется процесс установки выбранных драйверов и компонентов. В процессе установки экран компьютера может несколько раз отключаться, так же иногда наблюдается сброс разрешения на 800×600. После завершения инсталляции все настройки изображения вернутся в норму.
Драйвера Catalyst 13.1 и CCC предназначены для видеокарт: HD 7970, HD 7950, HD 7870, HD 7850, HD 7770 и HD 7750 | HD 6990, HD 6970, HD 6950, HD 6870 и HD 6850 | HD 5970, 5870 Eyefinity 6 Edition, HD 5870, HD 5850, HD 5830, HD 5770, HD 5750 и HD 5670.
Драйвера Catalyst Legacy 13.1 и CCC предназначены для видеокарт серий: HD 2000, 3000 и 4000 (такие как: HD 4870 X2, HD 4890, HD 4870, HD 4850, HD 4830, HD 4770, HD 3800, HD 3600, HD 3400 и др.).
С помощью платформы разработки 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.
2x при использовании связки CAL/IL
* означает, что язык хоть и похож на ассемблер, он все же оптимизируется компилятором и преобразовывается в разный код для разных GPU
За счет чего же можно получить такой выигрыш в производительности?
Особенности архитектуры AMD GPU
Таким образом, за одну (почти за одну) операцию AMD GPU может изменить вплоть до 4-х n-битных регистров, а Nvidia GPU — только один n-битный регистр (имеется в виду в пределах одного GPU-потока). Но ведь OpenCL также позволяет объявлять многокомпонентные вектора и работать с ними! Тогда в чем отличие и зачем вообще нужен этот IL ?
Отличие от OpenCL
А все отличия заключаются банально в том, что разработчикам AMD APP SDK было либо сложно, либо технически невозможно создать компилятор, переводящий код, написанный по спецификации OpenCL, в код, написанный на AMD IL . Отсюда и возникли ограничения по поддержке стандарта OpenCL:
- OpenCL 1.0 поддерживается начиная примерно с Radeon HD 4000 Series (Beta Level Support) (возможно, отсутствует поддержка image object, т.е. текстурной памяти)
- OpenCL 1.1 поддерживается начиная примерно с Radeon HD 5000 Series
- OpenCL 1.2 поддерживается начиная примерно с Radeon HD 7000, но при этом еще даже не вышло SDK, поддерживающее эту версию стандарта
При этом стоит отметить, что AMD IL позволяет использовать для GPGPU-вычислений некоторые карточки из Radeon HD 3000 Series и даже из Radeon HD 2000 Series! (если быть совсем точным, то это GPU на чипах R600, RV610, RV630 и RV670)
Далее для краткости будем обозначать все GPU, начиная с Radeon HD 5000 Series, как Evergreen GPUs (это чип Radeon HD 5700), потому что только для этих карточек поддерживаются некоторые интересные операции.
Прежде чем перейти к объяснению принципов написания кода на AMD IL , я бы хотел заострить ваше внимание на
Особенности работы с памятью
Как я уже упоминал, AMD GPU работает с 4-х компонентыми векторами n-битных регистров, где n=32 (о том, как работать с 64-битными регистрами, далее). Это накладывает основное ограничение на память: выделять память можно только объемом, кратным 16 байтам. При этом нужно помнить, что при загрузке дынных из памяти минимальным объемом передачи являются опять же эти 16 байт. То есть совершенно неважно, укажите вы, что ваша память состоит из 4-х компонентых векторов по 1 байту (char4), что из 4-х компонентых векторов по 4 байта (int4), результат будет один — из памяти за одну операцию обмена загрузятся 16 байт.
Далее, в отличие от Nvidia GPU, AMD GPU выделяет локальную память в глобальной области (а это означает очень медленную скорость обмена данных), так что забудьте про локальную память. Используйте регистры и глобальную память.
И на последок: опять же в отличие от Nvidia GPU, есть только одна глобальная память, работающая на чтение-запись (далее это будет «g[]»), и много различных источников текстурной памяти (далее это будет «i0», «i1» и т.д.) и константной памяти (далее это будет «cb0», «cb1» и т.д.), работающих только на чтение.
Особенностью константной памяти является наличие кеширования при доступе всеми GPU-потоками к одной области данных (работает также быстро, как и регистры).
Особенностью текстурной памяти является кеширование чтения (от 8 КБ, если мне не изменяет память, в расчете на один потоковый процессор) и возможность обращения к памяти по вещественным координатам. При выходе за границы текстуры можно либо считывать граничный элемент, либо закольцовываться и считывать сначала (координата берется по модулю ширины/длины текстуры).
А теперь приступим к самому интересному:
Структура кода для AMD IL
Работа с регистрами
Сперва небольшое пояснение, как происходит обмен между регистрами в операциях.
Выходной регистр на месте компоненты вектора может содержать либо имя компоненты, либо знак «_», что означает, что данная компонента не будет изменена.
Каждый входной регистр на месте каждой компоненты может содержать любое имя из четырех компонент, либо «0», либо «1». Это означает, что в операции над соответствующей компонентой выходного регистра участвует либо компонента входного регистра, либо константа. Поясню сказанное на примере:
Код для AMD GPU оформляется в виде шейдеров. Есть возможность запускать как компьютерный шейдер (Compute Shader, CS), так и пиксельный шейдер (Pixel Shader, PS). Однако CS поддерживается, начиная только с Radeon HD 4000 Series. При этом скорость их работы почти одинаковая.
Известно, что количество одновременно запускаемых потоков на GPU определяется параметрами запуска: количество блоков, количество потоков на блок. Каждый мультипроцессор (от 8 штук) GPU берет на исполнение один блок. Затем делит запрошенное количество потоков на блок на куски (warp, кратно 32) и отдает каждому своему поточному процессору на исполнение один warp. Таким образом, реальное количество одновременно работающих потоков равно:
Именно поэтому для наиболее быстрой работы требуется, чтобы в рамках одного warp’a потоки выполняли одну и ту же операцию, без ветвлений. Тогда эта операция выполнится за один раз.
Для того чтобы не рассматривать сферического коня в вакууме, рассмотрим простую задачу: каждый поток вычисляет свой локальный идентификатор в пределах блока (32 бита), глобальный идентификатор (32 бита), считывает константы (64 бита) из памяти команд и из памяти данных, считывает элемент из текстуры (128 бит). Все это он записывает в выходную память, каждому потоку для этого потребуется 256 бит.
Примечание: каждая строка текстуры содержит данные для потоков одного блока.
Pixel Shader
Compute Shader
Все отличие будет заключаться только в вычислении идентификаторов потока, остальное все то же самое.
Различия шейдеров
Кроме поддержки на разных карточках, основное отличие шейдеров заключается в месте хранения количества запускаемых потоков на блок. Для PS это значение можно хранить в памяти, для CS это значение нужно пробивать в коде. Кроме того, для CS проще вычислять идентификаторы потока.