#134 Vulkan API: GPU Вычисления задачи n-тел 4.0. Новый конвейер с движущимися частицами

00:00 Введение и цель видео • Приветствие и начало программы CUDA Education. • Объяснение цели: создание дополнительного конвейера для движущихся частиц в углу экрана. 00:59 Независимость частиц • Частицы будут максимально независимы от основного приложения. • Цель перемещения частиц — добавить уровень сложности в вычисления. 01:37 Проблемы графического наложения • Текущий подход приводит к графическому наложению, что упрощает задачу. • Отсутствие вычислений и взаимодействия между ЦП и ГП. 03:15 Сложность задачи • Частицы имеют собственный конвейер с графическим и вычислительным шейдерами. • Избегание вмешательства в основные частицы для избежания синхронизации. 04:12 Структура видео • Видео будет разбито на несколько частей для удобства восприятия. • Обсуждение заметок и прогресса в разработке. 06:02 Создание конвейера • Создание переменной компоновки графического конвейера corner graphics. • Определение угловой графической переменной конвейера. 06:56 Буфер для частиц • Необходимость создания буфера для угловых частиц. • Распределение памяти для хранения частиц и вычислений. 08:05 Графика и вычисления • Графический материал прост в реализации, но вычисления усложняются. • Необходимо вычислять положение и скорости частиц, обновлять их по мере прохождения времени. • Большая часть сложности связана с вычислительной частью уравнения. 09:00 Использование структур в C • Структура — это непрерывный блок памяти, группирующий переменные под одним именем. • Структуры важны в языке C для оптимизации вычислений. • Пример использования структуры: переменная corner particles для размещения связанных данных. 09:57 Оптимизация структур • Параметры в структуре хранятся вместе, что облегчает их запоминание. • Оптимизация происходит за счёт группировки элементов в структуре. • Compute shader считывает и записывает новые положения и скорости частиц. 10:53 Работа с шейдерами • Вычислительный шейдер выполняет вычисления на стороне графического процессора. • Шейдеры пишутся на языке GLSL и компилируются в формат SPIR-V. • Графический шейдер обновляет буфер вершин и выводит презентацию на экран. 12:38 Синхронизация вычислений и графики • Графическая часть должна извлекать данные из буфера вершин для рисования. • Compute должен выполнять чтение и запись данных. • Необходима синхронизация для предотвращения одновременного обновления буфера вершин и вычислений. 14:27 Настройка переменных и синхронизация • Настройка переменных для конвейера compute, наборов дескрипторов и буфера команд. • Использование вычислительных барьеров и семафоров для синхронизации процессора и графического процессора. • Ограждения синхронизируют процессор с графическим процессором, а семафоры — графический процессор с графическим процессором. 17:24 Подготовка буфера для угловых частиц • Создание вектора, указывающего на все частицы. • Определение инструкций по размещению частиц на экране. • Прохождение по вектору и вычисление положения и скорости частиц. 18:01 Перенос данных с центрального процессора на графический • Создание вектора для частиц и вычисление их позиций и скоростей. • Перенос данных с центрального процессора в локальную память графического процессора. • Использование промежуточного буфера для передачи данных. 18:58 Создание командного буфера • Создание командного буфера для сообщения графическому процессору о необходимости переноса данных. • Графический процессор понимает только язык командного буфера. • Центральный процессор не может напрямую управлять графическим процессором. 19:57 Копирование данных • Определение областей данных для копирования между процессором и графическим процессором. • Запуск команды очистки буфера для подтверждения передачи данных. • Уничтожение промежуточного буфера после завершения передачи. 20:56 Подготовка угловых вычислений • Подготовка интерфейсного контракта для вычислительного шейдера. • Проверка доступа шейдера к буферу хранения. 22:19 Управление часами • Использование центрального процессора для управления системными часами. • Передача тактового времени от центрального процессора к графическому с помощью push-констант. 24:11 Использование push-констант • Push-константы как эффективный способ передачи небольших фрагментов данных. • Преимущества push-констант перед uniform buffer. 25:07 Создание схемы конвейера • Определение схемы конвейера для вычислительного шейдера. • Создание набора дескрипторов для каждого кадра. 27:36 Компиляция шейдеров и создание буферов команд 28:38 Модификация исходного файла 29:14 Буфер для угловых частиц 30:13 Интерпретация памяти 31:12 Вычисление конвейера 32:10 Дескрипторы и синхронизация 33:07 Барьеры и семафоры 35:21 Передача данных 37:02 Подготовка расчёта угла поворота 38:58 Создание схемы конвейера 39:44 Создание конвейера вычислений 40:35 Работа с ограждениями и семафорами 41:30 Необходимые изменения 42:06 Завершение видео и рекомендации 42:58 Трассировка лучей

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

