高级 API 性能:同步

这篇文章最初发表在 NVIDIA 技术博客上。

图形编程中的同步是指协调和控制并发操作,以确保渲染任务的正确和可预测执行。 CPU 和 GPU 之间的不正确同步可能导致性能下降、比赛条件和视觉伪影。

推荐

  • 如果异步运行工作负载,请确保它们强调不同的 GPU 单元。例如,将带宽繁重的任务与数学繁重的任务配对。也就是说,使用 z-prepass 和 BVH 构建或后处理。
  • 始终验证异步实现在不同的体系结构中是否更快。
  • 异步工作可以属于不同的框架。使用此技术可以帮助找到更好的配对工作负载。
  • 等待并发出信号量/围栏的绝对最小值。每一个过量的信号量/围栏都可能在管道中引入一个气泡。
  • 使用 GPU 评测工具( NVIDIA Nsight Graphics 在 GPU trace 模式、 PIX 或 GPU View 中)查看工作重叠和围栏在不拖延一个或另一个队列的情况下配合得如何。
  • 为了避免额外的同步和资源障碍,可以在计算队列中进行异步复制/传输工作。

不推荐

  • 避免创建不会使用的队列。
    • 每个额外的队列都会增加处理的开销。
    • 由于操作系统调度程序的限制,除非启用了硬件加速的 GPU 调度,否则多个异步计算队列不会重叠。更多详细信息,请参阅硬件加速的 GPU 调度。
  • 尽可能避免微小的异步任务并将其分组。耗时< 0 . 2 毫秒的异步工作负载不太可能显示出任何好处,因为这大约是解决硬件调度前围栏问题的时间。
  • 避免使用围栏来同步队列中的工作。根据规范,命令列表/缓冲区保证在命令队列中按提交顺序执行。
  • 不应使用信号灯/围栏代替资源屏障。它们要贵得多,而且支持不同的用途。
  • 不要实施占用率低的工作负载,以使其与图形队列上的更多工作保持一致。 GPU 功能可能会发生变化,占用率低的工作可能会变成拖尾,拖尾另一个队列。

阅读原文

相关推荐
Vex2une4 天前
DLSS 5 2027 路线图前瞻:游戏阵容、硬件适配与技术迭代全预测
nvidia·神经渲染·dlss5·游戏适配·技术迭代·rtx 40系·rtx remix
小哈里6 天前
【推理】NVIDIA DLI培训:大规模部署与优化 AI 推理(推理原理,K8S,网关层,pd分离,MoE,Dynamo)
人工智能·容器·kubernetes·nvidia·推理
wei_shuo13 天前
GR00T N1 深度观察:当机器人行业开始谈论“基础模型“——88 小时数据家底、三道行业难题,与 NVIDIA 给出的第一个通用人形解法
nvidia·启元机器人·gr00t n1
Vex2une13 天前
异构双卡渲染避坑指南:AMD+NVIDIA混合架构下的DLSS 5适配与性能调优实战
nvidia·amd·vulkan·ai渲染·dlss5·异构双卡·dx12
the3clipse13 天前
DLSS5 Swapper 获取及使用教程:5分钟一键开启游戏神经渲染
nvidia·神经渲染·dlss5·dlss5 swapper·游戏画质优化·reshade·renodx
本地化文档15 天前
cutile-rs-book-l10n
rust·gpu·nvidia·cuda·sphinx·crowdin
撞强16 天前
Unraid 7.3.2 下 NVIDIA 显卡风扇转速调整维护文档
nvidia·xorg·unraid·fan
张张123y16 天前
120B 模型单卡跑起来?拆解 Nemotron 3.5 的压缩三板斧与本地智能体部署
nvidia·模型量化·本地部署·ai agent·nemotron
丰色木夕19 天前
Ubuntu22.04下源码编译安装USD-Brep
c++·ubuntu·nvidia·usd-brep
wflynn1 个月前
GitHub 今日推荐|SCSKiller:游戏着色器预编译消除卡顿
开源·c#·github·nvidia·amd·directx12