#095 Vulkan API: Кошмар синхронизации, часть 1

00:02 Введение в алгоритм Compute Cloth • Обсуждение алгоритма Compute Cloth, который автор называет «алгоритмом синхронизационного ада». • Подчёркивается важность понимания синхронизаций в алгоритме. • Обещание снять несколько видео для более глубокого понимания алгоритма. 00:52 Визуализация и симуляция ветра • Описание визуализации: шар, ткань и холст. • Симуляция ветра вызывает движение ткани. • При выключении ветра всё возвращается в исходное состояние. 01:52 Рекомендации по установке Vulkan • Совет по установке Vulkan API на Windows с видеокартой. • Упоминание о необходимости поддержки трассировки лучей для некоторых примеров. • Рекомендации по видеокартам для трассировки лучей: NVIDIA RTX и выше. 03:45 Структура вычислительного шейдера • Объяснение работы вычислительного шейдера в Vulkan. • Обновление буфера хранения частиц и обнаружение столкновений. • Использование буфера для вершинной части графического примера. 04:12 Вычислительные и графические процессы • Описание взаимодействия вычислительных и графических процессов. • Важность организации работы с памятью. • Роль барьеров конвейера и семафоров в синхронизации процессов. 07:52 Особенности семейства очередей Q • Различия в реализации Vulkan: выделенные или объединённые очереди. • Необходимость передачи владения между очередями. • Управление параллелизмом через барьеры. 12:36 Параллелизм и синхронизация • Возможность параллельного выполнения графических и вычислительных задач. • Управление синхронизацией между модулями и барьерами. • Избегание одновременной работы над одним и тем же фрагментом памяти. 14:47 Настройка алгоритма • Отключение имитации ветра при запуске алгоритма. • Описание текстурированной ткани и модели сферы. • Использование двух буферов: один для входных данных, другой для вывода обновлённых значений. 15:46 Использование буферов в Vulkan • Вычислительный конвейер обновляет выходной буфер, а графический — входной. • Буфер вершин используется для хранения данных о ткани. • В Vulkan всё должно быть под контролем, бесплатных запусков нет. 17:06 Ресурсы для графической части • Вершины хранятся в буфере хранения шейдеров. • Для работы требуется только индексный буфер. 17:27 Ресурсы для вычислительной части • Количество вычислительных буферов равно одному для сериализованной обработки или двум для параллельной работы. • Один буфер позволяет выполнять только одну операцию за раз, два — выполнять операции параллельно. 18:12 Семафоры в Vulkan • Семафоры — это инструменты синхронизации, работающие только на графическом процессоре. • Они гарантируют, что один процесс завершён до запуска следующего. • Состояние семафоров нельзя напрямую запросить, нужно устанавливать правила и отправлять их вместе с рабочей нагрузкой. 21:36 Ограждения в Vulkan • Ограждения синхронизируют центральный процессор с графическим процессором. • Центральный процессор ожидает сигнала от графического процессора о завершении процесса. • Ограждения предотвращают перегрузку системы и проблемы с оперативной памятью. 25:23 Пример с Vulkan • Деконструкция графического и вычислительного материалов. • Передача прав собственности между графическими изображениями и вычислительным барьером. • Использование функций физического устройства для примера. 31:48 Барьеры конвейера VKCMD • Барьеры конвейера VKCMD управляют видимостью памяти и порядком выполнения. • Один этап выполнения зависит от предыдущего. • Функция добавления графических данных в вычислительные барьеры и противоположная функция добавления вычислительных данных в графические барьеры. 32:38 Передача данных между буферами • В функции добавления графических данных в вычислительные барьеры источником является графический буфер, а местом назначения — вычислительный. • В функции добавления вычислительных данных в графический барьер наоборот: источником является вычислительный буфер, а местом назначения — графический. • Передача данных осуществляется с передачей права собственности. 33:31 Проверка выделенной вычислительной очереди • Продолжается проверка наличия выделенной вычислительной очереди. • Функция добавления вычислительных данных не управляет совместным использованием ресурсов между очередями. 35:22 Барьеры памяти и выполнения • Перед чтением данных из выходного буфера требуется барьер памяти. • Для входного буфера достаточно барьера выполнения. • Барьеры обеспечивают синхронизацию записи и чтения данных. 36:52 Настройка буферов хранения шейдеров 37:36 Копирование данных в локальную память 38:49 Добавление барьера для освобождения ресурсов 40:09 Барьер завершения для начальных условий 45:50 Синхронизация с помощью семафоров 48:09 Обновление вычислительного блока UBO 49:44 Унифицированные буферы 50:21 Передача данных 51:20 Подготовка ресурсов 51:39 Передача прав владения 52:59 Возвращение буферов 55:12 Синхронизация процессов 56:09 Семафоры и взаимодействие 58:06 Особенности Vulkan 01:00:00 Завершение 01:01:47 Требования для запуска 01:02:37 Заключение

