Спонсируемая функция Обучение модели ИИ требует огромных вычислительных мощностей в сочетании с высокой пропускной способностью памяти. Поскольку обучение модели может быть распараллелено, а данные разбиты на относительно небольшие части и пережевываются большим количеством довольно скромных математических блоков с плавающей запятой, GPU, вероятно, был естественным устройством, на котором могла бы начаться революция ИИ.
Хотя существуют некоторые специализированные ASIC, которые могут выполнять огромное количество необходимых матричных вычислений, с различными видами памяти SRAM или DRAM, GPU по-прежнему является предпочтительным устройством для обучения ИИ. Отчасти потому, что GPU повсеместно распространены, а их вычислительные структуры хорошо разработаны и легко доступны, нет причин полагать, что для большинства компаний (большую часть времени) GPU останется предпочтительным вычислительным механизмом для обучения ИИ.
Не помешает и то, что GPU-ускорение стало обычным явлением для рабочих нагрузок по моделированию и симуляции в HPC. Или что другие рабочие нагрузки в центре обработки данных – например, инфраструктура виртуальных рабочих столов, аналитика данных и системы управления базами данных – также могут быть ускорены на точно таком же железе, которое используется для обучения ИИ.
Но выводы ИИ, когда относительно сложная модель ИИ сводится к набору весов для проведения прогностических расчетов в отношении новых данных, которые не входили в исходный набор для обучения, – это совсем другое дело. По очень веским техническим и экономическим причинам во многих случаях выводы ИИ должны оставаться – и будут оставаться – на тех же серверных процессорах, на которых сегодня работают приложения, дополняемые алгоритмами ИИ.
Трудно превзойти бесплатный вывод ИИ
Существует множество аргументов, почему вычисления должны оставаться на CPU, а не перемещаться на ускоритель внутри серверного шасси или по сети в банки GPU или пользовательские ASIC, работающие как ускорители вычислений.
Во-первых, внешние ускорители вывода добавляют сложности (нужно покупать больше вещей, которые могут сломаться) и потенциально увеличивают риски безопасности, поскольку между приложением и его ускорителем вывода больше поверхностей для атак. И, несмотря ни на что, внешние механизмы вывода добавляют задержку, особенно для тех рабочих нагрузок, которые работают через сеть, что делают многие гипермасштабировщики и создатели облаков.
Следует признать, что в предыдущих поколениях серверных процессоров пропускная способность выводов, использующих целочисленные данные смешанной точности или данные с плавающей точкой. Проталкивание их через интегрированные блоки векторной математики не требовало большой пропускной способности, хотя это могло быть совершенно нормально для скорости выводов, требуемой многими приложениями. И поэтому 70% вычислений в центрах обработки данных, включая гипермасштабирование и создание облаков, а также другие виды предприятий, по-прежнему выполняются на процессорах Intel® Xeon®. Но для тяжелых заданий по выводу данных пропускная способность CPU серверного класса не может конкурировать с GPU или специализированными ASIC.
До сих пор.
Как мы уже обсуждали ранее, в процессорах Intel® Xeon® 4-го поколения “Sapphire Rapids” ускорители матричной математики Intel Advanced Matrix Extensions (AMX) в каждом ядре “Golden Cove” значительно увеличивают производительность для математических операций низкой точности, которые лежат в основе выводов ИИ (подробнее об ускорителях, встроенных в новейшие процессоры Intel Xeon, читайте здесь).
Рис1: Пропускная способность векторной матрицы Sapphire Rapids
Блоки AMX могут обрабатывать 2 048 8-битных целочисленных операций (INT8) за цикл на ядро. Это в 24 раза больше пропускной способности, чем у простых ванильных векторных блоков AVX-512, используемых в процессорах “Skylake”, и в 8 раз больше по операциям INT8, чем у блоков AVX-512 “Cascade Lake” и “Ice Lake”, которые были дополнены гораздо более эффективными инструкциями векторных нейронных сетей (VNNI). Ядра “Golden Cove” поддерживают использование обоих блоков AVX-512 с VNNI и AMX, работающих одновременно, так что это в 32 раза превышает пропускную способность INT8 при работе с выводами.
Хитрость с блоком AMX заключается в том, что он включен в ядро Golden Cove в каждом из 52 вариантов процессоров Sapphire Rapids в стеке SKU. Основываясь на целочисленной производительности этих ядер (не включая производительность AVX-512 и AMX), соотношение цена/производительность Sapphire Rapids Xeon такое же или немного лучше, чем у предыдущего поколения процессоров Xeon SP. Это еще один способ сказать, что блоки AMX по сути бесплатны, поскольку они включены во все процессоры и обеспечивают дополнительную производительность без дополнительных затрат по сравнению с Ice Lake. Трудно получить дешевле, чем бесплатно, особенно если процессоры изначально необходимы для запуска приложений.
Stacking Up The Flops
Теоретическая производительность – это одно, но важно то, как реальные приложения для выводов ИИ могут использовать новые блоки AMX в ядрах Golden Cove.
Давайте посмотрим на более долгосрочную перспективу и проследим, как развивалась производительность вычислений с момента запуска процессоров Xeon E7 “Broadwell” в июне 2016 года и последующих четырех поколений процессоров Xeon SP. Этот конкретный график показывает взаимодействие пропускной способности процессоров и ватт на каждую 1000 изображений, обрабатываемых в секунду:
Рис2: Sapphire Rapids Xeon с течением времени Вывод RESNET
См. [A17, A33] на https://edc.intel.com/content/www/us/en/products/performance/benchmarks/4th-generation-intel-xeon-scalable-processors/. Результаты могут отличаться.
В данном случае тесты, которые проводились на пяти поколениях серверов, выполняют распознавание изображений с использованием модели ResNet-50 на базе фреймворка TensorFlow. За последние девять лет пропускная способность обработки изображений увеличилась с примерно 300 изображений в секунду до более чем 12 000 изображений в секунду, что является более чем 40-кратным улучшением.
А тепло, выделяемое на каждую 1000 обработанных изображений в секунду, снизилось еще больше, чем показывает этот график. Для достижения скорости 1000 изображений в секунду потребовалось бы три с половиной 24-ядерных процессора Broadwell E7 с точностью FP32, а при мощности 165 Вт на чип это означает 550 Вт, выделенных для такой нагрузки. Чипы Sapphire Rapids с блоками AMX, использующими смесь BF16 и INT8, сжигают менее 75 Вт. Таким образом, производительность на ватт в Sapphire Rapids в 7,3 раза выше по сравнению с предыдущими пятью поколениями процессоров Broadwell.
А как насчет других рабочих нагрузок? Давайте посмотрим. Вот как 56-ядерные процессоры Sapphire Rapids Xeon SP-8480+, работающие на частоте 2 ГГц, сравнялись с 40-ядерными процессорами Ice Lake Xeon SP-8380 предыдущего поколения, работающими на частоте 2,3 ГГц, при классификации изображений, обработке естественного языка, сегментации изображений, трансформации и моделях обнаружения объектов, работающих на базе фреймворка PyTorch:
Рис3: Sapphire Rapids против Ice Lake различные выводы
См. [A17, A33] на https://edc.intel.com/content/www/us/en/products/performance/benchmarks/4th-generation-intel-xeon-scalable-processors/. Результаты могут отличаться.
Как указано на диаграмме, это сравнение обработки FP32 на блоках AVX-512 в чипе Ice Lake с обработкой BF16 на блоках AMX. Одно только снижение точности в два раза между двумя платформами удваивает пропускную способность между этими двумя поколениями. Относительная производительность этих двух чипов (суммирование количества ядер и тактовых частот) дает еще 21,7% прироста производительности. Остальной прирост производительности – который составляет от 3,5X до 7,8X от 5,7X до 10X, показанных выше – происходит за счет использования блоков AMX.
Конечно, реальный тест – это то, как производительность блоков AMX, присущая Sapphire Rapids, сравнится с использованием внешнего ускорителя. Вот как выглядит двухсокетный сервер с процессорами Xeon SP-8480+ по сравнению с ускорителем Nvidia “Ampere” A10 GPU:
Рис4: Sapphire Raipds против NVIDIA A10 Различные выводы
См. [A218] на https://edc.intel.com/content/www/us/en/products/performance/benchmarks/4th-generation-intel-xeon-scalable-processors/. Результаты могут отличаться.
Производительность двух процессоров Sapphire Rapids составляет 90% от производительности A10 при выводе данных на естественном языке на модели BERT-Large и превосходит A10 в 1,5-3,5 раза при других рабочих нагрузках.
Ускоритель A10 на GPU, вероятно, стоит от $3,000 до $6,000, и находится далеко снаружи либо на шине PCI-Express 4.0, либо еще дальше в сети Ethernet или InfiniBand в выделенном сервере выводов, доступ к которому осуществляется по сети в обе стороны от серверов приложений. И даже если новый ускоритель GPU L40 “Lovelace” от Nvidia может выполнять гораздо больше работы, блоки AMX встроены в процессоры Sapphire Rapids по умолчанию и не нуждаются в дополнительном подключении.
Спонсируется компанией Intel.