Метод симуляции жидкости в реальном времени с помощью нейронных cетей тема диссертации и автореферата по ВАК РФ 05.13.18, кандидат наук Туманов Евгений Александрович

  • Туманов Евгений Александрович
  • кандидат науккандидат наук
  • 2021, ФГАОУ ВО «Московский физико-технический институт (национальный исследовательский университет)»
  • Специальность ВАК РФ05.13.18
  • Количество страниц 111
Туманов Евгений Александрович. Метод симуляции жидкости в реальном времени с помощью нейронных cетей: дис. кандидат наук: 05.13.18 - Математическое моделирование, численные методы и комплексы программ. ФГАОУ ВО «Московский физико-технический институт (национальный исследовательский университет)». 2021. 111 с.

Оглавление диссертации кандидат наук Туманов Евгений Александрович

Введение

Глава 1. Обзор предшествующих работ

1.1 Классические методы симуляции жидкости

1.2 Работы из области глубокого обучения, на которые опирается

наш метод

1.3 Существующие методы симуляции, построенные на принципе аппроксимации данных

1.4 Восстановление поверхности жидкости и рендеринг

1.5 Двумерные методы симуляции жидкости

Глава 2. Описание метода

2.1 Позиционный метод симуляции жидкости

2.1.1 Детектирование столкновений частиц с твердыми телами

2.1.2 Проекция ограничений

2.2 Постановка задачи регрессии

2.3 Детектирование столкновений частиц с твердыми телами

2.4 Дескриптор системы частиц Зп*

2.5 Сбор данных для обучения

2.6 Архитектуры нейронных сетей, аппроксимирующих решение

2.7 Понижение пространственной размерности входа

2.8 Получение латентного представления жидкостной динамики

2.9 Повышение пространственной размерности решения

2.10 Учёт вязкости и других внутренних сил

2.11 Учёт воздействия жидкости на среду

2.12 Симуляция жидкости в неограниченном домене вычислений

2.13 Гибридная симуляция жидкости. Симуляция в 2.5Э

Глава 3. Оценка метода и его применение на практике

3.1 Оптимизация архитектуры нейронной сети, аппроксимирующей

решение

3.2 Низкоуровневая оптимизация прямого прохода по свёрточным

сетям

3.3 Обобщающая способность метода

3.4 Сравнение предложенного метода с известными решениями

3.5 Рендеринг поверхности жидкости

Заключение

Список литературы

Рекомендованный список диссертаций по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Введение диссертации (часть автореферата) на тему «Метод симуляции жидкости в реальном времени с помощью нейронных cетей»

Введение

Развитие графических процессоров и библиотек для работы с нейронными сетями в последние годы привело к заметному ускорению как алгоритмов прямого прохода по свёрточным нейронным сетям, так и к ускорению их обучения. Данное техническое изменение вдохновило множество проектов, нацеленных на ускорение физических симуляций путём их аппроксимации с помощью алгоритмов машинного обучения и глубокого обучения. В представленной работе предлагается метод, который эффективно аппроксимирует классический Позиционный метод симуляции жидкости (Position Based Fluid, сокращение — PBF)[1]. Эффективное решение поставленной задачи предполагает, что модель, в нашем случае нейронная сеть, точно аппроксимирует решение, полученное методом PBF, и одновременно требует меньше времени для вычисления в сравнении с PBF. В рамках данной работы нам удалось прийти к такому решению с помощью использования специфической архитектуры нейронной сети, которая использует субпиксельные сверточные слои для повышения пространственного разрешения. В наших экспериментах нам удалось получить метод, основанный на нейронной сети, работающий до 200 раз быстрее в сравнении с аппроксимируемым методом. Предлагаемое решение позволяет симулировать жидкость в реальном времени, и поддерживает интерактивное взаимодействие между жидкостью и окружением.

Актуальность темы и степень ее разработанности. Развитие графических процессоров и библиотек для работы с нейронными сетями в последние годы привело к заметному ускорению как алгоритмов прямого прохода по свёрточным нейронным сетям, так и к ускорению их обучения. Данное техническое изменение вдохновило множество проектов, нацеленных на ускорение физических симуляций путём их аппроксимации с помощью алгоритмов машинного обучения и глубокого обучения. В представленной работе предлагается метод, который эффективно аппроксимирует классический Позиционный метод симуляции жидкости (Position Based Fluid, сокращение — PBF)[1]. Эффективное решение поставленной задачи предполагает, что модель, в нашем случае нейронная сеть, точно аппроксимирует решение, полученное методом PBF, и одновременно требует меньше времени для вычисления в сравнении с PBF. В

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

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

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

