GPU 上的机器学习 - 案例研究:开放图像去噪

主要观点:

  • 介绍了机器学习在实时/游戏领域的应用,如 DLSS、Open Image Denoise 等,大多数人对基于 ML 的 GPU 工作负载了解甚少。
  • 以 Open Image Denoise 为例,介绍其基于 ML 的去噪器,将机器学习分为学习和推理两个阶段,重点介绍推理过程在 GPU 上的运行。
  • 详细讲解了 Open Image Denoise 在 DirectML 中的实现,包括张量转换、各种操作(卷积、池化、上采样、连接)及其在 GPU 上的工作原理,以及整个去噪过程的架构(编码和解码阶段)。
  • 强调这只是机器学习的一个小案例研究,提供了一些学习机器学习的资源。

关键信息:

  • Open Image Denoise 是英特尔的开源基于 ML 的去噪器,用于离线渲染器,非实时游戏使用,可在高端 GPU 上快速运行,用于快速交互预览渲染。
  • DirectML 是抽象机器学习操作的 DirectX 12 API,可在无 ML 硬件加速的硬件上通过计算着色器模拟运行。
  • 机器学习分为学习(大量输入数据让模型学习)和推理(通过学习得到的模型处理数据),本文只涉及 GPU 上的推理。
  • 张量是具有任意数量通道的广义 N 维数学对象,在 Open Image Denoise 中用于处理多通道数据,转换张量和纹理的计算着色器较为简单,但不同布局会影响性能。
  • 卷积操作是 Open Image Denoise 中 GPU 使用率高的部分,通过 3D 矩阵与输入像素进行运算,可输出不同特征的通道,多层卷积可构建更复杂的模型。
  • OIDN 的流程呈 U 形,包括编码阶段(降低分辨率并编码抽象数据)和解码阶段(增加分辨率并解码信息),通过连接操作整合不同分辨率的信息。

重要细节:

  • 以楼梯渲染图像为例,展示了低样本和高样本渲染的差异,以及 OIDN 对低样本图像的去噪效果。
  • 详细解释了各种操作的具体过程,如池化是取 4 像素的最大值进行下采样,上采样使用最近邻采样,连接是将一个张量的通道附加到另一个张量等。
  • 给出了 Sobel 滤波器的示例,说明卷积在检测边缘等特征中的应用。
  • 绘制了 OIDN 中各种操作的组合图,展示了编码和解码阶段的过程。
  • 推荐了学习机器学习的资源,如 Max Liani 的 Deep Neural Network Dive 帖子、Neural Networks and Deep Learning 在线教科书、SIGGRAPH 的相关研讨会视频。
阅读 15
0 条评论