Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемДарья Янчевская
1 Сахарных Николай (Nvidia) Решение трехдиагональных систем для методов по- координатного расщепления и задач гидродинамики.
2 2011 Введение Трехдиагональные системы имеют много применений в графике и общих вычислениях – Методы по-координатного расщепления Будет рассмотрено 2 примера: – 3D моделирование течений – 2D эффект глубины резкости (DOF)
3 2011 План Обзор методов решения трехдиагональных систем – Введение – Метод прогонки – Циклическая редукция Моделирование течений в 3D Эффект глубины резкости в 2D
4 2011 Решение трехдиагональных систем Задача состоит в решении нескольких независимых систем с трехдиагональной матрицей – Размеры матриц зависят от конкретной задачи
5 2011 Метод прогонки Прямой ход: Обратный ход: Самый быстрый последовальный метод – Сложность O(N) – Оптимальное число операций
6 2011 Шаг редукции Исключаем переменные через линейные комбинации уравнений: После 1 шага редукции система делится на 2 независимые: Шаг редукции можно выполнить N нитями параллельно
7 2011 Параллельная циклическая редукция Параллельная циклическая редукция (PCR) – Применяем шаг редукции к обеим меньшим системам – Общая сложность O(N log N) – Для некоторых матриц специального вида достаточно меньшего числа шагов
8 2011 Циклическая редукция Циклическая редукция (CR) – Прямая редукция только для одной из меньших систем, затем обратная подстановка – Сложность O(N), но требуется больше операций, чем в прогонке – Меньше параллельности, чем PCR
9 2011 План Обзор методов решения трехдиагональных систем Моделирование течений в 3D – Постановка задачи, приложения – Метод по-координатного расщепления – Детали реализации на GPU, оптимизации – Анализ производительности и результаты Эффект глубины резкости в 2D
10 2011 Постановка задачи Вязкая несжимаемая жидкость в трехмерной области Эйлеровы координаты для скорости и температуры свободный поток на выходе инъекция жидкости на входе прилипание на границе
11 2011 Приложения Моделирование потоков крови в сердце Через МРТ или УЗИ определяются границы сердца Моделирование течения внутри найденного объема
12 2011 Приложения Моделирование течений в море Статические границы Дополнительные параметры моделирования: (например, соленость)
13 2011 Обозначения Уравнение состояния – Соотношение между и – Пример: Плотность Скорость Температура Давление – газовая постоянная
14 2011 Основные уравнения Уравнение неразрывности – Несжимаемая жидкость: Уравнения Навье-Стокса: – Безразмерная форма – число Рейнольдса (= отношение сил инерции к вязкости)
15 2011 Основные уравнения Уравнение энергии: – Безразмерная форма – удельная теплоемкость – число Прандтля – диссипативная функция
16 2011 Метод расщепления Расщепляем по 3 координатам: X Y Z Фикс. Y, Z Фикс. X, Z Фикс. X, Y
17 2011 Метод расщепления - итерации Глобальные итерации для всей системы Некоторые уравнения нелинейные: – Локальные итерации для аппроксимации нелинейных членов предыдущий шаг по времени Solve X-dir equations Solve Y-dir equations Solve Z-dir equations Updating all variables следующий шаг по времени глобальные итерации
18 2011 Дискретизация Используем регулярную сетку, неявную конечно-разностную схему: Получаем трехдиагональную систему – для каждой пары (j, k) i i+1 i-1 i+1 i-1 i
19 2011 Трехдиагональные системы Решаем большое число систем с трехдиагональной матрицей Размеры систем могут отличаться внешний узел внутренний узел граница system 1 system 2 system 3
20 2011 Детали реализации { { { строим трехдиагональные матрицы и правые части решаем получившиеся системы } обновляем нелинейные коэффициенты }
21 2011 Реализация на GPU Храним все массивы данных на GPU в глобальной памяти – Минимум транзакций через PCI-E – Отображение 3D массивов в линейную память Основные ядра – Построить матрицы – Решить системы Дополнительные функции для работы с массивами – Слияние, копирование, операции с масками (X, Y, Z) Z + Y * dimZ + X * dimY * dimZ
22 2011 Построение матриц Входные данные: – Предыдущий слой – Нелинейный слои Каждая нить рассчитывает: – Коэффициенты матрицы – Правая часть системы Используем шаблоны C++ для разных направлений и уравнений a b c d
23 2011 Построение матриц - производительность Направление Z в несколько раз медленнее X/Y – Каждая нить работает с непрерывным куском массива – Запросы в память не объединяются, много промахов в кэш Tesla C2050 (SP) сек DirRequests per load L1 gld hit % IPC X2 – 325 – Y2 – 333 – Z320 – Ядра Время
24 2011 Построение матриц - оптимизации Запускаем расчеты вдоль Z в транспонированном пространстве XZY – Локальный доступ к памяти – Дополнительные затраты на транспонирование XYZ Локальные итерации по X Локальные итерации по Y Локальные итерации по Z Транспонируем входные массивы Транспонируем выходные массивы Локальные итерации по Y XZY
25 2011 Построение матриц - оптимизации Решение систем занимает намного больше времени чем транспонирование данных – с увеличением числа локальных итераций транспонирование занимает еще меньше % времени Tesla C2050 (SP) сек 2.5x Время Z dirRequests per load L1 gld hit % IPC Original320 – Transposed2 – 330 – Ядра
26 2011 Анализ задачи Большое число систем – Порядка квадрата сетки на каждом шаге – 16K для 128^3 Относительно небольшие размеры систем – Максимальный размер = размеру сетки – 128 for 128^3 В данном случае подходит метод распаралелливания, где 1 нить решает ровно 1 систему – Число нитей достаточно чтобы загрузить GPU
27 2011 Решение трехдиагональных систем Расположение элементов матрицы в памяти сильно влияет на производительность Sequential (последовательно) Interleaved (перемежаются) a0a1a2a3a0a1a2a3 a0 a1 system 1 system 2 Подходит для редукции Подходит для прогонки Расщепление вдоль Z Расщепление вдоль X, Y Thread 1 Thread 2 Thread 3 Thread 1 Thread 2 Thread 3
28 2011 Производительность разных методов Параметры тестов – Размер систем = N – Число систем = N^2 Расположение матрицы в памяти – Редукция, транспонированная прогонка (Sweep_T): sequential – Прогонка (Sweep): interleaved Tesla C2050 мс N Реализации PCR/CR взяты из: Fast tridiagonal solvers on the GPU Y. Zhang, J. Cohen, J. Owens, 2010
29 2011 Выбор метода для решения систем Применительно к методу расщепления в 3D области – Для направлений X, Y элементы матрицы перемежаются (interleaved) поумолчанию – В направлении Z тоже interleaved, только в транспонированном пространстве Наиболее эффективный метод – прогонка – Одна нить решает одну систему – Также можно поэкспериментировать с PCR для направления Z
30 2011 Анализ производительности – Fermi Влияние L1/L2 – Использование 48K L1 вместо 16K дает 10-15% прироста в скорости – Выключение L1 уменьшает производительность на 10% – L1 помогает только в случае локального переиспользования и невыровненного доступа Пропускная способность прогонки на Tesla C2050 – Одинарная точность = 119 GB/s, 82% от пика – Двойная точность = 135 GB/s, 93% от пика
31 2011 Сравнение производительности Конфигурация CPU: – Intel Core i GHz – На CPU использовались все 4 ядра через OpenMP (ускорение около 3-4x раз по сравнению с 1 ядром) Конфигурации GPU: – NVIDIA Tesla C1060 – NVIDIA Tesla C2050 Измеряем время на построение матриц и решение систем для всех итераций
32 2011 Тестовые примеры ТестРазмер сеткиXYZ Куб128 x 128 x 12810K Сердце96 x 160 x 12813K8K Море160 x 128 x 12818K20K6K Куб Сердце Море
33 2011 Результаты – Куб Одинаковые размеры по X, Y, Z SINGLE DOUBLE систем/мс 5.9x 9.5x 2.7x 8.2x
34 2011 Результаты – Сердце Больше систем вдоль X, размеры плавно меняются SINGLE DOUBLE систем/мс 8.1x 11.4x 3.3x 7.8x
35 2011 Результаты – Море Множество разных систем вдоль X и Y SINGLE DOUBLE систем/мс 6.5x 9.6x 3.1x 7.2x
36 2011 Дальнейшая работа Основное ограничение – доступный объем памяти – Множество 3D массивов: данные сетки, временные слои, трехдиагональные матрицы Распределение задачи на несколько GPU и между узлами кластера позволит считать большие сетки Разделяем сетку поперек расщепления Распределяем части по доступным GPU Решаем системы и обновляем общие слои GPU 1 GPU 2 GPU 3 GPU 4 Направление расщепления
37 2011 Ресурсы Tridiagonal Solvers on the GPU and Applications to Fluid Simulation, GPU Technology Conference, 2009, Nikolai Sakharnykh Система динамической визуализации на многопроцессорных компьютерах с общей памятью и ее применение для численного моделирования турбулентных потоков вязкой жидкоти, Вестник Московского Университета 2007, Пасконов В.М., Березин С.Б., Корухова Е.С.
38 2011 План Обзор трехдиагональных решателей Моделирование течений в 3D Эффект глубины резкости в 2D – Постановка задачи – Метод по-координатного расщепления – Анализ и подходы к решению – Результаты
39 2011 Постановка задачи Применение метода расщепления для 2D задач Моделирование эффекта глубины резкости (DOF) – Используем уравнение диффузии для размытия изображения Решаем трехдиагональные системы в 2D области – Другое построение систем, другие методы более эффективные для GPU
40 2011 Численный метод Метод по-координатного расщепления X Y для всех
41 2011 Реализация метода расщепления Неявная схема всегда устойчивая После дискретизации на регулярной сетке с dx = dt = 1: Получаем трехдиагональную систему для каждого j (столца изображения) i i-1 i i+1
42 2011 Анализ задачи Малое число систем – Максимум 2K для больших разрешений Большие размеры матриц – До 2K для больший разрешений Использование 1 нити для решения 1 системы не будет эффективным – Низкая загруженность GPU
43 2011 Реализация на GPU Использование циклической редукции – Размеры большие, поэтому PCR будет менее эффективным, чем CR – Правильное расположение элементов матрицы (sequential) Использование гибридных решений – Параллельная редукция + прогонка, когда число систем достаточно большое
44 2011 Идея использования уравнения диффузии Распространение температуры (= цвет) на 2D пластине (= изображении) с неоднородной теплопроводностью (= радиусы размытия) большие радиусы на фоне радиусы в фокусе = 0 четкие границы Основные особенности: - Нет color bleeding - Поддержка неоднородных радиусов любого размера
45 2011 Эффект глубины резкости в играх Metro2033, © THQ, 4A Games
46 2011 Эффект глубины резкости в играх Metro2033, © THQ, 4A Games
47 2011 Полезные ресурсы Статья Pixar о Diffusion DOF: Циклическая редукция на CUDA: Сэмпл в GPU Computing SDK – OpenCL Tridiagonal
48 2011 Выводы 10x ускорение метода расщепления в сложных областях – Высокая производительность Fermi в двойной точности Фотореалистичные эффекты в играх в реальном времени Выбирайте метод решения в зависимости от задачи
49 2011 Вопросы?
50 2011 Диссипативная функция Расщепление вдоль координат X, Y, Z:
51 2011 Как работают линзы фокус размытие
52 2011 Пост-обработка изображения Используем буфер глубины для рачетов радиусов размытия DOF фильтр цвет радиус
53 2011 Техника размытия через диффузию Используем уравнение диффузии для моделирования размытия цвета Interactive Depth of Field Using Simulated Diffusion on a GPU, Kass et al. 2006, Pixar
54 2011 Использование уравнения диффузии Уравнение диффузии: u(x,y,t) – цвет β(x,y) – квадрат радиуса t = 0 x, y – координаты t – время t = 1 Исходное изображение Результат Радиус размытия
55 2011 Эффект глубины резкости в играх заставки перезарядка оружия Metro2033, © THQ, 4A Games прицеливание Call of Duty 4, © Activision, Infinity Ward
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.