Сахарных Николай (Nvidia) Решение трехдиагональных систем для методов покоординатного расщепления и задач гидродинамики.

Slides:



Advertisements
Similar presentations
Астрометрические каталоги К.В.Куимов, ГАИШ МГУ. Определение астрометрического каталога Астрометрический каталог – понятие неопределённое. Например, это.
Advertisements

1. ИССЛЕДОВАНИЯ РЕЗОНАНСНОГО РАССЕЯНИЯ НЕЙТРОНОВ ЯДРАМИ В ОБРАТНОЙ ГЕОМЕТРИИ. 2. ИЗМЕРЕНИЕ ДЛИНЫ n-n-РАССЕЯНИЯ. 3. ИЗМЕРЕНИЕ ГРАВИТАЦИОННОЙ МАССЫ НЕЙТРОНА.
Разработка и внедрение объектно-ориентированной библиотеки для автоматизации тестирования Кафедра системного программирования Студент: Олейник А.Л. 544.
Системы с наследованием. Если систему можно представить в виде : Где - непрерывные функции, то такая система называется системой с наследованием. Математическое.
Дипломная работа Ивановой О.О., группа 545 Научный руководитель: д. ф.-м. н., профессор Терехов А.Н. Генерация кода по диаграмме активностей.
Расторгуев А.C., 545 группа Научный руководитель: Пименов А.А. Рецензент: ст. преп. Смирнова Е.А.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
Алгоритм приближённого join’а на потоках данных Выполнил : Юра Землянский, 445 группа Научный руководитель : Б.А. Новиков СПб, 2011 Санкт-Петербургский.
Елена Станиславовна Петрова Учитель-логопед высшей категории ГДОУ детский сад №47 комбинированного вида Фрунзенского района г. Санкт-Петербурга 2011 год.
Половинкин А.Н..  Вычисления общего назначения на GPU  Архитектура GPU  Программная модель выполнения на CUDA  Программирование с использованием CUDA.
Неотрицательное решение задачи Коши. Нередко постановка задачи требует чтобы фазовые переменные принимали лишь неотрицательные значения. Так, в физических.
Решение дифф. уравнений на CUDA на примере задач аэро-гидродинамики. zЛектор: yСахарных Н.А. (ВМиК МГУ, NVidia)Сахарных Н.А. (ВМиК МГУ, NVidia)
1 Современный набор сервисов для клиентов-алготрейдеров: продукты, услуги Конференция «Роботы в биржевой торговле» Секция «Алготрейдинг глазами брокера»
Определение необходимого уровня запасов на складе.
Миллер Дмитрий, 545 группа Научный руководитель: д.ф.-м.н., профессор, А.Н.Терехов Рецензент: к.ф.-м.н, доцент, А.Н. Иванов.
Учитель математики Кулакова Т.М. МОУ ООШ №15 г.о Новокуйбышевск Самарской области Сентябрь 2011г.
Сохранение суммы фазовых координат. Важный частный случай представляют системы, в которых в течение всего процесса сохраняется постоянной сумма значений.
Частное равновесие на конкурентном рынке Частное равновесие: последствия государственного регулирования конкурентного рынка Распределение налогового бремени.
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Адаптивный метод распределения SPMD-заданий в грид Паньшенсков Михаил, 545 группа Научный руководитель: Лукичев А.С. Рецензент: Демьянович Ю.К июня.
Блок 3. Семейства белков I. Множественное выравнивание Первый курс, весна 2008, А.Б.Рахманинова.
Язык JavaScript Скриптовый язык для выполнения на html-страницах.
To the Solution of a Bilinear Optimal Control Problem with State Constrains by the Doubled-Variations Method E.A. Rovenskaya Lomonosov Moscow State University,
Разработка геоинформационной системы (ГИС) для системы телекоммуникаций (СТ) «Ботик» Кузнецов А.А., Гумин М.В. ИПС РАН, Переславль-Залесский 2004.
Решение задач на движение
Демидов А.В г. Операционные системы Лекция 3 Процессы.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
L/O/G/O Психология решения задач и проблем: классика и современность Спиридонов В.Ф. (РГГУ-ГУВШЭ)
Москва 2008 Специализированное вычислительное устройство для обработки радиолокационной информации Московский физико-технический институтИнститут точной.
1 Организация вычислительной системы ЛЕКЦИЯ №2 Калинина А.П.
Основы цифровой обработки речевых сигналов. Общая схема процесса речеобразования x[n] – дискретные отсчеты сигнала возбуждения y[n] – дискретные отсчеты.
ERAMIS “Network Europe – Russia – Asia of Masters in Informatics as a Second competence” (ERAMIS) «Магистратура по информатике как вторая компетенция для.
Growing Neural Gas Method Нейросетевой метод построения неструктурированных адаптивных сеток.
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
PHP как язык программирования. Типы данных логические величины int, integer – целые числа real, double, float – вещественные числа string – строки array.
Гужва А.Г. Нейронные сети. Многоагентные системы. Оптимизационные задачи.
Determinants of bank interest margins in Russia: Does bank ownership matter? Zuzana Fungáčová and Tigran Poghosyan Горбачев Е., Мальцева Е., 317 группа.
Микрофазное расслоение в расплаве двойных гребнеобразных полимеров Выполнил студент Палюлин В.В. Научный руководитель: к.ф.-м.н. Потемкин И.И.
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
Лобанов Алексей Иванович Основы вычислительной математики Лекция 1 8 сентября 2009 года.
Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель:
Симулятор квантовых вычислений Выполнил: Гедерцев А.С. Руководитель, д.ф.-м.н., профессор: Граничин О.Н.
Методы интерактивной визуализации динамики жидких и газообразных сред Елена Костикова, 521 гр.
Тема: Сравнительный анализ сложности факторизации алгоритмов целых чисел Выполнила: Дубовицкая Н.В., гр 957 Научный руководитель: Ишмухаметов Ш.Т.
Анализ использования нескольких функций приспособленности для построения автоматов с помощью генетических алгоритмов на примере задачи «Умный муравей 3»
Вычисление типов в императивных динамически типизированных языках. Михаил Калугин, студент 3 курса ММФ Научные руководители: Игорь Николаевич Скопин Андрей.
Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор.
Применение метода представления функции переходов с помощью абстрактных конечных автоматов в генетическом программировании Царев Ф. Н. Научный руководитель.
Санкт-Петербургский Государственный Университет Математико-Механический факультет Кафедра системного программирования Применение диаграмм двоичных решений.
Диффузия в полуограниченном теле Неизвестная функция должна быть определена из граничных условий.
Анализ и Проектирование качественных приложений Презентация по книге Крэга Лармана.
Методы определения параметров вращения Земли
Сервис описания дискретных динамических систем на основе рекуррентных алгоритмов стохастической аппроксимации и подобных им Александр Вахитов научный руководитель.
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Математико-механический факультет Кафедра системного программирования Автоматизация выбора оптимальной.
Формы в HTML. Элемент FORM Элемент уровня «блок» Управляющие элементы Просто текст Атрибуты: action – url обработчика method – post или get enctype –
Применение генетических алгоритмов для генерации тестов к олимпиадным задачам по программированию Буздалов М.В., СПбГУ ИТМО.
Проект «Безопасный браузер» Визовитин Николай Научный руководитель: Д.В. Иртегов.
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Методы интерактивной визуализации динамики жидких и газообразных сред Костикова Елена Юрьевна, 521 гр. Научный руководитель: Игнатенко Алексей Викторович.
МЕТОД СКОЛЬЗЯЩЕГО КОНТРОЛЯ ДЛЯ ОЦЕНКИ КАЧЕСТВА РЕКОМЕНДАТЕЛЬНЫХ ИНТЕРНЕТ- СЕРВИСОВ А.Ю. Каминская, Р.А. Магизов Научный руководитель – Д.И. Игнатов Государственный.
ВВЕДЕНИЕ В ВЫЧИСЛИТЕЛЬНУЮ МАТЕМАТИКУ Лекция 5 6 октября 2009 ВЫЧИСЛИТЕЛЬНАЯ ЛИНЕЙНАЯ АЛГЕБРА.
9 октября 2004 Поиск статических изображений по содержанию: использование текстового запроса Наталья Васильева
Мультиагентные системы и их применение в сетевых задачах Выполнил: студент 545 гр. Г.И. Вольфсон Научный руководитель: д. ф.-м. н. А.Н.Терехов 2007.
Проверка эквивалентности срединной и линейной осей многоугольника Дипломная работа студента 545 группы Подколзина Максима Валериевича Санкт-Петербургский.
Классификация, кластеризация и поиск изображений на основе низкоуровневых характеристик Наталья Васильева Руководитель: Новиков Б. А.
Исследование возможностей сервисной шины SonicMQ Дипломная работа студентки 545 группы Комольцевой Дарьи Владимировны Научный руководитель: Графеева Н.Г.
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ Metro приложения: работа с данными Краковецкий Александр, MVP/RD/PhD. DevRain Solutions.
Применение графического метода для решения различных математических задач Учитель гимназии №3 Шахова Т. А.
Mechanical Properties of DNA Local Structure: Ultrasound Studies Dmitry Yu. Nechipurenko, Mikhail V. Golovkin, Sergej L. Grokhovsky, Irina А. Il'icheva,
Отчетность средствами Reporting Services 2008
Presentation transcript:

