问题标签 [cuda-events]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cuda - 使用 cudaEventRecord() 记录多 GPU 程序的 CUDA 内核的运行时间
我有一个稀疏三角形求解器,可与 4 个 Tesla V100 GPU 配合使用。我完成了实施,所有事情在准确性方面都运行良好。但是,我使用 CPU 计时器来计算经过的时间。我知道 CPU 计时器不是计算经过时间的完美选择,因为我可以使用 CUDA 事件。
但问题是,我不知道如何为多 GPU 实现 CUDA 事件。正如我从 NVIDIA 教程中看到的,它们使用事件进行 GPU 间同步,即等待其他 GPU 完成依赖关系。无论如何,我将事件定义为;
我还可以通过迭代设置当前 GPU 来循环初始化这些事件。
我的内核执行就像;
我的问题是,我应该如何使用这些事件分别记录每个 GPU 的经过时间?
cuda - 重用 cudaEvent 序列化多个流
假设我有一个结构:
一个功能:
以及以下场景(狮子、女巫和衣柜也适合某个地方):
以上安全吗?即如果它本身不起作用,它stream2
仍然会等待完成它的“工作”吗?stream1
结果记录是否会cudaEvent
反映这一点,stream3
直到stream1
完成才开始?