> > > > SC16: AMD расширяет Radeon Open Compute Platform

SC16: AMD расширяет Radeon Open Compute Platform

Опубликовано:

AMD ROCmAMD уже некоторое время продвигает идею открытого подхода к вычислительным интерфейсам для своих GPU. Инициатива GPUOpen с открытым исходным кодом является альтернативой CUDA и GameWorks, она ориентирована на разработчиков игр и соответствующих движков. Как считает AMD, такой подход побудит разработчиков охотнее использовать GPU AMD. AMD планирует и дальше улучшать свое программное обеспечение, частично оно уже доступно с открытым исходным кодом, и эта часть будет расширяться, чтобы разработчики быстрее внедряли поддержку библиотек в свои продукты. Также такой подход должен привести к появлению библиотек от сторонних разработчиков.

Теперь AMD выходит с подобным подходом на сцену вычислений на GPU, расширяя предыдущие усилия компании, например, инициативу Boltzmann. На конференции Supercomputing Conference 2016 AMD представила Radeon Open Compute Platform или вкратце ROCm. Она станет основой для современных гетерогенных структур HPC вместе с HSA (Hyperscale Accelerator) для масштабных проектов.

AMD предусматривает четыре базовых блока ROCm. Первый называется Graphics Core Next Headless Linux 64-bit Driver. AMD уже упоминала ранее разработку драйверов под Linux, здесь компания вновь подчеркивает преимущества низких задержек, меньшего числа избыточных вычислений и более быструю работу HSA на дискретных GPU. Доступ к аппаратным ресурсам сравним с современными графическими API Mantle и DirectX 12. Второй важный фактор – поддержка и оптимизация компиляторов под собственные аппаратные ресурсы. AMD уже показала первое решение в виде Heterogeneous Compute Compiler как раз год назад. Он представляет собой компилятор с открытым исходным кодом под C++, позволяющий компилировать код для GPU. Поддерживается и так называемый HIP. Он представляет собой конвертер, преобразующий код CUDA в C++, который затем можно запускать на GPU AMD.

Третий компонент – интеграция старых и новых структур HSA, как программная, так и аппаратная. Сегодня HSA полностью поддерживается современными GPU и APU, но по-прежнему не играет существенной роли в сегменте вычислений на GPU. Но вскоре ситуация должна измениться, можно ожидать глубокую интеграцию HSA. Четвертый базовый блок – инструменты и библиотеки с открытым исходным кодом, которые теперь доступны разработчикам.

Компилятор играет довольно важную роль в новой инициативе, поскольку он позволит выполнять произвольный код на аппаратных ресурсах AMD как можно быстрее. Отметим, что AMD уже представила новый компилятор LLVM в прошлом году, который может обрабатывать код для вычислений на CPU. Впрочем, поскольку GPU получает более объемную и важную долю в соответствующих вычислениях, компилятор GCN теперь обеспечивает подготовку кода для GPU. В частности, компилятор оптимизирован под архитектуру Graphics Core Next, код получает соответствующие оптимизации. AMD разработала интерфейс для любого кода, в том числе OpenCL, CUDA, ISO C++ или Python.

Первая версия ROCm была представлена в апреле 2016, среди всего прочего здесь можно отметить поддержку GPU Fiji. Затем в августе в ROCm была добавлена поддержка GPU Hawaii, а версия 1.3 в ноябре обзаведется поддержкой GPU Polaris. Также компилятор LLVM теперь вышел в финальной версии. С ноября должны поддерживаться такие карты, как Radeon Pro WX 4100, 5100 и 7100.

Идея открытого исходного кода нацелена на привлечение широкого числа производителей. Сначала компания планирует интегрировать собственную архитектуру Zen в следующем году – конечно, если выйдут первые продукты. Но AMD обсуждает перспективы и с другими производителями, а именно Cavium (процессоры ARM), IBM (процессоры Power8), а в области ввода/вывода - GenZ, CCIX и OpenCAPI Foundation. AMD вполне осведомлена о важности сегмента глубокого обучения, поэтому усилия компании будут направлены, в том числе, и на него.