Сахарных Николай (Nvidia) Решение трехдиагональных систем для методов покоординатного расщепления и задач гидродинамики.

2011 Введение Трехдиагональные системы широко применяются в графике и общих вычислениях – Методы покоординатного расщепления Будет рассмотрено 2 примера: – 3D моделирование течений – 2D эффект глубины резкости (DOF)

2011 План Обзор методов решения трехдиагональных систем – Введение – Метод прогонки – Циклическая редукция Моделирование течений в 3D Эффект глубины резкости в 2D

2011 Решение трехдиагональных систем Задача состоит в решении нескольких независимых систем с трехдиагональной матрицей – Размеры матриц зависят от конкретной задачи

2011 Метод прогонки Прямой ход: Обратный ход: Самый быстрый последовальный метод – Сложность O(N) – Оптимальное число операций

2011 Шаг редукции Исключаем переменные через линейные комбинации уравнений: После 1 шага редукции система делится на 2 независимые: Шаг редукции можно выполнить N нитями параллельно

2011 Циклическая редукция Параллельная циклическая редукция (PCR) – Применяем шаг редукции к обеим меньшим системам – Общая сложность O(N log N) – Для некоторых матриц специального вида достаточно меньшего числа шагов

2011 Циклическая редукция Циклическая редукция (CR) – Прямая редукция только для одной из меньших систем, затем обратная подстановка – Сложность O(N), но требуется больше операций, чем в прогонке – Меньше параллельности, чем в PCR

