Моделирование с высоким разрешением может обеспечить отличное визуальное качество, требуемое современными передовыми приложениями компьютерной графики. Однако по мере масштабирования симуляций им требуется все более дорогостоящая память для хранения физических состояний, что может быть проблематично, особенно при работе на графических процессорах с жесткими ограничениями по объему памяти.

Предыдущие работы по расширению таких симуляций в основном были сосредоточены на повышении производительности вычислений, в то время как подходы к повышению эффективности использования памяти оставались в значительной степени неисследованными. В недавней статье исследовательская группа из Taichi Graphics, MIT CSAIL, Чжэцзянского университета, Университета Цинхуа и Kuaishou Technology представляет язык программирования и компилятор для квантового моделирования, который обеспечивает высокую производительность и значительно снижает затраты памяти за счет гибкого и агрессивного квантования.

Команда резюмирует свой вклад следующим образом:

  1. Простой программный интерфейс для квантованного моделирования, обеспечивающий программисту побитовый контроль над числовыми типами данных. Интерфейс числового типа данных ортогонален фактическим вычислениям, что позволяет программистам быстро экспериментировать с различными схемами квантования.
  2. Система компиляции, которая автоматически генерирует эффективный код для кодирования/декодирования квантованных типов данных. Предлагаемая система поддерживает серверные части x64, ARM64, CUDA и Apple Metal.
  3. Набор оптимизаций компилятора для предметной области дополнительно улучшает производительность памяти при скомпилированных квантовых вычислениях. Эти оптимизации обеспечивают повышение производительности в 4,10 раза на микротестах и ​​до 1,58 раза на крупномасштабных симуляторах графического процессора.
  4. Систематические оценки предлагаемой системы. Команда демонстрирует, что их система увеличивает разрешение физических симуляций до беспрецедентных разрешений. При правильном квантовании они достигают 8-кратного повышения эффективности памяти на каждой ячейке Game of Life, 1,57-кратного на каждом вокселе моделирования жидкости Эйлера и 1,7-кратного на каждом методе материальной точки [Stomakhin et al. 2013] частица. Насколько им известно, это первый раз, когда эти симуляции с высоким разрешением могут работать на одном графическом процессоре. Предлагаемая система одновременно обеспечивает разрешение, производительность, точность и визуальное качество.

В то время как большая часть существующих работ по моделированию с высоким разрешением была основана на ручном низкоуровневом проектировании производительности с использованием C++ и CUDA, предлагаемая система построена поверх Taichi [Hu et al. 2019], язык программирования, ориентированный на данные, разработанный для приложений моделирования. Хотя исследователи для простоты сосредоточились на компьютерах потребительского уровня с одним графическим процессором, предложенные ими методы также могут быть применены к настройкам с несколькими графическими процессорами и несколькими узлами.

Главной целью нового исследования является расширение пределов разрешения симуляции за счет устранения связанных с этим ограничений по объему памяти. С этой целью, вдохновленная идеей о том, что во многих симуляциях не требуются стандартные типы данных IEEE 754 полной точности, команда использует в симуляциях типы данных низкой точности, чтобы сэкономить место в памяти и пропускную способность.

К сожалению, ручное кодирование программ, работающих с низкоточными и квантованными типами данных, чрезвычайно трудоемко и требует повторяющихся процессов проб и ошибок для определения правильной схемы квантования. Таким образом, возможность гибкого переключения между различными схемами квантования жизненно важна при разработке эффективных симуляторов квантования.

Чтобы решить эту проблему, предлагаемый интерфейс программирования для квантованного моделирования обеспечивает программисту управление числовыми типами данных на уровне битов. Этот подход позволяет программистам задавать настраиваемые и квантованные типы данных для хранения физического состояния, что значительно упрощает разработку квантованных симуляторов, а также снижает потребление пропускной способности памяти.

Команда представляет систему компиляции, которая автоматически генерирует эффективный код для кодирования и декодирования квантованных типов данных, и новую систему компоновки иерархической структуры данных, а также разрабатывает несколько схем, позволяющих эффективно декодировать и кодировать действительные числа.

Команда также предоставляет набор оптимизаций компилятора для предметной области, которые еще больше улучшают производительность памяти скомпилированных квантованных вычислений с помощью трех новых оптимизаций: 1) слияние хранилища битовых структур, 2) вывод о безопасности потоков и 3) векторизация битового массива. Первые два предназначены для повышения производительности в широком диапазоне рабочих нагрузок моделирования, а третий может обеспечить значительное повышение производительности вычислений с использованием 1-битных типов данных.

Чтобы оценить производительность и точность предложенной системы в условиях ограниченного объема памяти, исследователи провели эксперименты с тремя приложениями: Game of Life, моделирование жидкости Эйлера и метод материальных точек с наименьшими квадратами (MLS-MPM).

В экспериментах результаты предложенного трехмерного квантованного моделирования были неотличимы от результатов полной точности. Исследование также показывает, что, изменяя не более трех процентов кода симулятора, разработчик может квантовать MLS-MPM или симулятор жидкости Эйлера, работающий со скоростью, сравнимой с версией полной точности, демонстрируя эффективность и простоту использования предлагаемой системы. .

Код доступен на проекте GitHub. Статья QuanTaichi: компилятор для квантовых симуляций является докладом конференции SIGGRAPH 2021 и доступна на yuanming.taichi.graphics.

Автор: Геката Хе | Редактор: Майкл Саразен, Чейн Чжан

Мы знаем, что вы не хотите пропустить ни одной новости или научного открытия. Подпишитесь на нашу популярную рассылку Synced Global AI Weekly, чтобы получать еженедельные обновления AI.