Сегодня при создании кинофильмов тратится огромное количество машинных часов не только для рендеринга смоделированного мира, но и для его физической симуляции. При создании фильма Аватар 2009 года была нанята специальная компания Weta Digital, которая осуществляла рендеринг каждого финального кадра в фильме. По заявлению Weta Digital, они использовали для рендеринга кластер из 40000 процессоров с общей оперативной памятью более 100 терабайт. Суперкомпьютер Weta Digital, работая 24 часа в сутки, потратил больше месяца на то, чтобы рассчитать всё необходимое для создания итогового кино. При всем этом расчёты Weta Digital вела летом 2008 года, то есть больше 10 лет назад. Фильмы, которые производят сегодня, требуют не меньшего числа элементарных операций сложения и умножения, и в современном кино всё больше и больше элементарных операций отводится именно на физические симуляции. Особенно популярны большие сцены с симуляцией взрывов, с симуля-

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

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

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

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

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

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

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

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

— был бы стабильным для большого шага по времени (>= 16 мсек);

— имел бы возможность приближать некоторый метод симуляции с динамическими параметрами, ведущими к как можно более точной симуляции;

— был бы интерактивным (т.е. твердые объекты на сцене могли бы перемещаться в реальном времени).

Уточняя этот список, сразу отметим, что в качестве метода для аппроксимации мы выбрали Позиционный метод симуляции жидкости. Выбор пал именно на этот метод по нескольким причинам. Во-первых, этот метод наиболее признанный и востребованный в приложениях, где требуется трехмерная симуляция жидкости в реальном времени. Во-вторых, этот метод гибкий с точки зрения точности, то есть за счет вариации параметров он позволяет получить симуляцию различной точности. Во-вторых, этот метод гибкий с точки зрения объекта моделирования, то есть за счет вариации параметров он позволяет получить симуляцию для воды, для вязких жидкостей и даже, при определённых

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

— рендеринг (отрисовка на экране компьютера) поверхности жидкости

— учёт воздействия жидкости на среду

— симуляция жидкости в комбинации с двумерными методами симуляции

— симуляция жидкости в неограниченном домене вычислений.

Методы исследования. В процессе исследования мы экспериментировали с постановкой задачи регрессии для аппроксимации Позиционного метода симуляции, как с точки зрения целевой переменной, так и с точки зрения признакового описания, подаваемого на вход нейронной сети, оптимизировали архитектуры нейронных сетей, а также приложили значительные усилия, чтобы облегчить применение полученного метода на практике. Для приложений мы разработали и оптимизировали программную реализацию таких задач как рендеринг полученной симуляции, комбинация 3Э и 2Э симуляции жидкости, а также обобщение симуляции на случай, когда домен вычислений неограничен.

Основные достижения. В методе, предлагаемом в данной работе, в рамках симуляции одного шага по времени используется схожая схема адвекции, как и в работе [2]. Сначала, обновляются скорости частиц на основании внешних сил, чтобы получить промежуточные значения позиций частиц и их скоростей. После шага адвекции наш метод значительно отклоняется от метода, предложенного в [2]. После адвекции в нашем методе домен вычислений покрывается регулярной сеткой, и для каждой ячейки вычисляется количество частиц, которые находятся в её объеме, и выполнение бинарного условия - находится ли центр ячейки внутри какого-либо твердого тела. Имея такого рода представление, мы используем глубокую нейронную сеть, чтобы получить для каждой пространственной ячейки некоторый латентный дескриптор, описывающий локальные динамические характеристики среды. Далее имея пространственные дескрипторы, метод, утилизируя различные варианты нейросетевых архитектур, повышает пространственное разрешение латентного представления, и в конечном итоге прогнозирует коррекцию к скорости и позициям частиц, которые требуется, чтобы получить идентичное состояние системы, как если бы она симулировалась с помощью Позиционного метода симуляции жидкости (РБР) в некоторой определенной конфигурации.

Главные достижения, представляемые на защиту.

— Был разработан метод симуляции жидкости, работающий до 200 раз быстрее в сравнении с референсным методом (см. параграф 3.4).

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

— Помимо непосредственной задачи физической симуляции, в рамках текста данной работы предлагается решение сопутствующих задач, таких как: рендеринг поверхности жидкости для полученной симуляции (см. параграф 3.5), учёт воздействия жидкости на среду 2.11, симуляция жидкости в комбинации с двумерным методом симуляции 2.13, а также симуляция жидкости в неограниченном домене вычислений 2.12.