2011 План Обзор методов решения трехдиагональных систем Моделирование течений в 3D – Постановка задачи, приложения – Метод покоординатного расщепления – Детали реализации на GPU, оптимизация – Анализ производительности и результаты Эффект глубины резкости в 2D

2011 Постановка задачи Вязкая несжимаемая жидкость в трехмерной области Эйлеровы координаты для скорости и температуры свободный поток на выходе инъекция жидкости на входе прилипание на границе

2011 Приложения Моделирование потоков крови в сердце Через МРТ или УЗИ определяются границы сердца Моделирование течения внутри найденного объема

2011 Приложения Моделирование течений в море Статические границы Дополнительные параметры моделирования (например, соленость)

2011 Обозначения Уравнение состояния – Соотношение между и – Пример: Плотность Скорость Температура Давление – газовая постоянная

2011 Основные уравнения Уравнение неразрывности – Несжимаемая жидкость: Уравнения Навье-Стокса: – Безразмерная форма – число Рейнольдса (= отношение сил инерции к вязкости)

2011 Основные уравнения Уравнение энергии: – Безразмерная форма – удельная теплоемкость – число Прандтля – диссипативная функция

2011 Метод расщепления Расщепляем по 3 координатам: X Y Z Фикс. Y, Z Фикс. X, Z Фикс. X, Y

2011 Метод расщепления - итерации Глобальные итерации для всей системы Некоторые уравнения нелинейные: – Локальные итерации для аппроксимации нелинейных членов предыдущий шаг по времени Решаем X- расщепление Решаем Y- расщепление Решаем Z- расщепление Обновляем переменные следующий шаг по времени глобальные итерации

