高级 API 性能:同步

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

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

推荐

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

不推荐

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

阅读原文

相关推荐
放羊郎3 天前
配置Nvidia JETSON AGX Xavier
nvidia·虚拟机·jetson·刷机·重装系统·xavier
free-xx9 天前
AGX Orin平台RTC驱动导致reboot系统卡住问题调试
nvidia·jetson·orin
AndrewHZ17 天前
【三维渲染技术讨论】Blender输出的三维文件里的透明贴图在Isaac Sim里会丢失, 是什么原因?
算法·3d·blender·nvidia·贴图·具身智能·isaac sim
荔枝吻20 天前
【沉浸式解决问题】NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。
nvidia·英伟达
算家计算21 天前
算力暴增!英伟达发布新一代机器人超级计算机,巨量算力驱动物理AI革命
人工智能·云计算·nvidia
可期不折腾22 天前
NVIDIA Nsight Systems性能分析工具
ubuntu·nvidia·nsight systems·性能分析工具
量子位1 个月前
黄仁勋子女成长路径曝光:一个学烘焙一个开酒吧,从基层做到英伟达高管
ai编程·nvidia
Ray Song1 个月前
CUDA杂记--nvcc使用介绍
nvidia·cuda·nvcc
吾鳴1 个月前
网信办约谈英伟达,H20芯片后门风波震动中国AI产业
人工智能·nvidia·芯片
mpr0xy2 个月前
编译支持cuda硬件加速的ffmpeg
ai·ffmpeg·nvidia·cuda