Апробация результатов. Основной апробацией результатов данной работы является публикация статьи [3] и [4], а также патент на предлагаемый метод симуляции жидкости, заявка на который была подана компанией НВИ-ДИА Лтд., на базе которой автор работал в процессе создания метода.

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

Глава 1. Обзор предшествующих работ

Симуляция жидкости давно является очень популярным направлением исследований, классические методы симуляции будут рассмотрены в рамках параграфа 1.1. В рамках обзора мы также осветим важные работы из области глубокого обучения, точнее сказать те из них, результаты которых непосредственно были протестированы или переиспользованы в данной работе - параграф 1.2. Далее следует параграф 1.3, который посвящен предшествующим работам, также основанным на идее аппроксимации данных. И завершают данную главу два параграфа 1.4 и 1.5, которые будут посвящены смежным задачам: рендерингу итоговой поверхности жидкости на экране компьютера и двумерной симуляции жидкости.

1.1 Классические методы симуляции жидкости

Методы симуляции жидкости в трехмерном пространстве могут быть условно классифицированы на три группы: Лагранжевские, Эйлеровские и гибридные. Все эти методы в разной степени вычислительно эффективно находят приближенное решение уравнения Навье-Стокса или уравнения Эйлера с целью получить физически корректную, детализированную симуляцию жидкости.

В Лагранжевских методах жидкость моделируется как множество точек, состояние которых определяется скоростью и координатой в пространстве. Таким образом, система частиц определяет домен вычислений, и решение сводится к расчету состояния всех частиц в каждый заданный момент по времени. Одним из первых Лагранжевских методов был метод Гидродинамики Сглаженных Частиц (ГСЧ) (или Smoothed Particles Hydrodynamics, скоращение — SPH) [5; 6]. SPH был изобретен в области симуляции вселенной, в астрофизике, в контексте которой сохранение несжимаемости не было столь важным. Таким образом, этот метод фактически не имел никаких шагов в алгоритме, которые бы поддерживали выполнение ограничения несжимаемости. Однако, метод SPH с момента своего создания был многократно доработан, и в том числе адаптиро-

ван для задач симуляции несжимаемых жидкостей WCSPH [7], PCISPH [8], и IISPH [9], DFSPH [10].

Другой хорошо известный Лагранжевский метод симуляции жидкости — Позиционный метод симуляции жидкости (Position-Based Fluid, сокращение — PBF) [1], ставший популярным, в том числе за счет высоко оптимизированной реализации в программных пакетах для физических симуляций Nvidia FleX и Nvidia PhysX. В этом методе частицы после шага адвекции итеративно корректируются для выполнения уравнений условий несжимаемости, сформулированных для каждой частицы в отдельности. Каждое ограничение решается отдельно и параллельно, а значит может иметь эффективную реализацию на GPU.

PBF также позволяет использовать достаточно большой шаг по времени, и при определенных параметрах является методом, который может вычисляться в реальном времени даже для относительно большого количества частиц. Как уже было сказано в рамках данной работы, нашей основной целью была аппроксимация именно этого метода, с целью получить решение в реальном времени для более широкого спектра динамических параметров PBF. Список Лагранжеских методов, которые следует упомянуть в рамках данного обзора, также включает полунеявный метод симуляции движущихся частиц [11], а также метод проективных жидкостей [12].

Эйлеровские методы симуляции используют регулярные решетки, которыми покрывается домен вычислений. Пожалуй, наиболее ранней известной работой в компьютерной графике, посвященной этой теме, является статья [13], которая использует финитные дифференциальные методы. Полулагранжевский метод, предложенный в статье [14], был использован для симуляции жидкости в работе [15], в которой жидкость моделировалась с помощью множества уровня.

Моделирование жидкости с помощью частиц в том или ином виде используется в Эйлеровских методах. Так, например, в статье [16] концепт частиц использовался для коррекции множества уровня, что впоследствии дало возможность детально восстановить поверхность жидкости. Частицы также образуют домен вычислений и хранят скорость в методе Fluid-Implicit-Particle (сокращение — FLIP) [17]. В этом методе скорости частиц интерполируются на сетку, на которой впоследствии решается уравнение жидкости, после чего изменения

в скорости переносятся (опять же с использованием интерполяции) обратно на частицы.

Material Point Method (MPM) [18] дополняет идею одновременного использования двух представлений жидкости: на сетке и как множество частиц. В этом методе частицы служат для переноса и других физических величин, помимо скорости. В компьютерной графике MPM был впервые использован для симуляции снега [19]. С момента своего создания функционал MPM был многократно расширен в работах [20—22] и [23] для симуляции и других физических сред, таких как песок, лава, эластичные материалы.

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

