Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемmsu-cuda-course.googlecode.com
1 Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)
2 План zПостановка задачи zЧисленный метод zОбзор архитектуры GPU и модели CUDA zОсобенности реализации zРезультаты и выводы zПолезные ссылки
3 Введение zВычислительные задачи аэро- гидродинамики yМоделирование турбулентных течений zВМиК МГУ, кафедра мат. физики yПасконов В.М., Березин С.Б.
4 Постановка задачи zТечение вязкой несжимаемой жидкости в 3D канале yКанал заполнен и находится в однородной среде yПроизвольные начальные и граничные условия yНеизвестные величины – скорость и температура
5 Основные уравнения zПолная система уравнений Навье- Стокса в безразмерных величинах yУравнение неразрывности yУравнения движения (Навье-Стокса) yУравнение энергии
6 Уравнение неразрывности zИспользуется при выводе остальных уравнений (движения и энергии) zПроверка точности текущего решения
7 Уравнения Навье-Стокса zВторой закон Ньютона: Вязкая жидкость: f – массовые силы (сила тяжести) – тензор вязких напряжений p – давление Невязкая жидкость:
8 Безразмерные уравнения zПараметры подобия yЧисло Рейнольдса yЧисло Прандтля zУравнение состояния для идеального газа/жидкости: – характерная скорость, размер – динамическая вязкость среды – коэффициент теплопроводности – удельная теплоемкость
9 Уравнения движения zБезразмерная форма: yУравнение состояния
10 Уравнение энергии zПервый закон термодинамики для объема V: zДиссипативная функция:
11 Финальные уравнения z4 нелинейных уравнения yНС + энергия zНеизвестные величины: yКомпоненты скорости: u, v, w yТемпература: T
12 Численный метод zМетод по-координатного расщепления zНеявная схема 2-го порядка zНелинейные итерации yПолусумма значений на двух предыдущих итерациях
13 Численный метод Расщепление по X Расщепление по Y Расщепление по Z Обновление нелинейных параметров Решение uРешение vРешение w Расчет диссипации Решение T Обновление нелинейных параметров глобальные итерации локальные итерации
14 Стадии алгоритма zРешение большого количества трехдиагональных СЛАУ zВычисление диссипации в каждой ячейке сетки zОбновление нелинейных параметров
15 Особенности метода zБольшой объем обрабатываемых данных zВысокая арифметическая интенсивность zЛегко параллелится
16 Архитектура GPU zМассивный паралеллизм потоков zШирокая пропускная способность памяти zПоддержка двойной точности
17 Реализация на CUDA zВсе данные хранятся в памяти GPU y4 скалярных 3D массива для каждой переменной (u, v, w, T) y3 дополнительных 3D массива z~300MB для сетки 128^3 в double
18 Решение трехдиагональных СЛАУ zКаждая нить решает ровно одну трехдиагональную СЛАУ yНа каждом шаге N^2 независимых систем Расщепление XРасщепление YРасщепление Z
19 Метод прогонки zНеобходимо 2 дополнительных массива yхранение: локальная память zПрямой ход yвычисление a[i], b[i] zОбратный ход yx[i] = a[i+1] * x[i+1] + b[i+1]
20 Проблемы реализации zКаждая нить последовательно читает и пишет столбец 3D массива yКоэффициенты и правая часть zY, Z – прогонки coalesced zX – прогонка uncoalesced!
21 Оптимизация прогонки zX – прогонка yТранспонируем входные массивы и запускаем Y-прогонку
22 Расчет диссипации zРасчет частных производных по трем направлениям yЛокальный доступ к памяти zКаждая нить обрабатывает столбец данных yПереиспользование расчитанных производных zИспользование разделяемой памяти (?)
23 Оптимизация диссипации zРефакторинг кода yПредварительный расчет некоторых констант, избавление от лишних if z C++ шаблоны для X, Y, Z-диссипации yУменьшение числа регистров, нет лишних обращений к памяти
24 Нелинейные итерации zНеобходимо посчитать полусумму двух 3D массивов zКаждая нить считает сразу для столбца данных – N^2 нитей yВсе чтения/записи coalesced zОптимальный выбор размера блока z80% от пиковой пропускной способности на Tesla C1060
25 Реализация на CPU zИспользование OpenMP инструкций zПерестановка циклов для оптимизации работы с кэшем
26 Результаты Векторное поле скоростей
27 Результаты Re=250 Re=500
28 Тест производительности zТестовые данные yСетка 128^3 y8 нелинейных итераций zСравнение CPU, GPU, Regatta yАбсолютное время работы yЭкономическая эффективность
29 Производительность float
30 Производительность double
31 Производительность на W
32 Производительность на $
33 Ближайшие планы zЭффективная реализация на нескольких GPU yРасчет на больших сетках с большими числами Рейнольдса zОптимизация отдельных ядер yМетод редукции для трехдиагональных систем
34 Выводы zВысокая эффективность Tesla в задачах аэро-гидродинамики zПрограммная модель CUDA – удобное средство утилизации ресурсов GPU zПрименение GPU открывает новые возможности для исследования
35 Вопросы
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.