微软在 DirectX 中启用神经渲染的第一步是支持协作向量。这一新增功能将释放 Nvidia RTX 50 系列 GPU 上的“神经着色”功能。这是首批配备具有神经着色功能的 Tensor Core 的 Nvidia GPU。
- 协作向量将加速实时渲染的实时 AI 工作负载。它支持将矩阵与任意大小的向量相乘,从而优化矩阵向量运算。
- 协作向量还允许 AI 任务在着色器管道的不同阶段运行,从而允许小型神经网络在像素着色器内运行而不占用整个 GPU。
这样就可以实现神经图形技术,而无需在每次使用 AI/ML 操作时都停止图形管道。
简单来说,微软正在改变 DirectX,让 AI 成为图形管道的一部分,而不是需要单独处理的单独组件。这为开发人员提供了新的选择,使他们能够使用 AI 来增强游戏渲染的各个方面。
什么是协作向量?
协作向量是DirectX和CUDA中的一种线程协作机制,通过细粒度同步和协作提升GPU程序性能,适用于需要复杂数据共享和同步的并行任务。
在DirectX中,协作向量(Cooperative Vector)通常与CUDA或DirectX 12的协作组(Cooperative Groups)相关。协作组是一种编程模型,允许线程在更细粒度上同步和协作,尤其适用于GPU编程。
协作向量的关键点:
- 线程协作:协作向量允许多个线程在同一线程块或不同线程块中协同工作,执行复杂任务。
- 细粒度同步:与传统的线程块同步相比,协作向量提供了更灵活的同步机制,允许线程子集独立同步。
- 性能优化:通过减少不必要的同步开销,协作向量有助于提升GPU程序的性能。
- 应用场景:常用于需要复杂数据共享和同步的算法,如并行归约、扫描等。
为什么协作向量很重要?
- 协作向量支持将加速 AI 工作负载的实时渲染,从而直接提高神经渲染技术的性能。它将通过实现矩阵与任意大小向量的乘法来实现这一点,从而优化 AI 训练、微调和推理所需的大量矩阵向量运算。
- 协作向量还使 AI 任务能够在不同的着色器阶段运行,这意味着小型神经网络可以在像素着色器中运行,而无需消耗整个 GPU。
- 协作向量将使开发人员能够将神经图形技术无缝集成到 DirectX 应用程序中,并点亮跨多个平台对 AI 加速器硬件的访问。
请注意,Nvidia 的 RTX 50 系列 GPU 是目前唯一支持神经着色器的 GPU。不过,微软正在与 AMD、英特尔、Nvidia 和高通合作,以实现对这些新功能的跨供应商支持。微软希望这些变化成为 DirectX 的核心部分。