1.2 Работы из области глубокого обучения, на которые опирается

наш метод

Концепт свёрточных нейронных сетей (CNN) впервые появился в виде архитектуры Нейрокогнитрон [24]. Метод обратного распространения ошибки [25] был использован для обучения свёрточной нейронной сети в работе [26] для распознавания почтовых индексов. Впоследствии, эта архитектура была расширена до 7 слоев для получения большой точности в архитектуре LeNet-5 [27]. Одна из первых реализаций свёрточной нейронной сети на GPU была предложена в работе [28]. С тех пор количество научных работ, использующих свёр-точные сети, многократно выросло, и в наши дни эта нейросетевая архитектура используется во множестве областей: в распознавании изображений, для задачи повышения разрешения изображений, для задачи генерации картинок, переноса «стиля» с одного изображения на другое.

Трехмерные свёрточные сети впервые были предложены при решении задачи распознавания действий человека, описанной в статье [29]. С тех пор свёр-

точные 3Э сети также получили популярность и были использованы для задач распознавания при анализе видеорядов, для распознавания 3Э геометрий, а также в анализе медицинских изображений, полученных с помощью МРТ. Один из лучших современных обзоров глубоких свёрточных нейросетей можно найти в работе [30].

Ключевая идея, которую мы использовали при создании нашего метода, это идея использования свёрточных нейронных сетей, повышающих пространственную размерность поля коррекций скоростей частиц. Эта идея помогла нам получить более точную аппроксимацию коррекций, при переносе ответа с решетки на частицы, что в свою очередь в значительной степени улучшило степень детализации в итоговом распределении частиц в домене вычислений. Техника использования нейросетей, повышающих размерность, была широко изучена в приложении к задаче повышения разрешения двумерных изображений. Среди наиболее часто используемых слоев в данных архитектурах встречаются: deconvolution или «де-свёрточные» слои, предложенные в статье [31], а также субпиксельные свёрточные слои, предложенные в работе [32]. В наших экспериментах мы использовали и субпиксельные свёрточные слои, и де-свёрточные, которые, в сущности, отличаются от соответствующих слоев, предложенных в [32] и [31], лишь размерностью — в нашем случае мы использовали трехмерные свёртки.

Помимо того, что в процессе разработки нашего метода мы пробовали разные нейросетевые архитектуры для оптимизации как качества, так и вычислительной эффективности итогового метода, мы к тому же и проводили низкоуровневую оптимизацию вычисления прямого прохода по полученной нейронной сети. При кажущейся незначительности данного шага, на самом деле эта часть нашего исследования крайне важна, так как при реализации метода симуляции в реальном времени счёт идет на миллисекунды. Как показала практика, низкоуровневая оптимизация и хороший выбор алгоритма прямого расчёта результата работы свёрточного слоя приводит к ускорению в 3-5 раз по сравнению с выбором по умолчанию, который доступен, например, в таких известных библиотеках для работы с нейронными сетями, как РуТэгсЬ [33] и Tensoгflow [34].

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

подходов и их реализаций. Обычный (явный) алгоритм расчёта прямого прохода по свёрточному слою 3.1 состоит из 7 вложенных циклов (в двумерном, для простоты, случае), которые итерируются по свободной (батчевой) размерности N, по строчкам от 1 до высоты выхода Hout, по столбцам от 1 до ширины выхода Wout, по К выходным каналам и аккумулируют результаты по высоте ядра R, ширине ядра S и С входным каналам. В этот простой алгоритм подсчёта на практике часто добавляют дополнительные циклы для работы с кешом, доступным на том устройстве, где непосредственно происходит работа алгоритма.

Так как потенциально алгоритм нужно считать на разных устройствах и он имеет множество параметров, нет единой реализации, которая бы использовалась во всех случаях, и различные библиотеки по-разному подходят к задаче выбора версии алгоритма в зависимости от параметров и устройства. Наиболее популярный подход, реализованный, например, в библиотеке cudNN [35], в библиотеке HexagonNN и библиотеке MACE [36], состоит в том, чтобы реализовать отдельную оптимизированную версию для наиболее популярных параметров ядер свёрточных слоёв, таких как 5x1, 1x5, 3x3 stride-2, а в случае вызова для каких-то других параметров — просто перейти на выбор по умолчанию, то есть на стандартный алгоритм 3.1 из 7 вложенных циклов.