Иконка канала Ленинский Букварь
256 подписчиков
12+
4 просмотра
2 месяца назад
12+
4 просмотра
2 месяца назад

00:02 Введение в алгоритм Compute Cloth • Обсуждение алгоритма Compute Cloth, который автор называет «алгоритмом синхронизационного ада». • Подчёркивается важность понимания синхронизаций в алгоритме. • Обещание снять несколько видео для более глубокого понимания алгоритма. 00:52 Визуализация и симуляция ветра • Описание визуализации: шар, ткань и холст. • Симуляция ветра вызывает движение ткани. • При выключении ветра всё возвращается в исходное состояние. 01:52 Рекомендации по установке Vulkan • Совет по установке Vulkan API на Windows с видеокартой. • Упоминание о необходимости поддержки трассировки лучей для некоторых примеров. • Рекомендации по видеокартам для трассировки лучей: NVIDIA RTX и выше. 03:45 Структура вычислительного шейдера • Объяснение работы вычислительного шейдера в Vulkan. • Обновление буфера хранения частиц и обнаружение столкновений. • Использование буфера для вершинной части графического примера. 04:12 Вычислительные и графические процессы • Описание взаимодействия вычислительных и графических процессов. • Важность организации работы с памятью. • Роль барьеров конвейера и семафоров в синхронизации процессов. 07:52 Особенности семейства очередей Q • Различия в реализации Vulkan: выделенные или объединённые очереди. • Необходимость передачи владения между очередями. • Управление параллелизмом через барьеры. 12:36 Параллелизм и синхронизация • Возможность параллельного выполнения графических и вычислительных задач. • Управление синхронизацией между модулями и барьерами. • Избегание одновременной работы над одним и тем же фрагментом памяти. 14:47 Настройка алгоритма • Отключение имитации ветра при запуске алгоритма. • Описание текстурированной ткани и модели сферы. • Использование двух буферов: один для входных данных, другой для вывода обновлённых значений. 15:46 Использование буферов в Vulkan • Вычислительный конвейер обновляет выходной буфер, а графический — входной. • Буфер вершин используется для хранения данных о ткани. • В Vulkan всё должно быть под контролем, бесплатных запусков нет. 17:06 Ресурсы для графической части • Вершины хранятся в буфере хранения шейдеров. • Для работы требуется только индексный буфер. 17:27 Ресурсы для вычислительной части • Количество вычислительных буферов равно одному для сериализованной обработки или двум для параллельной работы. • Один буфер позволяет выполнять только одну операцию за раз, два — выполнять операции параллельно. 18:12 Семафоры в Vulkan • Семафоры — это инструменты синхронизации, работающие только на графическом процессоре. • Они гарантируют, что один процесс завершён до запуска следующего. • Состояние семафоров нельзя напрямую запросить, нужно устанавливать правила и отправлять их вместе с рабочей нагрузкой. 21:36 Ограждения в Vulkan • Ограждения синхронизируют центральный процессор с графическим процессором. • Центральный процессор ожидает сигнала от графического процессора о завершении процесса. • Ограждения предотвращают перегрузку системы и проблемы с оперативной памятью. 25:23 Пример с Vulkan • Деконструкция графического и вычислительного материалов. • Передача прав собственности между графическими изображениями и вычислительным барьером. • Использование функций физического устройства для примера. 31:48 Барьеры конвейера VKCMD • Барьеры конвейера VKCMD управляют видимостью памяти и порядком выполнения. • Один этап выполнения зависит от предыдущего. • Функция добавления графических данных в вычислительные барьеры и противоположная функция добавления вычислительных данных в графические барьеры. 32:38 Передача данных между буферами • В функции добавления графических данных в вычислительные барьеры источником является графический буфер, а местом назначения — вычислительный. • В функции добавления вычислительных данных в графический барьер наоборот: источником является вычислительный буфер, а местом назначения — графический. • Передача данных осуществляется с передачей права собственности. 33:31 Проверка выделенной вычислительной очереди • Продолжается проверка наличия выделенной вычислительной очереди. • Функция добавления вычислительных данных не управляет совместным использованием ресурсов между очередями. 35:22 Барьеры памяти и выполнения • Перед чтением данных из выходного буфера требуется барьер памяти. • Для входного буфера достаточно барьера выполнения. • Барьеры обеспечивают синхронизацию записи и чтения данных. 36:52 Настройка буферов хранения шейдеров 37:36 Копирование данных в локальную память 38:49 Добавление барьера для освобождения ресурсов 40:09 Барьер завершения для начальных условий 45:50 Синхронизация с помощью семафоров 48:09 Обновление вычислительного блока UBO 49:44 Унифицированные буферы 50:21 Передача данных 51:20 Подготовка ресурсов 51:39 Передача прав владения 52:59 Возвращение буферов 55:12 Синхронизация процессов 56:09 Семафоры и взаимодействие 58:06 Особенности Vulkan 01:00:00 Завершение 01:01:47 Требования для запуска 01:02:37 Заключение

, чтобы оставлять комментарии