Nvidia делает ставку на программную эмуляцию FP64 для повышения производительности HPC на чипах Rubin, но исследователи AMD утверждают, что, хотя такие алгоритмы, как схема Озаки, заслуживают изучения, они еще не готовы к широкому внедрению из-за проблем с точностью и соответствием IEEE.
Вычисления с плавающей запятой двойной точности (также известные как FP64) — это то, что удерживает современные самолеты в небе, ракеты — в полете, вакцины — эффективными, и, да, ядерное оружие — боеспособным. Но вместо создания специализированных чипов, обрабатывающих этот важнейший тип данных на аппаратном уровне, Nvidia делает ставку на эмуляцию для повышения производительности в приложениях высокопроизводительных вычислений (HPC) и научных расчетах, где AMD в последние поколения сохраняла лидерство.
Следует отметить, что эта эмуляция не заменила аппаратную поддержку FP64 в графических процессорах Nvidia. Новые графические процессоры Rubin от Nvidia, представленные недавно, по-прежнему обеспечивают пиковую производительность FP64 около 33 терафлопс, но это на терафлопс сегок, чем у четырехлетнего H100.
Если включить программную эмуляцию в библиотеках CUDA Nvidia, чип сможет достичь производительности до 200 терафлопс при вычислении матриц FP64. Это в 4,4 раза больше, чем могли обеспечить их предшественники Blackwell на аппаратном уровне.
На бумаге Rubin — это не только самый мощный ускоритель искусственного интеллекта от Nvidia, но и самый производительный графический процессор для научных вычислений за последние годы.
“Мы обнаружили в ходе многочисленных исследований с партнерами и нашими внутренними проверках, что точность, которую мы получаем от эмуляции, по меньшей мере так же хороша, как и та, которую мы получили бы от аппаратного обеспечения с тензорными ядрами”, — сообщил El Reg Дэн Эрнст, старший директор по продуктам суперкомпьютеров в Nvidia.
Эмулированный FP64, который не является эксклюзивом Nvidia, потенциально может кардинально улучшить пропускную способность и эффективность современных графических процессоров. Однако не все в этом убеждены.
“В некоторых тестах он показывает себя весьма хорошо, но не очевидно, что он хорош в реальных физических научных симуляциях”, — сказал нам Николас Малайя, сотрудник AMD (AMD fellow). Он утверждал, что, хотя FP64-эмуляция, безусловно, заслуживает дальнейших исследований и экспериментов, она еще не готова к широкому внедрению.
Почему FP64 по-прежнему важен в эпоху ИИ
Даже по мере того как архитектуры чипов стремятся к использованию типов данных с все более низкой точностью, FP64 остается золотым стандартом для научных вычислений по веской причине. FP64 не имеет себе равных по динамическому диапазону, способному выразить более 18,44 квинтиллиона (264) уникальных значений.
Для сравнения: современные модели ИИ, такие как DeepSeek R1, обычно обучаются с использованием FP8, который может выразить жалкие 256 уникальных значений. Используя общую однородность нейронных сетей, блочные типы данных с плавающей запятой, такие как MXFP8 или MXFP4, могут применяться для расширения их динамического диапазона.
Это подходит для приблизительных вычислений, характерных для больших языковых моделей, но не является заменой FP64, особенно когда речь идет о вопросах жизни и смерти.
В отличие от рабочих нагрузок ИИ, которые очень толерантны к ошибкам, симуляции HPC опираются на фундаментальные физические принципы, такие как сохранение массы и энергии. “Как только вы начинаете накапливать ошибки, эти конечные ошибки распространяются, и они вызывают такие вещи, как взрывы (blow ups)”, — отметил Малайя.
Эмулированный FP64 и схема Озаки
Идея использования типов данных с более низкой точностью, часто целочисленных, для эмуляции FP64 — не нова. “Эмуляция стара как мир”, — заявил Эрнст. “У нас была эмуляция в середине 50-х годов, еще до того, как у нас появилось аппаратное обеспечение для чисел с плавающей запятой”.
Этот процесс требовал значительно большего количества операций для завершения и часто влек за собой серьезные потери производительности, но он позволял выполнять математические операции с плавающей запятой даже тогда, когда в оборудовании не было выделенного блока с плавающей запятой (FPU).
К 1980-м годам FPU стали обычным явлением, и необходимость в эмуляции в значительной степени отпала. Однако в начале 2024 года исследователи из Токийского и Сибаурского технологических институтов опубликовали статью, возродившую эту концепцию, показав, что матричные операции FP64 могут быть разложены на несколько операций INT8, которые при выполнении на тензорных ядрах Nvidia достигают более высокой, чем нативная, производительности.
Этот подход обычно называют схемой Озаки, и он лежит в основе собственных библиотек эмуляции FP64 от Nvidia, которые были выпущены в конце прошлого года. И, как поспешил отметить Эрнст, “это все еще FP64. Это не смешанная точность. Это просто реализовано и сконструировано иначе с точки зрения оборудования”.
Современные графические процессоры напичканы тензорными ядрами низкой точности. Даже без сложного адаптивного сжатия, присущего тензорным ядрам Rubin, эти чипы способны выполнять плотные вычисления FP4 с производительностью 35 петафлопс. Для сравнения, в режиме FP64 эти чипы более чем в 1000 раз медленнее.
Эти тензорные ядра низкой точности очень эффективно создавать и запускать, поэтому возник вопрос: почему бы не использовать их для FP64, пояснил Эрнст. “У нас есть оборудование, давайте попробуем его использовать. В этом и заключается история суперкомпьютеров”.
Но действительно ли это точно?
Хотя Nvidia стремится подчеркнуть возможности, которые открывает эмуляция FP64 на ее графических процессорах Rubin и даже более старых Blackwell, конкурент AMD не считает этот подход достаточно готовым.
По словам Малайи, эмуляция FP64 лучше всего работает для численно хорошо обусловленных систем, ярким примером чего является бенчмарк High Performance Linpack (HPL). “Но когда вы смотрите на материаловедение, коды горения, системы с ленточной линейной алгеброй, подобные этим, системы гораздо менее хорошо обусловлены, и внезапно это начинает давать сбои”, — сказал он.
Иными словами, имеет ли смысл FP64-эмуляция, на самом деле зависит от конкретного приложения. Для одних это нормально, а для других — нет.
Одним из основных камней преткновения для AMD является то, что эмуляция FP64 не совсем соответствует стандарту IEEE. Алгоритмы Nvidia не учитывают такие вещи, как положительные и отрицательные нули, ошибки “не число” (Not a Number) или ошибки “бесконечность”.
Из-за этого небольшие ошибки в промежуточных операциях, используемых для эмуляции более высокой точности, могут привести к возмущениям, которые могут исказить окончательный результат, объяснил Малайя.
Один из способов обойти это — увеличить количество выполняемых операций. Однако в определенный момент огромное количество требуемых операций перевешивает любое преимущество, которое могла бы дать эмуляция.
Все эти операции также занимают память. “У нас есть данные, показывающие, что вы используете примерно вдвое больше памяти в схеме Озаки для эмуляции этих матриц FP64”, — отметил Малайя.
По этим причинам “Дом Зена” (House of Zen, отсылка к архитектуре AMD Zen) сосредоточил свое внимание на специализированном оборудовании для приложений, требующих двойной и одинарной точности. Их предстоящий MI430X использует чиплетную архитектуру AMD для повышения производительности аппаратного обеспечения с двойной и одинарной точностью.
Заполнение пробелов
Проблемы, с которыми сталкиваются алгоритмы эмуляции FP64, такие как схема Озаки, не являются новостью для Эрнста, который прекрасно осведомлен о пробелах в реализации Nvidia.
Эрнст утверждал, что для большинства практиков HPC такие вещи, как положительные/отрицательные нули, не имеют большого значения. Тем временем Nvidia разработала дополнительные алгоритмы для обнаружения и смягчения последствий таких проблем, как “не число”, “бесконечность” и неэффективные операции эмуляции.
Что касается потребления памяти, Эрнст признал, что оно может быть немного выше, но подчеркнул, что эти накладные расходы относятся к операции, а не к самому приложению. По его словам, в большинстве случаев речь идет о матрицах размером не более нескольких гигабайт.
Таким образом, хотя верно, что эмуляция FP64 не соответствует стандарту IEEE, то, имеет ли это значение, сильно зависит от конкретного приложения, утверждал Эрнст. “Большинство сценариев использования, где вступают в силу правила соответствия IEEE, не встречаются в случаях матричного умножения. В DGEMM все равно редко следуют этому правилу”, — сказал он.
Отлично для матриц, не очень для векторов
Даже если Nvidia сможет преодолеть потенциальные подводные камни эмуляции FP64, это не отменяет того факта, что данный метод полезен лишь для подмножества приложений HPC, которые полагаются на операции плотного общего матричного умножения (DGEMM).
По словам Малайи, для 60-70 процентов рабочих нагрузок HPC эмуляция дает мало или совсем не дает преимуществ.
“По нашему анализу, подавляющее большинство реальных рабочих нагрузок HPC полагаются на векторное FMA (Fused Multiply-Add), а не на DGEMM”, — отметил он. “Я бы не сказал, что это крошечная доля рынка, но это, по сути, нишевый кусок”.
Для рабочих нагрузок, интенсивно использующих векторы, таких как вычислительная гидродинамика, графические процессоры Rubin от Nvidia вынуждены работать на более медленных векторных ускорителях FP64 в CUDA-ядрах чипа.
Однако, как поспешил заметить Эрнст: больше FLOPS не всегда означает полезные FLOPS. Те рабочие нагрузки, которые обычно выполняются на векторных движках FP64, редко достигают и доли теоретической производительности чипа, и все потому, что память не успевает за ними.
Мы видим это очень ясно на примере бенчмарка High Performance Conjugate Gradient из TOP500, который интенсивно использует векторы, где доминируют центральные процессоры благодаря более высокому соотношению бит на FLOPS, обеспечиваемому их подсистемами памяти.
Rubin может и не демонстрировать самую быструю векторную производительность FP64, но с 22 ТБ/с HBM4 его реальная производительность в этих рабочих нагрузках, вероятно, будет намного выше, чем предполагает техническая спецификация.
Готова или нет, эмуляция FP64 наступает
С учетом того, что в ближайшие несколько лет в эксплуатацию будут введены новые суперкомпьютеры, оснащенные графическими процессорами Blackwell и Rubin от Nvidia, любые вопросы о жизнеспособности эмуляции FP64 будут проверены в ближайшее время.
И поскольку эта эмуляция не привязана к конкретному аппаратному обеспечению, существует потенциал для улучшения алгоритмов с течением времени по мере того, как исследователи будут выявлять сценарии, в которых эта техника преуспевает или испытывает трудности.
Несмотря на опасения Малайи, он отметил, что AMD также изучает возможность использования эмуляции FP64 на таких чипах, как MI355X, с помощью программных флагов, чтобы понять, где это может быть уместно.
Соответствие стандарту IEEE, по его словам, в значительной степени способствовало бы подтверждению этого подхода, гарантируя, что результаты, полученные от эмуляции, будут такими же, как и те, что получены от специализированного кремния.
“Если я смогу подойти к партнеру и сказать: запустите эти два бинарных файла: этот дает вам тот же ответ, что и другой, и он быстрее, и да, под капотом мы используем какую-то схему — я думаю, это убедительный аргумент в пользу того, что это готово к широкому внедрению”, — сказал Малайя.
Возможно, для некоторых приложений эмуляция окажется более надежной, чем для других, отметил он. “Нам, как сообществу, следует создать набор приложений для изучения. Я думаю, это путь к прогрессу”. ®
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Tobias Mann