Альтернативная стратегия, которую используют такие библиотеки, как Intel MKL-DNN [37] и Intel LibXSMM [38], состоит в том, чтобы реализовать параметризованный JIT (Just-in-Time) генератор кода, выдающий во время исполнения программы (т.е. в runtime) отдельную реализацию алгоритма прямого подсчёта свёртки, зависящую от архитектуры устройства, где происходят расчёты. Библиотека TVM [39] делает еще один шаг на этом пути и комбинирует предыдущий подход с эвристической подстройкой в процессе последовательных вызовов алгоритма.

Помимо различных модификаций и оптимизаций алгоритма 3.1, существуют и принципиально другие алгоритмы вычисления свёртки. Такие алгоритмы можно сгруппировать, и довольно большая группа использует обобщенное матричное умножение, или General Matrix Multiplication, сокращение — GEMM. Алгоритмы в этой группе переформулируют задачу вычисления свёртки, сводя её к GEMM, что позволяет задействовать для вычисления свёртки хорошо оптимизированную библиотеку BLASS, которая реализована для множества плат-

форм и использует внутри все достижения науки по части оптимальных расчётов из линейной алгебры [40]. Вычислительная эффективность алгоритмов, основанных на использовании СЕММ, меньше зависит от параметров свёрточ-ного слоя и входа, и поэтому лучше подходит для реализации общего алгоритма вычисления свёртки, который был бы выбором по умолчанию. Именно поэтому, в результате, алгоритм, основанный на использовании СЕММ, предложенный в работе [41], используется в главных современных библиотеках для работы с нейронными сетями: в РуТэгсЬ [33] и Tensoгflow [34].

Мы подробно обсудим сведение задачи вычисления свёртки к СЕММ в параграфе 3.2. Здесь же, в обзоре различных методов, отметим еще несколько альтернативных алгоритмов вычисления свёртки. Есть еще два важных алгоритма — первый основан на преобразовании Фурье [42], а второй — на преобразовании Винограда [43]. Вычислительная сложность данных алгоритмов, в силу их дизайна, ведет к многократным ускорениям в случае использования свёрток с большими в пространственном смысле ядрами. То есть эти алгоритмы дают значительный прирост эффективности только при определённых параметрах свёртки, в силу чего данные алгоритмы не являются выбором по умолчанию в наиболее популярных библиотеках, связанных с глубоким обучением.

1.3 Существующие методы симуляции, построенные на принципе

Похожие диссертационные работы по специальности «Математическое моделирование, численные методы и комплексы программ», 05.13.18 шифр ВАК

Список литературы диссертационного исследования кандидат наук Туманов Евгений Александрович, 2021 год

Список литературы

1. Macklin M., Müller M. Position based fluids // ACM Transactions on Graphics (TOG). — 2013. — т. 32, № 4. — с. 1—12.

2. Data-driven fluid simulations using regression forests / L. Ladick [и др.] // ACM Transactions on Graphics (TOG). — 2015. — т. 34, № 6. — с. 1—9.

3. Tumanov E., Korobchenko D., Chentanez N. Data-Driven Particle-Based Liquid Simulation with Deep Learning Utilizing Sub-Pixel Convolution // Proc. ACM Comput. Graph. Interact. Tech. — New York, NY, USA, 2021. — апр. — т. 4, № 1. — DOI: 10.1145/3451261. — URL: https://doi.org/10.1145/ 3451261.

4. Tumanov E. Fluid simulation utilizing 3D convolutional networks // Proceedings of MIPT. — Moscow, 2021. — сент. — т. 13, № 3.

5. Gingold R. A., Monaghan J. J. Smoothed particle hydrodynamics: theory and application to non-spherical stars // Monthly notices of the royal astronomical society. — 1977. — т. 181, № 3. — с. 375—389.

6. Müller M., Charypar D., Gross M. Particle-Based Fluid Simulation for Interactive Applications // Proceedings of the 2003 ACM SIGGRAPH/Eurographics Symposium on Computer Animation. — San Diego, California : Eurographics Association, 2003. — с. 154—159. — (SCA '03). — ISBN 1581136595.

7. Becker M., Teschner M. Weakly Compressible SPH for Free Surface Flows // Proceedings of the 2007 ACM SIGGRAPH/Eurographics Symposium on Computer Animation. — San Diego, California : Eurographics Association, 2007. — с. 209—217. — (SCA '07). — ISBN 9781595936240.

8. Solenthaler B., Pajarola R. Predictive-Corrective Incompressible SPH // ACM SIGGRAPH 2009 Papers. — New Orleans, Louisiana : Association for Computing Machinery, 2009. — (SIGGRAPH '09). — ISBN 9781605587264.

