#125 Vulkan API: Пример вычислений CUDA , часть 4. Барьер конвейера vkCmdPipelineBarrier()
00:00 Введение в алгоритм Compute Headless • Обсуждение алгоритма Compute Headless, который генерирует набор чисел от 0 до 31 на стороне процессора и отправляет их в GPU. • GPU «использует» числа, но на самом деле это не цифры, а просто последовательность. • Алгоритм вычисляет сумму двух чисел, например, 1 = 0 + 1, 2 = 1 + 1 и т. д. 01:50 Создание командного буфера • Объяснение процесса создания командного буфера. • Упоминание о важности барьеров для трубопроводов в этом процессе. 02:10 Синхронизация и барьеры • Различие между ограждениями и семафорами: ограждения синхронизируют процессор и GPU, семафоры — GPU между собой. • Описание двух барьеров: один гарантирует завершение передачи входного буфера до начала вычислений, другой — завершение записи шейдера до считывания буфера обратно с GPU. 03:49 Передача данных между процессорами • Создание набора чисел в процессоре и передача их в GPU через буфер передачи. • Необходимость барьера для гарантии завершения передачи данных до начала вычислений шейдера. 05:49 Передача результатов вычислений • Передача результатов вычислений с GPU на CPU для вывода на экран. • Использование барьера для гарантии завершения записи шейдера перед считыванием буфера обратно. 08:45 Проблемы с ограждениями и семафорами • Ограничения ограждений и семафоров: они решают только проблему упорядочения выполнения, но не видимость памяти. • Конвейерные барьеры решают проблему видимости памяти и упорядочения выполнения. 12:11 Роль конвейерных барьеров • Конвейерные барьеры обеспечивают выполнение заказов и видимость памяти. • Пример использования барьер для обеспечения передачи входного буфера с маской источника и назначения. 13:20 Введение в конвейерный барьер VKCMD • Объяснение работы бита чтения шейдера на стороне GPU. • Упоминание о необходимости завершения записи хостом перед чтением шейдером. 13:45 Конвейерный барьер VKCMD и его функции • Описание важности конвейерного барьера VKCMD. • Введение инструкций в конвейерный барьер для гарантии завершения передачи входного буфера до начала вычислений шейдера. 14:42 Расчёты на GPU и передача результатов • Активное вычисление результатов на стороне GPU. • Необходимость переноса результатов обратно в центральный процессор для вывода на экран. 15:40 Барьеры и маски доступа • Роль барьеров в обеспечении завершения записи шейдера до считывания данных центральным процессором. • Объяснение масок источника и назначения: правый бит шейдера и бит чтения для передачи доступа к VK. 17:23 Этапы конвейерного барьера • Описание этапов конвейерного барьера: бит хоста, бит вычислительного шейдера, бит передачи. • Упоминание третьего барьера и его особенностей. 20:13 Третий барьер и копирование буфера • Копирование буфера обратно в видимый буфер хоста с помощью команды VKCMD. • Важность завершения копирования до начала считывания данных хостом. 24:39 Синхронизация и видимость памяти • Подчёркивание сложности синхронизации и важности видимости памяти. • Роль буферного барьера памяти VK в обеспечении порядка в памяти. 25:32 Заключение и требования • Необходимость Vulcan и машины под управлением Windows с графическим процессором, поддерживающим Vulcan для работы с материалом. 26:07 Установка Vulcan SDK и примеры • Для установки Vulcan SDK нужен учебник номер один. • Учебник номер 13 включает примеры, требующие трассировки лучей. • Если графический процессор не поддерживает трассировку лучей, примеры не запустится. • Для работы с Vulcan достаточно поддержки RTX и выше для графических процессоров NVIDIA. 27:02 Инструменты профилирования • Автор использует NSight Graphics и NSight Compute для профилирования и отладки графических процессов. • Эти инструменты работают только с графическими процессорами NVIDIA. • Рекомендуется использовать графические процессоры NVIDIA для доступа к этим инструментам. 28:02 Сложности алгоритма • Алгоритм требует множества инструкций для выполнения даже простых задач. • Это вызывает опасения у некоторых пользователей. • Несмотря на сложности, алгоритм служит достойной цели и предоставляет высокий уровень контроля. 28:48 Заключение
00:00 Введение в алгоритм Compute Headless • Обсуждение алгоритма Compute Headless, который генерирует набор чисел от 0 до 31 на стороне процессора и отправляет их в GPU. • GPU «использует» числа, но на самом деле это не цифры, а просто последовательность. • Алгоритм вычисляет сумму двух чисел, например, 1 = 0 + 1, 2 = 1 + 1 и т. д. 01:50 Создание командного буфера • Объяснение процесса создания командного буфера. • Упоминание о важности барьеров для трубопроводов в этом процессе. 02:10 Синхронизация и барьеры • Различие между ограждениями и семафорами: ограждения синхронизируют процессор и GPU, семафоры — GPU между собой. • Описание двух барьеров: один гарантирует завершение передачи входного буфера до начала вычислений, другой — завершение записи шейдера до считывания буфера обратно с GPU. 03:49 Передача данных между процессорами • Создание набора чисел в процессоре и передача их в GPU через буфер передачи. • Необходимость барьера для гарантии завершения передачи данных до начала вычислений шейдера. 05:49 Передача результатов вычислений • Передача результатов вычислений с GPU на CPU для вывода на экран. • Использование барьера для гарантии завершения записи шейдера перед считыванием буфера обратно. 08:45 Проблемы с ограждениями и семафорами • Ограничения ограждений и семафоров: они решают только проблему упорядочения выполнения, но не видимость памяти. • Конвейерные барьеры решают проблему видимости памяти и упорядочения выполнения. 12:11 Роль конвейерных барьеров • Конвейерные барьеры обеспечивают выполнение заказов и видимость памяти. • Пример использования барьер для обеспечения передачи входного буфера с маской источника и назначения. 13:20 Введение в конвейерный барьер VKCMD • Объяснение работы бита чтения шейдера на стороне GPU. • Упоминание о необходимости завершения записи хостом перед чтением шейдером. 13:45 Конвейерный барьер VKCMD и его функции • Описание важности конвейерного барьера VKCMD. • Введение инструкций в конвейерный барьер для гарантии завершения передачи входного буфера до начала вычислений шейдера. 14:42 Расчёты на GPU и передача результатов • Активное вычисление результатов на стороне GPU. • Необходимость переноса результатов обратно в центральный процессор для вывода на экран. 15:40 Барьеры и маски доступа • Роль барьеров в обеспечении завершения записи шейдера до считывания данных центральным процессором. • Объяснение масок источника и назначения: правый бит шейдера и бит чтения для передачи доступа к VK. 17:23 Этапы конвейерного барьера • Описание этапов конвейерного барьера: бит хоста, бит вычислительного шейдера, бит передачи. • Упоминание третьего барьера и его особенностей. 20:13 Третий барьер и копирование буфера • Копирование буфера обратно в видимый буфер хоста с помощью команды VKCMD. • Важность завершения копирования до начала считывания данных хостом. 24:39 Синхронизация и видимость памяти • Подчёркивание сложности синхронизации и важности видимости памяти. • Роль буферного барьера памяти VK в обеспечении порядка в памяти. 25:32 Заключение и требования • Необходимость Vulcan и машины под управлением Windows с графическим процессором, поддерживающим Vulcan для работы с материалом. 26:07 Установка Vulcan SDK и примеры • Для установки Vulcan SDK нужен учебник номер один. • Учебник номер 13 включает примеры, требующие трассировки лучей. • Если графический процессор не поддерживает трассировку лучей, примеры не запустится. • Для работы с Vulcan достаточно поддержки RTX и выше для графических процессоров NVIDIA. 27:02 Инструменты профилирования • Автор использует NSight Graphics и NSight Compute для профилирования и отладки графических процессов. • Эти инструменты работают только с графическими процессорами NVIDIA. • Рекомендуется использовать графические процессоры NVIDIA для доступа к этим инструментам. 28:02 Сложности алгоритма • Алгоритм требует множества инструкций для выполнения даже простых задач. • Это вызывает опасения у некоторых пользователей. • Несмотря на сложности, алгоритм служит достойной цели и предоставляет высокий уровень контроля. 28:48 Заключение




