#140 GPU расчёт частиц, часть 2. Вычисления с одним и c двумя проходами (computenbody)
00:00 Введение и обзор алгоритмов • Приветствие и анонс темы выпуска. • Обсуждение алгоритма вычисления n-тел, где частицы перемещаются по кругу под действием гравитационных сил. • Упоминание о двух вычислительных циклах для алгоритма n-тел. 01:54 Алгоритм вычисления частиц • Описание алгоритма вычисления частиц, где частицы работают независимо друг от друга. • Подчёркивание, что для этого алгоритма требуется только один вычислительный проход. • Объяснение меньшей трудоёмкости вычислений по сравнению с алгоритмом n-тел. 02:48 Различие между вычислительными и рендеринговыми проходами • Объяснение различий между «вычислительным проходом» и «проходом рендеринга». • Уточнение, что «проход рендеринга» связан с графикой. 04:18 Реализация алгоритма n-тел • Детальное описание первого прохода алгоритма n-тел: вычисление гравитационных сил. • Роль шейдеров в расчёте гравитационного притяжения. 07:01 Второй проход алгоритма n-тел • Описание второго прохода: обновление скорости и положения частиц на основе результатов первого прохода. • Использование вектора силы тяжести для уточнения движения частиц. 09:44 Настройка конвейеров и отправка VKCMD • Настройка вычислительных конвейеров для первого и второго проходов. • Отправка VKCMD для запуска конвейеров на графическом процессоре. 11:42 Роль командного буфера • Объяснение работы командного буфера и инструкций для графического процессора. • Запуск командного буфера для выполнения первого и второго проходов. 12:37 Барьер между проходами • Необходимость барьера между первым и вторым проходами для корректного обновления буфера векторов силы. • Важность барьера для предотвращения ошибок при обновлении данных. 13:41 Управление данными и барьеры • Избегайте одновременного считывания и обновления данных вектора силы. • Используйте конвейерный барьер VKCMD для предотвращения условий гонки и повреждения данных. • Барьер блокирует чтение при обновлении данных и наоборот. 14:40 Конвейерный барьер и его функции • Конвейерный барьер VKCMD обеспечивает разделение между вычислениями и чтением данных. • Убедитесь, что компьютерный шейдер закончил запись в буфер перед чтением. • Передайте права собственности при необходимости. 15:39 Различие между пасами рендеринга и вычисления • Пас рендеринга работает с графическими элементами. • Пас вычисления обновляет данные и выполняет вычисления. • Результаты вычислений используются для обновления данных. 16:37 Эксперимент с обновлением данных • При отсутствии обновления второго файла приложение запускается, но визуально изменений нет. • Вычисления выполняются, но координаты и скорость частиц не меняются. 17:35 Первоначальные вычисления и движение частиц • Первоначальные вычисления выполняются на центральном процессоре. • Каждая частица получает свою скорость при запуске. • Частицы движутся независимо друг от друга. 20:24 Влияние отключения передач • Отключение обеих передач приводит к «замороженной» ситуации. • Первоначальные расчёты выполняются, но частицы не двигаются. 21:31 Структура вычислительного процесса • Вычислительный процесс включает сборку, создание конвейера и отправку команд в буфер. • VKCMD dispatch распределяет пакеты работ между потоковыми мультипроцессорами. • Количество рабочих групп определяет эффективность вычислений. 23:28 Подготовка вычислений и использование конвейеров • Функция prepare compute создаёт конвейеры для первого и второго проходов. • В командном буфере Build compute используются созданные конвейеры. 25:11 Особенности приложения particles • В приложении particles требуется только одно вычисление. • Частицы независимы друг от друга и выполняют свои задачи. • Диспетчерская служба VKCMD используется для управления одним вычислением. 26:04 Создание вычислительного конвейера • Необходимо создать вычислительный конвейер VK. • Для отправки команд используется VKCMD. 26:44 Различие между вычислительными и рендеринговыми проходами • Вычислительные проходы отличаются от рендеринговых. • VKCMD dispatch используется для вычислений, а VKCMD draw — для рендеринга. 28:33 Отключение диспетчеризации • Отключение диспетчеризации VKCMD приводит к отсутствию вычислений. • При включении диспетчеризации появляются результаты вычислений. 32:53 Косвенный рендеринг • Косвенный рендеринг позволяет отправлять команды непосредственно с графического процессора. • Это устраняет задержку при возврате данных к центральному процессору. 38:10 Синхронизация вычислительных проходов • Необходимо синхронизировать два вычислительных прохода для обеспечения согласованности памяти. • Это предотвращает условия гонки и повреждение данных. 39:05 Установка Vulcan SDK • Урок 1: Установка пакета Vulcan SDK на компьютер под управлением Windows. • Урок 13: Установка примеров трассировки лучей. • Важно убедиться, что графический процессор поддерживает трассировку лучей. 39:58 Заключение
00:00 Введение и обзор алгоритмов • Приветствие и анонс темы выпуска. • Обсуждение алгоритма вычисления n-тел, где частицы перемещаются по кругу под действием гравитационных сил. • Упоминание о двух вычислительных циклах для алгоритма n-тел. 01:54 Алгоритм вычисления частиц • Описание алгоритма вычисления частиц, где частицы работают независимо друг от друга. • Подчёркивание, что для этого алгоритма требуется только один вычислительный проход. • Объяснение меньшей трудоёмкости вычислений по сравнению с алгоритмом n-тел. 02:48 Различие между вычислительными и рендеринговыми проходами • Объяснение различий между «вычислительным проходом» и «проходом рендеринга». • Уточнение, что «проход рендеринга» связан с графикой. 04:18 Реализация алгоритма n-тел • Детальное описание первого прохода алгоритма n-тел: вычисление гравитационных сил. • Роль шейдеров в расчёте гравитационного притяжения. 07:01 Второй проход алгоритма n-тел • Описание второго прохода: обновление скорости и положения частиц на основе результатов первого прохода. • Использование вектора силы тяжести для уточнения движения частиц. 09:44 Настройка конвейеров и отправка VKCMD • Настройка вычислительных конвейеров для первого и второго проходов. • Отправка VKCMD для запуска конвейеров на графическом процессоре. 11:42 Роль командного буфера • Объяснение работы командного буфера и инструкций для графического процессора. • Запуск командного буфера для выполнения первого и второго проходов. 12:37 Барьер между проходами • Необходимость барьера между первым и вторым проходами для корректного обновления буфера векторов силы. • Важность барьера для предотвращения ошибок при обновлении данных. 13:41 Управление данными и барьеры • Избегайте одновременного считывания и обновления данных вектора силы. • Используйте конвейерный барьер VKCMD для предотвращения условий гонки и повреждения данных. • Барьер блокирует чтение при обновлении данных и наоборот. 14:40 Конвейерный барьер и его функции • Конвейерный барьер VKCMD обеспечивает разделение между вычислениями и чтением данных. • Убедитесь, что компьютерный шейдер закончил запись в буфер перед чтением. • Передайте права собственности при необходимости. 15:39 Различие между пасами рендеринга и вычисления • Пас рендеринга работает с графическими элементами. • Пас вычисления обновляет данные и выполняет вычисления. • Результаты вычислений используются для обновления данных. 16:37 Эксперимент с обновлением данных • При отсутствии обновления второго файла приложение запускается, но визуально изменений нет. • Вычисления выполняются, но координаты и скорость частиц не меняются. 17:35 Первоначальные вычисления и движение частиц • Первоначальные вычисления выполняются на центральном процессоре. • Каждая частица получает свою скорость при запуске. • Частицы движутся независимо друг от друга. 20:24 Влияние отключения передач • Отключение обеих передач приводит к «замороженной» ситуации. • Первоначальные расчёты выполняются, но частицы не двигаются. 21:31 Структура вычислительного процесса • Вычислительный процесс включает сборку, создание конвейера и отправку команд в буфер. • VKCMD dispatch распределяет пакеты работ между потоковыми мультипроцессорами. • Количество рабочих групп определяет эффективность вычислений. 23:28 Подготовка вычислений и использование конвейеров • Функция prepare compute создаёт конвейеры для первого и второго проходов. • В командном буфере Build compute используются созданные конвейеры. 25:11 Особенности приложения particles • В приложении particles требуется только одно вычисление. • Частицы независимы друг от друга и выполняют свои задачи. • Диспетчерская служба VKCMD используется для управления одним вычислением. 26:04 Создание вычислительного конвейера • Необходимо создать вычислительный конвейер VK. • Для отправки команд используется VKCMD. 26:44 Различие между вычислительными и рендеринговыми проходами • Вычислительные проходы отличаются от рендеринговых. • VKCMD dispatch используется для вычислений, а VKCMD draw — для рендеринга. 28:33 Отключение диспетчеризации • Отключение диспетчеризации VKCMD приводит к отсутствию вычислений. • При включении диспетчеризации появляются результаты вычислений. 32:53 Косвенный рендеринг • Косвенный рендеринг позволяет отправлять команды непосредственно с графического процессора. • Это устраняет задержку при возврате данных к центральному процессору. 38:10 Синхронизация вычислительных проходов • Необходимо синхронизировать два вычислительных прохода для обеспечения согласованности памяти. • Это предотвращает условия гонки и повреждение данных. 39:05 Установка Vulcan SDK • Урок 1: Установка пакета Vulcan SDK на компьютер под управлением Windows. • Урок 13: Установка примеров трассировки лучей. • Важно убедиться, что графический процессор поддерживает трассировку лучей. 39:58 Заключение




