AI accelerators for scientific computing обещают высокий throughput, но требуют пересборки алгоритмов. Разбираем, где именно возникает разрыв и как его закрывают на практике.
Первое столкновение происходит на уровне архитектуры. AI-ориентированные ускорители, такие как NPU, оптимизированы под плотные тензорные операции и низкую точность. Научные вычисления требуют обратного: устойчивой численной точности, нерегулярного доступа к памяти и сложной синхронизации. Это создает три системных разрыва: execution mismatch, precision gap и data-movement gap. В результате прямой перенос HPC-кода на NPU приводит либо к деградации точности, либо к упору в память и коммуникации, а не в compute.
Решение в работе строится не вокруг одной оптимизации, а вокруг координации нескольких уровней. Используется гетерогенное исполнение (CPU + NPU), смешанная точность (mixed-precision computing) и явная оркестрация памяти. Компромисс здесь очевиден: рост сложности разработки и зависимость от архитектуры. Но это позволяет перенести вычислительно плотные части на тензорные блоки (Cube Units), а чувствительные к точности или управлению — оставить на CPU. Такой подход не устраняет ограничения NPU, но обходит их через декомпозицию задачи.
На уровне реализации ключевую роль играет управление памятью и разбиение вычислений. Архитектура Ascend разделяет вычисления на Cube (высокий throughput) и Vector (гибкость), что требует явного маппинга kernels. Например:
- плотные операции (GEMM) масштабируются на Cube и достигают высокой загрузки,
- операции типа matrix-vector остаются memory-bound и ограничены bandwidth,
- сложные случаи (например, complex GEMM) требуют дополнительной стадии распаковки и теряют эффективность.
Для устранения precision gap применяется два подхода. Первый — mixed precision с итеративным уточнением (как в HPL-MxP), где низкая точность используется для основной работы, а точность восстанавливается на CPU. Второй — эмуляция точности, как в SGEMM-cube, где FP32 вычисление раскладывается на несколько FP16 операций с последующей агрегацией. Это увеличивает число операций, но позволяет использовать высокую пропускную способность тензорных блоков.
Отдельный класс проблем связан с data movement. В задачах вроде квантового моделирования (PQSim) или Monte Carlo (SMC-X) узким местом становится не compute, а перемещение данных. Здесь применяются техники:
- fusion операций для снижения количества запусков,
- tile-based обработка с удержанием данных в on-chip памяти,
- преобразование нерегулярных алгоритмов в SIMD-дружественные формы.
Особенно показателен SMC-X: исходно нерегулярный алгоритм с ветвлениями преобразуется в пакетную обработку с масками, что позволяет эффективно использовать vector units. Это типичный trade-off: ухудшение “чистоты” алгоритма ради предсказуемого выполнения на железе.
Результаты показывают, что производительность зависит не от пиковых FLOPS, а от согласованности трех факторов: точности, размещения вычислений и движения данных. В compute-bound задачах NPU демонстрируют высокую эффективность. В bandwidth-bound и нерегулярных задачах выигрыш достигается только после существенной переработки алгоритма. В некоторых случаях наблюдается конкурентная производительность и масштабируемость, но универсальности нет — многое остается чувствительным к конкретной архитектуре и стеку.
Итог выглядит прагматично. AI accelerators для scientific computing работают, но не как drop-in замена GPU/CPU. Это другая модель программирования, где:
- точность становится частью алгоритма,
- память управляется явно,
- вычисления распределяются между устройствами.
Индустриально это отражает более широкий тренд: сближение AI и HPC приводит не к унификации, а к усложнению стека. Выигрывают те системы, где алгоритм, рантайм и архитектура согласованы как единое целое.
Источник информации
arXiv — крупнейший открытый репозиторий препринтов (с 1991 года, под эгидой Корнелла), где исследователи оперативно размещают рабочие версии статей; материалы общедоступны, но не проходят полное рецензирование, поэтому результаты следует считать предварительными и, по возможности, сверять с обновленными версиями или рецензируемыми журналами. arxiv.org