Presentation is loading. Please wait.

Presentation is loading. Please wait.

Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)

Similar presentations


Presentation on theme: "Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)"— Presentation transcript:

1 Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)

2 План zВведение и постановка задачи zОсновные уравнения zЧисленный метод расщепления zОсобенности реализации zРезультаты и выводы

3 Введение zВычислительные задачи аэро- гидродинамики yМоделирование турбулентных течений zВМиК МГУ, кафедра мат. физики yПасконов В.М., Березин С.Б.

4 Турбулентность Моделирование турбулентности Прямое численное моделирование (DNS) Моделирование крупномасштабных вихрей (LES) Осредненные уравнения Навье-Стокса (RANS) все масштабы турбулентности очень затратный

5 Постановка задачи zТечение вязкой несжимаемой жидкости в 3D канале yКанал заполнен и находится в однородной среде yПроизвольные начальные и граничные условия yНеизвестные величины – скорость и температура

6 Основные уравнения zПолная система уравнений Навье- Стокса в безразмерных величинах yУравнение неразрывности yУравнения движения (Навье-Стокса) yУравнение энергии

7 Обозначения Плотность Скорость Температура Давление zУравнение состояния – газовая постоянная

8 Уравнение неразрывности zИспользуется при выводе остальных уравнений (движения и энергии) zПроверка точности текущего решения

9 Уравнения Навье-Стокса zВторой закон Ньютона: Вязкая жидкость: f – массовые силы (сила тяжести) – тензор вязких напряжений p – давление Невязкая жидкость:

10 Безразмерные уравнения zПараметры подобия yЧисло Рейнольдса yЧисло Прандтля zУравнение состояния для идеального газа/жидкости: – характерная скорость, размер – динамическая вязкость среды – коэффициент теплопроводности – удельная теплоемкость

11 Уравнения движения zБезразмерная форма: yНе рассматриваем массовые силы yУравнение состояния

12 Уравнение энергии zПервый закон термодинамики для объема V: zДиссипативная функция:

13 Финальные уравнения z4 нелинейных уравнения z4 неизвестные величины: yКомпоненты скорости: u, v, w yТемпература: T

14 Численный метод zРасщепление по координатам XYZ

15 Уравнение диффузии z3 дробных шага – X, Y, Z zНеявная конечно-разностная схема

16 Уравнения Навье-Стокса zУравнение для X-компоненты скорости y+ итерации по нелинейности X Y Z

17 Шаг по времени (n-1) time step Splitting by X Splitting by Y Splitting by Z Updating non-linear parameters Global iterations (n) time step (n+1) time step

18 Дробный шаг zЛинейное PDEs N time layer u: x-velocityv: y-velocityw: z-velocityT: temperature N + 1 time layer Sweep Solves many tridiagonal systems independently Next layer Previous layer

19 Дробный шаг zНелинейное PDEs N time layer u: x-velocityv: y-velocityw: z-velocityT: temperature N + ½ time layer N + 1 time layer Update Copy Sweep Solves many tridiagonal systems independently Local iterations Next layer Previous layer

20 Стадии алгоритма zРешение большого количества трехдиагональных СЛАУ zВычисление диссипации в каждой ячейке сетки zОбновление нелинейных параметров

21 Особенности метода zБольшой объем обрабатываемых данных zВысокая арифметическая интенсивность zЛегко параллелится

22 Реализация на CUDA zВсе данные хранятся в памяти GPU y4 скалярных 3D массива для каждой переменной (u, v, w, T) y3 дополнительных 3D массива z~1GB для сетки 192^3 в double

23 Решение трехдиагональных СЛАУ zКаждая нить решает ровно одну трехдиагональную СЛАУ yНа каждом шаге N^2 независимых систем Расщепление XРасщепление YРасщепление Z

24 Метод прогонки zНеобходимо 2 дополнительных массива yхранение: локальная память zПрямой ход yвычисление a[i], b[i] zОбратный ход yx[i] = a[i+1] * x[i+1] + b[i+1]

25 Проблемы реализации zКаждая нить последовательно читает и пишет столбец 3D массива yКоэффициенты и правая часть zY, Z – прогонки coalesced zX – прогонка uncoalesced!

26 Оптимизация прогонки zX – прогонка yТранспонируем входные массивы и запускаем Y-прогонку общая производительность всех прогонок

27 Расчет диссипации zРасчет частных производных по трем направлениям yЛокальный доступ к памяти zКаждая нить обрабатывает столбец данных yПереиспользование расчитанных производных zИспользование разделяемой памяти (?)

28 Оптимизация диссипации zРефакторинг кода yПредварительный расчет некоторых констант, избавление от лишних if z C++ шаблоны для X, Y, Z-диссипации yУменьшение числа регистров, нет лишних обращений к памяти

29 Нелинейные итерации zНеобходимо посчитать полусумму двух 3D массивов zКаждая нить считает сразу для столбца данных – N^2 нитей yВсе чтения/записи coalesced zОптимальный выбор размера блока z80% от пиковой пропускной способности на Tesla C1060

30 Пример кода // boundary conditions switch (dir) { case X: case X_as_Y: bc_x0(…); break; case Y: bc_y0(…); break; case Z: bc_z0(…); break; } a[1] = - c1 / c2; u_next[base_idx] = f_i / c2; // forward trace of sweep int idx = base_idx; int idx_prev; for (int k = 1; k < n; k++) { idx_prev = idx; idx += p.stride; double c = v_temp[idx]; c1 = p.m_c13 * c - p.h; c2 = p.m_c2; c3 = - p.m_c13 * c - p.h; double q = (c3 * a[k] + c2); double t = 1 / q; a[k+1] = - c1 * t; u_next[idx] = (f[idx] - c3 * u_next[idx_prev]) * t; }

31 Тест производительности zТестовые данные yСетка 128^3, 192^3 y8 нелинейных итераций zСравнение CPU и GPU yАбсолютное время работы

32 Тест – 128 - float time steps/sec 20x 7x 9x

33 Тест – 128 - double time steps/sec 10x 4x 5x

34 Тест – 192 - float time steps/sec 28x 8x 11x

35 Тест – 192 - double time steps/sec 13x 4x 5x

36 Визуализация Векторное поле скоростей uv w T Срез вдоль Х

37 Выводы zВысокая эффективность Tesla в задачах аэро-гидродинамики zПрограммная модель CUDA – удобное средство утилизации ресурсов GPU zПрименение GPU открывает новые возможности для исследования

38 Вопросы


Download ppt "Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)"

Similar presentations


Ads by Google