Сегодня рынок графических процессоров, используемых в системах машинного обучения, является, по сути, рынком всего одной компании — Nvidia.
Единственным ее крупным конкурентом в сегменте дискретных графических процессоров остается компания AMD, на чью долю приходится 30% общего объема продаж (Nvidia сохраняет за собой 70%). Что же касается машинного обучения, здесь Nvidia практически полностью контролирует ситуацию. И не только потому, что все крупные облака, поддерживаемые графическими процессорами, работают на оборудовании Nvidia, но и потому, что связующее программное обеспечение для графических процессоров, используемое в системах машинного обучения, в основном построено на основе архитектуры Nvidia CUDA.
В компании AMD долго размышляли над тем, как отвоевать у конкурента кусок пирога себе. Наряду с проектированием оборудования, которое составило бы Nvidia конкуренцию по производительности и цене, она готовила платформу для нейтральных по отношению к производителю графических процессоров программных ресурсов. Благодаря этому разработчики смогут свободно использовать в своих решениях продукцию AMD, не беспокоясь о программной поддержке.
В конце мая компания сообщила об очередных шагах, которые должны приблизить ее к поставленной цели. Во-первых, продемонстрирован очередной процессор Radeon Vega, построенный на основе новой графической архитектуры. Во-вторых, представлена переработанная версия программной платформы с открытым кодом ROCm, которая позволяет создавать фреймворки машинного обучения и другие приложения, использующие преимущества масштабного применения графических процессоров.
Обе составляющие — и аппаратная, и программная — одинаково важны.
Новая звезда AMD: Vega
На протяжении долгого времени компания AMD занимается созданием центральных и графических процессоров, а также их комбинаций, приносящих покупателю максимальную отдачу за его деньги. И новое семейство графических процессоров Vega не является исключением. Это не просто рациональная по затратам альтернатива семейству Nvidia Pascal — Vega бьет Pascal вчистую.
Предварительные результаты тестирования, опубликованные Хасаном Муджтабой на сайте WCCFTech, показывают, что Radeon Vega Frontier Edition (профессиональная версия графического процессора) опережает Nvidia Tesla P100 в тесте DeepBench в 1,38–1,51 раза в зависимости от используемых драйверов Nvidia.
К эталонным тестам всегда следует относиться с осторожностью, но, глядя на такие улучшения, трудно остаться равнодушным. Вместе с тем важно, по какой цене AMD собирается предлагать эти улучшения.
На эталонных тестах Radeon Vega Frontier Edition опережает Nvidia Tesla P100 в полтора раза |
«Рок-м-ролл» против CUDA
Впрочем, для AMD важнее даже не обойти Nvidia по соотношению между ценой и производительностью, а гарантировать, что ее оборудование в популярных приложениях машинного обучения будет поддерживаться не хуже, чем аппаратные средства Nvidia.
Сегодня программное обеспечение, предназначенное для графических ускорителей, использует по большей части библиотеки Nvidia CUDA, которые работают только с оборудованием Nvidia. Библиотека с открытым кодом OpenCL предлагает поддержку устройств различных типов, не зависящую от поставщика, но производительность при этом оказывается ниже.
Вместо того чтобы вступать в борьбу за улучшение OpenCL — а это довольно медленный процесс, находящийся под контролем специального комитета, — в AMD предпочли создать свою собственную платформу с открытым кодом для вычислений с использованием графических процессоров. Платформа получила название ROCm — Radeon Open Compute Platform. По замыслу разработчиков, она должна представлять собой независимое от конкретного языка и поставщика оборудования связующее программное обеспечение для графических процессоров, рассчитанное в первую очередь на собственные технологии AMD, однако теоретически подходящее для любого графического процессора. При необходимости ROCm может взаимодействовать с графическими процессорами посредством OpenCL, но есть и собственные средства взаимодействия.
Остается узнать лишь, насколько ROCm превосходит OpenCL по производительности при машинном обучении. После переноса фреймворка Caffe на платформу ROCm производительность по сравнению с версией OpenCL выросла на 80%. Более того, конвертацию кода при использовании ROCm можно значительно автоматизировать, а значит, есть дополнительный стимул опробовать фреймворки на этой платформе. В перспективе планируется и поддержка других фреймворков, в частности TensorFlow и MxNet.
Долгая игра
Конечную цель AMD уяснить несложно. Это создание среды, в которой графические процессоры AMD могли бы заменить оборудование Nvidia при машинном обучении. Компании достаточно предложить за те же деньги похожую или более высокую производительность оборудования и обеспечить работу существующей программной экосистемы машинного обучения со своими собственными графическими процессорами.
В определенном смысле перенос программного обеспечения можно считать самой легкой частью предстоящей работы. Надо найти лишь программистов, которые конвертировали бы требуемый код для наиболее популярных фреймворков машинного обучения и поддерживали его в актуальном состоянии по мере дальнейшего развития аппаратного обеспечения и самих фреймворков.
Труднее всего для AMD заручиться поддержкой в местах масштабного применения графических процессоров. Все графические процессоры, предлагаемые сегодня в Amazon Web Services, Azure и Google Cloud Platform, разработаны компанией Nvidia. Но если следующая итерация программного обеспечения машинного обучения станет гораздо более независимой от графических процессоров конкретного производителя, то у поставщиков облачных решений будет меньше поводов отказаться от процессора Vega или его наследников.
Как бы то ни было, любые планы AMD должны нацеливаться на рост спроса. На то, чтобы набрать нужные темпы, у компании уйдут годы, ведь сражаться приходится фактически со всем уже завоеванным Nvidia миром.
Nvidia совершенствует систему оптимизации нейронных сетей TensorRT
Система TensorRT, разработанная в компании Nvidia, предназначена для решения задач глубинного обучения и включает в себя средства оптимизации и исполнения обученных нейронных сетей на графических процессорах Nvidia.
В компании считают, что подход, реализованный в TensorRT, гораздо эффективнее, чем использование только центрального процессора. Например, отмечают в компании, в тесте классификации изображений с использованием нейронной сети AlexNet, обученной на платформе Caffe, TensorRT 2, работающая на процессоре Nvidia Tesla P40, оказывается в 42 раза быстрее, чем аналогичная сеть, запущенная на процессоре Intel Xeon D-1587. По соотношению результатов и потребления энергии расчеты на графическом процессоре тоже оказываются значительно эффективнее, утверждают в компании.
TensorRT работает только на графических процессорах Nvidia, а исходные коды системы закрыты. Компания AMD обещает с большей открытостью подходить к применению графических процессоров в задачах машинного обучения. В AMD намереваются использовать аппаратно-независимую платформу машинного обучения с открытым исходным кодом ROCm.