9. Implicit Incompressible SPH / M. Ihmsen [и др.] // IEEE Transactions on Visualization and Computer Graphics. — 2014. — т. 20, № 3. — с. 426—435.

10. Bender J., Koschier D. Divergence-Free Smoothed Particle Hydrodynamics // Proceedings of the 14th ACM SIGGRAPH / Eurographics Symposium on Computer Animation. — Los Angeles, California : Association for Computing Machinery, 2015. — с. 147—155. — (SCA '15). — ISBN 9781450334969.

11. Particle-Based Simulation of Fluids / S. Premzoe [и др.] // Computer Graphics Forum. — 2003. — т. 22, № 3. — с. 401—410.

12. Weiler M., Koschier D., Bender J. Projective Fluids // Proceedings of the 9th International Conference on Motion in Games. — Burlingame, California : Association for Computing Machinery, 2016. — с. 79—84. — (MIG '16). — ISBN 9781450345927.

13. Foster N., Metaxas D. Realistic animation of liquids // Graph. Models Image Process. — Orlando, FL, USA, 1996. — т. 58, № 5. — с. 471—483.

14. Stam J. Stable Fluids // Proc. SIGGRAPH. — 08.1999. — с. 121—128.

15. Foster N., Fedkiw R. Practical Animation of Liquids // Proc. SIGGRAPH. — 08.2001. — с. 23—30.

16. Enright D., Marschner S., Fedkiw R. Animation and rendering of complex water surfaces // ACM Trans. Graph. — New York, NY, USA, 2002. — июль. — т. 21, № 3. — с. 736—744.

17. Zhu Y., Bridson R. Animating Sand as a Fluid // the Proceedings of ACM SIGGRAPH 2005. — 08.2005. — с. 965—972.

18. Sulsky D., Chen Z, Schreyer H. A particle method for history-dependent materials // Computer Methods in Applied Mechanics and Engineering. — 1994. — т. 118, № 1. — с. 179—196.

19. A Material Point Method for Snow Simulation / A. Stomakhin [и др.] // ACM Trans. Graph. — New York, NY, USA, 2013. — июль. — т. 32, № 4.

20. Augmented MPM for phase-change and varied materials / A. Stomakhin [и др.] // ACM Trans. Graph. — 2014. — т. 33. — 138:1—138:11.

21. The Affine Particle-in-Cell Method / C. Jiang [и др.] // ACM Trans. Graph. — New York, NY, USA, 2015. — июль. — т. 34, № 4.

22. A Polynomial Particle-in-Cell Method / C. Fu [и др.] // ACM Trans. Graph. — New York, NY, USA, 2017. — нояб. — т. 36, № 6.

23. A Moving Least Squares Material Point Method with Displacement Discontinuity and Two-Way Rigid Body Coupling / Y. Hu [h gp.] // ACM Trans. Graph. — New York, NY, USA, 2018. — uro.nb. — t. 37, № 4.

24. Fukushima K. Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position // Biological Cybernetics. — 1980. — t. 36. — c. 193—202.

25. Rumelhart D., Hinton G. E., Williams R. J. Learning representations by back-propagating errors // Nature. — 1986. — t. 323. — c. 533—536.

26. Backpropagation Applied to Handwritten Zip Code Recognition / Y. LeCun [h gp.] // Neural Computation. — 1989. — t. 1, № 4. — c. 541—551.

27. Gradient-based learning applied to document recognition / Y. Lecun [h gp.] // Proceedings of the IEEE. — 1998. — t. 86, № 11. — c. 2278—2324.

28. Flexible, High Performance Convolutional Neural Networks for Image Classification. / D. Ciresan [h gp.] //. — 07.2011. — c. 1237—1242.

29. 3D Convolutional Neural Networks for Human Action Recognition / S. Ji [h gp.] // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 2013. — t. 35, № 1. — c. 221—231.

30. A survey of the recent architectures of deep convolutional neural networks / A. Khan [h gp.] // Artificial Intelligence Review. — 2020. — anp.

31. Deconvolutional networks / M. D. Zeiler [h gp.] // 2010 IEEE Computer Society Conference on computer vision and pattern recognition. — IEEE. 2010. — c. 2528—2535.

32. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network / W. Shi [h gp.] // Proceedings of the IEEE conference on computer vision and pattern recognition. — 2016. — c. 1874— 1883.

33. Ketkar N. Introduction to pytorch // Deep learning with python. — Springer, 2017. — c. 195—208.

