amd - AMD RDNA 支持wave32 是什么意思?
问题描述
来自 AMD RDNA 白皮书,据说
RDNA 架构原生设计用于具有 32 个工作项的新窄波前,直观地称为 wave32,针对高效计算进行了优化。Wave32 为计算提供了几个关键优势,并补充了现有的以图形为中心的 wave64 模式。
众所周知,波前的大小是64。wave32是否意味着我们可以将波前从64配置到32?
有关于wave32的任何编码示例吗?
解决方案
虽然 RDNA 架构针对 wave32 进行了优化,但现有的 wave64 模式对于某些应用程序可能更有效。为了处理wave64 指令,wave 控制器发出并执行两条wave32 指令,每条指令对wave64 指令的一半工作项进行操作。处理 wave64 指令的默认方法是简单地发出并连续执行每条指令的上半部分和下半部分——概念上将每条指令水平切片。
https://www.amd.com/system/files/documents/rdna-whitepaper.pdf
应用实例,CAS
AMD 的 FidelityFX 套件包括一种称为对比度自适应锐化 (CAS) 的新方法,该方法使用后处理计算着色器来提高图像质量。CAS 增强对象内部的细节,同时保持抗锯齿创建的平滑渐变,如图 12 所示。它是一个全屏计算着色器,因此可以使用任何类型的抗锯齿,并且在配对时特别有效具有时间抗锯齿。
CAS 速度极快,2560x1440 帧仅需 0.15 毫秒,并受益于 RDNA 架构中的各种功能,例如用于地址计算的打包整数数学、用于计算的打包 fp16 数学、更快的图像加载和 wave32。
推荐阅读
- graph - NetworkX 库能否读取 Ntriple 格式的 RDF 数据并构建 Graph 对象以及属性或节点特征
- rxjs - 无法使用 ngrx 对 observable 进行管道传输
- flutter - 如何检测手机是否在颤振中连接到电源
- javascript - 从输入中传递 localStorage 数据
- java - ByteBuddy:转换方法时如何在进入/退出时添加局部变量
- go - 如何使用具有两个不同名称(短和长)的标志
- python - 在 Python 中按温度过滤 XYZ txt 文件(数据来自有限元)
- python - 在 plt.show() 中设置值时出现 Matplotlib 弃用警告。关键词是什么?
- celery - 使用命令行检查 celery 配置
- azure-devops - 如何将自己添加回下拉列表以在 Azure DevOps 板中分配卡?