00:00 Введение и цель видео • Приветствие и начало программы CUDA Education. • Объяснение цели: создание дополнительного конвейера для движущихся частиц в углу экрана. 00:59 Независимость частиц • Частицы будут максимально независимы от основного приложения. • Цель перемещения частиц — добавить уровень сложности в вычисления. 01:37 Проблемы графического наложения • Текущий подход приводит к графическому наложению, что упрощает задачу. • Отсутствие вычислений и взаимодействия между ЦП и ГП. 03:15 Сложность задачи • Частицы имеют собственный конвейер с графическим и вычислительным шейдерами. • Избегание вмешательства в основные частицы для избежания синхронизации. 04:12 Структура видео • Видео будет разбито на несколько частей для удобства восприятия. • Обсуждение заметок и прогресса в разработке. 06:02 Создание конвейера • Создание переменной компоновки графического конвейера corner graphics. • Определение угловой графической переменной конвейера. 06:56 Буфер для частиц • Необходимость создания буфера для угловых частиц. • Распределение памяти для хранения частиц и вычислений. 08:05 Графика и вычисления • Графический материал прост в реализации, но вычисления усложняются. • Необходимо вычислять положение и скорости частиц, обновлять их по мере прохождения времени. • Большая часть сложности связана с вычислительной частью уравнения. 09:00 Использование структур в C • Структура — это непрерывный блок памяти, группирующий переменные под одним именем. • Структуры важны в языке C для оптимизации вычислений. • Пример использования структуры: переменная corner particles для размещения связанных данных. 09:57 Оптимизация структур • Параметры в структуре хранятся вместе, что облегчает их запоминание. • Оптимизация происходит за счёт группировки элементов в структуре. • Compute shader считывает и записывает новые положения и скорости частиц. 10:53 Работа с шейдерами • Вычислительный шейдер выполняет вычисления на стороне графического процессора. • Шейдеры пишутся на языке GLSL и компилируются в формат SPIR-V. • Графический шейдер обновляет буфер вершин и выводит презентацию на экран. 12:38 Синхронизация вычислений и графики • Графическая часть должна извлекать данные из буфера вершин для рисования. • Compute должен выполнять чтение и запись данных. • Необходима синхронизация для предотвращения одновременного обновления буфера вершин и вычислений. 14:27 Настройка переменных и синхронизация • Настройка переменных для конвейера compute, наборов дескрипторов и буфера команд. • Использование вычислительных барьеров и семафоров для синхронизации процессора и графического процессора. • Ограждения синхронизируют процессор с графическим процессором, а семафоры — графический процессор с графическим процессором. 17:24 Подготовка буфера для угловых частиц • Создание вектора, указывающего на все частицы. • Определение инструкций по размещению частиц на экране. • Прохождение по вектору и вычисление положения и скорости частиц. 18:01 Перенос данных с центрального процессора на графический • Создание вектора для частиц и вычисление их позиций и скоростей. • Перенос данных с центрального процессора в локальную память графического процессора. • Использование промежуточного буфера для передачи данных. 18:58 Создание командного буфера • Создание командного буфера для сообщения графическому процессору о необходимости переноса данных. • Графический процессор понимает только язык командного буфера. • Центральный процессор не может напрямую управлять графическим процессором. 19:57 Копирование данных • Определение областей данных для копирования между процессором и графическим процессором. • Запуск команды очистки буфера для подтверждения передачи данных. • Уничтожение промежуточного буфера после завершения передачи. 20:56 Подготовка угловых вычислений • Подготовка интерфейсного контракта для вычислительного шейдера. • Проверка доступа шейдера к буферу хранения. 22:19 Управление часами • Использование центрального процессора для управления системными часами. • Передача тактового времени от центрального процессора к графическому с помощью push-констант. 24:11 Использование push-констант • Push-константы как эффективный способ передачи небольших фрагментов данных. • Преимущества push-констант перед uniform buffer. 25:07 Создание схемы конвейера • Определение схемы конвейера для вычислительного шейдера. • Создание набора дескрипторов для каждого кадра. 27:36 Компиляция шейдеров и создание буферов команд 28:38 Модификация исходного файла 29:14 Буфер для угловых частиц 30:13 Интерпретация памяти 31:12 Вычисление конвейера 32:10 Дескрипторы и синхронизация 33:07 Барьеры и семафоры 35:21 Передача данных 37:02 Подготовка расчёта угла поворота 38:58 Создание схемы конвейера 39:44 Создание конвейера вычислений 40:35 Работа с ограждениями и семафорами 41:30 Необходимые изменения 42:06 Завершение видео и рекомендации 42:58 Трассировка лучей

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