Vulkan入门系列18 - 计算着色器(Compute Shader)
一:概述
在这一章节中,我们将探讨计算着色器。到目前为止,之前的所有章节都涉及了Vulkan管线的传统图形部分。但与OpenGL等传统API不同,Vulkan中计算着色器的支持是强制性的。这意味着我们可以在每个可用的Vulkan平台上使用计算着色器,无论是高端桌面GPU还是低功耗嵌入式设备。
这为图形处理单元(GPGPU)上的通用计算打开了新世界,无论您的应用程序运行在哪里。GPGPU意味着您可以在GPU上进行通用计算,这在传统上是CPU的领域。但随着GPU变得越来越强大和灵活,许多需要CPU通用能力的工作现在可以在GPU上实时完成。
GPU的计算能力可以用于的一些示例包括图像处理、可见性测试、后处理光照计算、动画、物理(例如粒子系统)等。此外,甚至可以使用计算能力进行不需要任何图形输出的非视觉计算工作,例如数值运算或与人工智能相关的任务。这被称为“ headless compute”(即无需图形显示的计算-无头计算)。
二:优点
在GPU上进行计算大量的计算有几个优点。最明显的一点是将工作从CPU移植GPU。另一个优点是无需在CPU的主内存和GPU的内存之间移动数据。所有数据都可以保留在GPU上,而无需等待主内存的慢速传输。
除了这些,GPU具有高度的并行性,其中一些拥有数万个小计算单元