34. Tensorflow: A system for large-scale machine learning / M. Abadi [h gp.] // 12th {USENIX} symposium on operating systems design and implementation ({OSDI} 16). — 2016. — c. 265—283.

35. cudnn: Efficient primitives for deep learning / S. Chetlur [h gp.] // arXiv preprint arXiv:1410.0759. — 2014.

36. Xiaomi. Xiaomi. MACE. — https://github.com/XiaoMi/mace.

37. Anatomy of high-performance deep learning convolutions on simd architectures / E. Georganas [h gp.] // SC18: International Conference for High Performance Computing, Networking, Storage and Analysis. — IEEE. 2018. — c. 830—841.

38. LIBXSMM: accelerating small matrix multiplications by runtime code generation / A. Heinecke [h gp.] // SC'16: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. — IEEE. 2016. — c. 981—991.

39. {TVM}: An automated end-to-end optimizing compiler for deep learning / T. Chen [h gp.] // 13th {USENIX} Symposium on Operating Systems Design and Implementation ({OSDI} 18). — 2018. — c. 578—594.

40. Goto K., Geijn R. A. v. d. Anatomy of high-performance matrix multiplication // ACM Transactions on Mathematical Software (TOMS). — 2008. — t. 34, № 3. — c. 1—25.

41. Chellapilla K., Puri S., Simard P. High performance convolutional neural networks for document processing // Tenth international workshop on frontiers in handwriting recognition. — Suvisoft. 2006.

42. Fast convolutional nets with fbfft: A GPU performance evaluation / N. Vasilache [h gp.] // arXiv preprint arXiv:1412.7580. — 2014.

43. Lavin A., Gray S. Fast algorithms for convolutional neural networks // Proceedings of the IEEE conference on computer vision and pattern recognition. — 2016. — c. 4013—4021.

44. Wiewel S., Becher M, Thuerey N. Latent space physics: Towards learning the temporal evolution of fluid flow // Computer Graphics Forum. t. 38. — Wiley Online Library. 2019. — c. 71—82.

45. Bridson R. Fluid simulation for computer graphics. — CRC press, 2015.

46. Accelerating eulerian fluid simulation with convolutional networks / J. Tompson [h gp.] // Proceedings of the 34th International Conference on Machine Learning-Volume 70. — JMLR. org. 2017. — c. 3424—3433.

47. Lagrangian fluid simulation with continuous convolutions / B. Ummenhofer [h gp.] // International Conference on Learning Representations. — 2020.

48. Bender J., Koschier D. Divergence-free smoothed particle hydrodynamics // Proceedings of the 14th ACM SIGGRAPH/Eurographics symposium on computer animation. — 2015. — c. 147—155.

49. Relational inductive biases, deep learning, and graph networks / P. W. Battaglia [h gp.]. — 2018. — arXiv: 1806.01261 [cs.LG].

50. Learning to Simulate Complex Physics with Graph Networks / A. Sanchez-Gonzalez [h gp.]. — 2020. — arXiv: 2002.09405 [cs.LG].

51. Lorensen W. E., Cline H. E. Marching cubes: A high resolution 3D surface construction algorithm // ACM siggraph computer graphics. — 1987. — t. 21, № 4. — c. 163—169.

52. Müller M., Charypar D., Gross M. H. Particle-based fluid simulation for interactive applications. // Symposium on Computer animation. — 2003. — c. 154—159.

53. Zhu Y., Bridson R. Animating sand as a fluid // ACM Transactions on Graphics (TOG). — 2005. — t. 24, № 3. — c. 965—972.

54. Yu J., Turk G. Reconstructing surfaces of particle-based fluids using anisotropic kernels // ACM Transactions on Graphics (TOG). — 2013. — t. 32, № 1. — c. 1—12.

55. Schachter B. Long crested wave models // Image Modeling. — Elsevier, 1981. — c. 327—341.

56. Jeschke S., Wojtan C. Water wave animation via wavefront parameter interpolation // ACM Transactions on Graphics (TOG). — 2015. — t. 34, № 3. — c. 1—14.

57. Chentanez N., Müller M. Real-time Simulation of Large Bodies of Water with Small Scale Details. // Symposium on Computer Animation. — 2010. — c. 197— 206.

58. Kass M, Miller G. Rapid, Stable Fluid Dynamics for Computer Graphics // the Proceedings of ACM SIGGRAPH 90. — 08.1990. — c. 49—57.

59. A multiscale approach to mesh-based surface tension flows / N. Thürey [h gp.] // ACM Transactions on Graphics (TOG). — 2010. — t. 29, № 4. — c. 1— 10.

