Новые графические процессоры Nvidia Rubin используют программную эмуляцию для повышения производительности FP64 для HPC, бросая вызов недавнему лидерству AMD в этой области, несмотря на выраженные сомнения AMD относительно применимости этого метода в реальной жизни. Вычисления с плавающей запятой двойной точности (FP64) необходимы для современных приложений высокопроизводительных вычислений и научных вычислений. Недавно представленные графические процессоры Nvidia Rubin обеспечивают 33 терафлопс пиковой производительности FP64 без эмуляции, что на один терафлопс меньше, чем у H100 четырехлетней давности. Сообщается, что благодаря программной эмуляции, включенной в библиотеках CUDA Nvidia, чип может достичь производительности матрицы FP64 до 200 терафлопс. Это в 4,4 раза превышает аппаратные возможности предыдущих ускорителей Blackwell. Дэн Эрнст, старший директор по суперкомпьютерным продуктам Nvidia, заявил: «В результате многих исследований с партнерами и наших собственных внутренних расследований мы обнаружили, что точность, которую мы получаем от эмуляции, по крайней мере, так же хороша, как и то, что мы могли бы получить от аппаратного обеспечения с тензорным ядром». Николас Малайя, научный сотрудник AMD, отметил: «В некоторых тестах он довольно хорош, но неочевидно, что он хорош в реальных физических научных симуляциях». Малайя предположил, что эмуляция FP64 требует дальнейших исследований и экспериментов. FP64 остается стандартом для научных вычислений благодаря своему динамическому диапазону, способному выражать более 18,44 квинтиллионов (264) уникальные значения. Современные модели искусственного интеллекта, такие как DeepSeek R1, наоборот, часто обучаются на FP8, который может выражать 256 уникальных значений. Моделирование HPC основано на фундаментальных физических принципах, что делает его нетерпимым к ошибкам, в отличие от рабочих нагрузок ИИ. Малайя объяснила: «Как только вы начинаете совершать ошибки, эти конечные ошибки распространяются и вызывают такие вещи, как взрывы». Идея использования типов данных более низкой точности для эмуляции FP64 не нова. Эрнст отметил: «Эмуляция стара как грязь. Эмуляция существовала у нас в середине 50-х годов, до того, как у нас появилось оборудование для операций с плавающей запятой». В начале 2024 года исследователи из Токийского технологического института и Сибауры опубликовали статью, исследующую эту концепцию. Их метод показал, что матричные операции FP64 можно разложить на несколько операций INT8, обеспечивая более высокую производительность, чем нативная, на тензорных ядрах Nvidia. Этот подход, известный как схема Одзаки, лежит в основе библиотек эмуляции FP64 от Nvidia, выпущенных в конце прошлого года. Эрнст пояснил: «Это все еще FP64. Это не смешанная точность. Он просто сделан и сконструирован другим способом с аппаратной точки зрения». Современные графические процессоры содержат тензорные ядра низкой точности. Например, тензорные ядра Rubin способны выполнять 35 петафлопс плотных вычислений FP4. В FP64 эти чипы работают более чем в 1000 раз медленнее. Эрнст объяснил, что эффективность создания и эксплуатации этих тензорных ядер низкой точности побудила к изучению их использования для вычислений FP64. «Аппаратное обеспечение у нас есть, давайте попробуем его использовать. Это история суперкомпьютеров», — сказал он. AMD выразила обеспокоенность по поводу точности эмуляции FP64. Малайя указал, что эмуляция FP64 хорошо работает для хорошо подготовленных числовых систем, сославшись на тест High Performance Linpack (HPL). Однако «когда вы смотрите на материаловедение, коды горения, системы полосовой линейной алгебры и тому подобное, они оказываются гораздо менее хорошо обусловленными системами, и внезапно они начинают разрушаться», — сказал он. Малайя отметил, что эмуляция FP64 не полностью совместима с IEEE, поскольку алгоритмы Nvidia не учитывают такие нюансы, как положительные и отрицательные нули, а также числовые ошибки или ошибки бесконечного числа. Небольшие ошибки в промежуточных операциях эмуляции могут привести к неточностям. Увеличение количества операций для смягчения этого может свести на нет преимущества в производительности. Малая также сообщила: «У нас есть данные, которые показывают, что вы используете примерно вдвое больше памяти в Ozaki для эмуляции матриц FP64». Поэтому AMD концентрируется на специализированном оборудовании для двойной и одинарной точности: в новом MI430X используется архитектура чиплетов для повышения производительности. Эрнст признал пробелы в реализации Nvidia. Он утверждал, что положительные/отрицательные нули не имеют решающего значения для большинства специалистов по высокопроизводительным вычислениям. Nvidia разработала дополнительные алгоритмы для обнаружения и устранения таких проблем, как отсутствие чисел и бесконечные числа. Что касается потребления памяти, Эрнст признал, что оно может быть выше, но заявил, что эти накладные расходы относятся к операции, а не к приложению, обычно с использованием матриц размером в несколько гигабайт. Он также утверждал, что проблемы соответствия IEEE часто не возникают в случаях матричного умножения. «Большинство случаев использования, в которых действуют правила упорядочивания, соответствующие требованиям IEEE, не возникают в случаях матрицы или матричного умножения. В любом случае не существует DGEMM, который бы действительно следовал этому правилу», — поделился Эрнст. Эмуляция FP64 в первую очередь эффективна для подмножества приложений HPC, использующих операции плотного умножения общей матрицы (DGEMM). По оценкам Малайи, для 60–70 процентов рабочих нагрузок высокопроизводительных вычислений эмуляция дает минимальную выгоду. «По нашему анализу, подавляющее большинство реальных рабочих нагрузок высокопроизводительных вычислений полагаются на векторный FMA, а не на DGEMM», — сказал он. Для задач с большим количеством векторов, таких как вычислительная гидродинамика, графические процессоры Rubin работают на более медленных векторных ускорителях FP64 в ядрах CUDA. Эрнст подчеркнул, что более высокие FLOPS не всегда означают полезные FLOPS, поскольку пропускная способность памяти часто ограничивает реальную производительность. Он сослался на векторно-тяжелый тест High Performance Conjugate Gradient от TOP500, где процессоры часто лидируют из-за более высоких битов на FLOPS их подсистем памяти. С помощью новых суперкомпьютеров, объединяющих графические процессоры Nvidia Blackwell и Rubin, будет проверена жизнеспособность эмуляции FP64. Присущая алгоритмам независимость от конкретного оборудования позволяет со временем потенциально улучшать их. Малайя подтвердил, что AMD также изучает возможность эмуляции FP64 на таких чипах, как MI355X, с помощью программных флагов для определения подходящих приложений. Он отметил, что соответствие IEEE подтвердит этот подход, гарантируя согласованность результатов при эмуляции и выделенном кристалле. Малайя заявила: «Если я могу пойти к партнеру и сказать: запустите эти два двоичных файла: этот дает тот же ответ, что и другой, и работает быстрее, и да, внутри мы реализуем какую-то схему — думаю, это убедительный аргумент, который готов к использованию в прайм-тайм». Он добавил, что определенные приложения могут быть более надежными с помощью эмуляции, предположив: «Мы, как сообщество, должны создать корзину приложений, на которые можно будет обратить внимание».
Source: Графические процессоры Nvidia Rubin: 200 терафлопс FP64 за счет программной эмуляции