2011 Дискретизация Используем регулярную сетку, неявную конечно-разностную схему: Получаем трехдиагональную систему – для каждой пары (j, k) i i+1 i-1 i+1 i-1 i

2011 Трехдиагональные системы Решаем большое число систем с трехдиагональной матрицей Размеры систем могут отличаться внешний узел внутренний узел граница system 1 system 2 system 3

2011 Детали реализации { { { строим трехдиагональные матрицы и правые части; решаем получившиеся системы; } обновляем нелинейные коэффициенты; }

2011 Реализация на GPU Храним все массивы данных на GPU в глобальной памяти – Минимум транзакций через PCI-E – Отображение 3D массивов в линейную память Основные методы – Построить матрицы – Решить системы Дополнительные функции для работы с массивами – Слияние, копирование, операции с масками (X, Y, Z) Z + Y * dimZ + X * dimY * dimZ

2011 Построение матриц Входные данные: – Предыдущий слой – Нелинейный слои Каждая нить рассчитывает: – Коэффициенты матрицы – Правую часть системы Используем шаблоны C++ для разных направлений и уравнений a b c d

2011 Построение матриц - производительность Направление Z в несколько раз медленнее X/Y – Каждая нить работает с непрерывным куском массива – Запросы в память не объединяются, много промахов в кэш Tesla C2050 (SP) сек DirRequests per load L1 gld hit % IPC X2 – 325 – Y2 – 333 – Z320 – Ядра Время

2011 Построение матриц - оптимизация Запускаем расчеты вдоль Z в транспонированном пространстве XZY – Локальный доступ к памяти – Дополнительные затраты на транспонирование XYZ Локальные итерации по X Локальные итерации по Y Локальные итерации по Z Транспонируем входные массивы Транспонируем выходные массивы Локальные итерации по Y XZY

2011 Построение матриц - оптимизация Решение систем занимает намного больше времени, чем транспонирование данных – с увеличением числа локальных итераций транспонирование занимает еще меньший % времени Tesla C2050 (SP) сек 2.5x Время Z dirRequests per load L1 gld hit % IPC Original320 – Transposed2 – 330 – Ядра

2011 Анализ задачи Большое число систем – Максимум – квадрат размера сетки на каждом шаге – 16K для 128^3 Относительно небольшие размеры систем – Максимальный размер = размеру сетки – 128 for 128^3 В данном случае подходит метод распараллеливания, где 1 нить решает ровно 1 систему – Число нитей достаточно, чтобы загрузить GPU

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

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

2011 Выбор метода для решения систем Применительно к методу расщепления в 3D области – Для направлений X, Y элементы матрицы перемежаются (interleaved) по умолчанию – В направлении Z тоже interleaved, но в транспонированном пространстве Наиболее эффективный метод – прогонка – Одна нить решает одну систему – Также можно поэкспериментировать с PCR для направления Z

2011 Анализ производительности – Fermi Влияние L1/L2 – Использование 48K L1 вместо 16K дает 10-15% прироста в скорости – Выключение L1 снижает производительность на 10% – L1 помогает только в случае локального переиспользования и невыровненного доступа Пропускная способность прогонки на Tesla C2050 – Одинарная точность = 119 GB/s, 82% от пика – Двойная точность = 135 GB/s, 93% от пика

2011 Сравнение производительности Конфигурация CPU: – Intel Core i GHz – На CPU использовались все 4 ядра через OpenMP (ускорение около 3-4x раз по сравнению с 1 ядром) Конфигурации GPU: – NVIDIA Tesla C1060 – NVIDIA Tesla C2050 Измеряем время на построение матриц и решение систем для всех итераций

2011 Тестовые примеры ТестРазмер сеткиXYZ Куб128 x 128 x 12810K Сердце96 x 160 x 12813K8K Море160 x 128 x 12818K20K6K Куб Сердце Море

2011 Результаты – Куб Одинаковые размеры по X, Y, Z SINGLE DOUBLE систем/мс 5.9x 9.5x 2.7x 8.2x

2011 Результаты – Сердце Больше систем вдоль X, размеры плавно меняются SINGLE DOUBLE систем/мс 8.1x 11.4x 3.3x 7.8x

2011 Результаты – Море Множество систем разной размерности вдоль X и Y SINGLE DOUBLE систем/мс 6.5x 9.6x 3.1x 7.2x

2011 Дальнейшая работа Основное ограничение – доступный объем памяти – 3D массивы: сетка, временные слои, матрицы Распределение задачи на несколько GPU и между узлами кластера позволяет рассчитывать большие сетки Разделяем сетку поперек расщепления Распределяем части по доступным GPU Решаем системы и обновляем общие слои GPU 1 GPU 2 GPU 3 GPU 4 Направление расщепления

2011 Ресурсы “Efficient Tridiagonal Solvers for ADI methods and Fluid Simulation”, GPU Technology Conference, 2010, Nikolai Sakharnykh “Tridiagonal Solvers on the GPU and Applications to Fluid Simulation”, GPU Technology Conference, 2009, Nikolai Sakharnykh “Система динамической визуализации на многопроцессорных компьютерах с общей памятью и ее применение для численного моделирования турбулентных потоков вязкой жидкоти”, Вестник Московского Университета 2007, Пасконов В.М., Березин С.Б., Корухова Е.С.

2011 План Обзор трехдиагональных решателей Моделирование течений в 3D Эффект глубины резкости в 2D – Постановка задачи – Метод покоординатного расщепления – Анализ и подходы к решению – Результаты

2011 Постановка задачи Применение метода расщепления для 2D задач Моделирование эффекта глубины резкости (DOF) – Используем уравнение диффузии для размытия изображения Решаем трехдиагональные системы в 2D области – Другие методы являются более эффективными для GPU

2011 Численный метод Метод покоординатного расщепления X Y для всех

2011 Реализация метода расщепления Неявная схема всегда устойчива После дискретизации на регулярной сетке с dx = dt = 1: Получаем трехдиагональную систему для каждого j (столбца изображения) i i-1 i i+1

2011 Анализ задачи Малое число систем – Максимум 2K для больших разрешений Большие размеры матриц – До 2K для больший разрешений Использование 1 нити для решения 1 системы не будет эффективным – Низкая загруженность GPU

2011 Реализация на GPU Использование циклической редукции – Размеры большие, поэтому PCR будет менее эффективным, чем CR – Правильное расположение элементов матрицы (sequential) Использование гибридных решений – Параллельная редукция + прогонка, когда число систем достаточно велико

2011 Идея использования уравнения диффузии Распространение температуры (= цвет) на 2D пластине (= изображении) с неоднородной теплопроводностью (= радиусы размытия) большие радиусы на фоне радиусы в фокусе = 0 четкие границы Основные особенности: - Нет “color bleeding” - Поддержка неоднородных радиусов любого размера

2011 Эффект глубины резкости в играх Metro2033, © THQ, 4A Games

2011 Эффект глубины резкости в играх Metro2033, © THQ, 4A Games

2011 Полезные ресурсы Статья Pixar о Diffusion DOF: Циклическая редукция на CUDA: Сэмпл в GPU Computing SDK – OpenCL Tridiagonal

2011 Выводы 10x ускорение метода расщепления в сложных областях – Высокая производительность Fermi в двойной точности Фотореалистичные эффекты в играх в реальном времени Выбирайте метод решения в зависимости от задачи

2011 Вопросы?

2011 Диссипативная функция Расщепление вдоль координат X, Y, Z:

2011 Как работают линзы фокус размытие

2011 Пост-обработка изображения Используем буфер глубины для рачетов радиусов размытия DOF фильтр цвет радиус

2011 Техника размытия через диффузию Используем уравнение диффузии для моделирования размытия цвета “Interactive Depth of Field Using Simulated Diffusion on a GPU”, Kass et al. 2006, Pixar

2011 Использование уравнения диффузии Уравнение диффузии: u(x,y,t) – цвет β(x,y) – квадрат радиуса t = 0 x, y – координаты t – время t = 1 Исходное изображение Результат Радиус размытия

2011 Эффект глубины резкости в играх заставки перезарядка оружия Metro2033, © THQ, 4A Games прицеливание Call of Duty 4, © Activision, Infinity Ward