Состоялся релиз Vulkan 1.3.269 с новыми расширениями от Arm и NVIDIA.
Помимо обычной череды исправлений и уточнений в документации, релиз Vulkan 1.3.269 на этой неделе принес два новых расширения: VK_ARM_scheduling_controls и VK_NV_cuda_kernel_launch.
В то время как NVIDIA уже провела работу по улучшению взаимодействия API Vulkan и CUDA, сегодняшний релиз Vulkan 1.3.269 принес расширение VK_NV_cuda_kernel_launch, позволяющее запускать ядра CUDA из контекста API Vulkan.
Новая документация VK_NV_cuda_kernel_launch поясняет:
«Взаимодействие между API иногда может создавать дополнительные накладные расходы в зависимости от используемой платформы. Это расширение нацелено на развертывание существующих ядер CUDA через Vulkan, позволяя напрямую загружать PTX-ядра и диспетчеризировать их из командного буфера Vulkan без необходимости использовать взаимодействие между контекстами Vulkan и CUDA. Однако для отладки и профилирования мы поощряем реальную разработку с использованием «родной» среды исполнения CUDA.
Сначала приложение должно создать CUDA-модуль с помощью vkCreateCudaModuleNV, затем создать точку входа CUDA-функции с помощью
vkCreateCudaFunctionNV.Затем для диспетчеризации этой функции приложение создаст командный буфер, в котором запустит ядро с помощью vkCmdCudaLaunchKernelNV».
Еще одно новое расширение — VK_ARM_scheduling_controls, которое представляет собой набор элементов управления, позволяющих более точно настроить поведение планирования на графических процессорах Arm Mali.
Более подробная информация о сегодняшнем обновлении спецификации Vulkan 1.3.269 доступна на GitHub.