60. Enriching SPH simulation by approximate capillary waves. / S. Yang [h gp.] // Symposium on Computer Animation. — 2016. — c. 29—36.

61. Tessendorf J. eWave: Using an Exponential Solver on the iWave Problem // Technical Note. — 2014.

62. Dispersion kernels for water wave simulation / J. A. Canabal [h gp.] // ACM Transactions on Graphics (TOG). — 2016. — t. 35, № 6. — c. 1—10.

63. Lattice-boltzmann water waves / R. Geist [h gp.] // International Symposium on Visual Computing. — Springer. 2010. — c. 74—85.

64. Position based dynamics / M. Müller [h gp.] // Journal of Visual Communication and Image Representation. — 2007. — t. 18, № 2. — c. 109— 118.

65. SPH Fluids in Computer Graphics / M. Ihmsen [h gp.] // Eurographics 2014 - State of the Art Reports / nog peg. S. Lefebvre, M. Spagnuolo. — The Eurographics Association, 2014.

66. Müller M., Charypar D., Gross M. Particle-based fluid simulation for interactive applications // ACM SIGGRAPH/Eurographics Symposium on Computer Animation. — 2003. — c. 154—159.

67. Macklin M, Müller M., Tonge R. Nvidia FleX. — 2017. — https://docs.nvidia.com/gameworks/content/ gameworkslibrary/physx/flex/index.html.

68. Tsai Y.-H. R. Rapid and accurate computation of the distance function using grids // Journal of Computational Physics. — 2002. — t. 178, № 1. — c. 175— 195.

69. Campen M., Attene M., Kobbelt L. A Practical Guide to Polygon Mesh Repairing. // Eurographics (Tutorials). — 2012. — c. 32.

70. CNR I. MeshLab / ISTI - CNR. — 2021. — URL: https://www.meshlab.net/.

71. Unified particle physics for real-time applications / M. Macklin [h gp.] // ACM Transactions on Graphics (TOG). — 2014. — t. 33, № 4. — c. 1—12.

72. Versatile rigid-fluid coupling for incompressible SPH / N. Akinci [h gp.] // ACM Transactions on Graphics (TOG). — 2012. — t. 31, № 4. — c. 1—8.

73. Monaghan J. J. Smoothed particle hydrodynamics // Reports on Progress in Physics. — 2005. — t. 68, № 8. — c. 1703—1759.

74. Interaction of fluids with deformable solids / M. Miiller [h gp.] // Computer Animation and Virtual Worlds. — 2004. — t. 15, № 3/4. — c. 159—171.

75. Nvidia. Nvidia PhysX. — 2021. — https://www.nvidia.com/en-us/drivers/physx/phi

76. Taichi: a language for high-performance computation on spatially sparse data structures / Y. Hu [h gp.] // ACM Transactions on Graphics (TOG). — 2019. — t. 38, № 6. — c. 201.

77. Nvidia. Nvidia CUDA toolkit. — 2021. — https://docs.nvidia.com/cuda/.

78. Optimizing N-dimensional, winograd-based convolution for manycore CPUs / Z. Jia [h gp.] // Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. — 2018. — c. 109—123.

79. Jorda M., Valero-Lara P., Pena A. J. cuConv: A CUDA Implementation of Convolution for CNN Inference // arXiv preprint arXiv:2103.16234. — 2021.

80. al. A. K. et. Nvidia CUTLASS. — 2017. — https://github.com/NVIDIA/cutlass.

81. Nvidia. Nvidia cuFFT. — 2021. — https://docs.nvidia.com/cuda/cufft/.

82. TaubinY G. Geometric signal processing on polygonal meshes // Proceedings of EUROGRAPHICS 2000: state of the art report. — 2000.

83. Becker M, Teschner M. Weakly compressible SPH for free surface flows // Proceedings of the 2007 ACM SIGGRAPH/Eurographics symposium on Computer animation. — 2007. — c. 209—217.

84. Koren Y, Carmel L. Visualization of labeled data using linear transformations // IEEE Symposium on Information Visualization 2003 (IEEE Cat. No. 03TH8714). — IEEE. 2003. — c. 121—128.

85. Van der Laan W. J., Green S., Sainz M. Screen space fluid rendering with curvature flow // Proc. I3D. — 2009. — c. 91—98.

86. DBCSR: A Blocked Sparse Tensor Algebra Library / I. Sivkov [h gp.]. — 2019.— arXiv: 1910.13555 [cs.DC].

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