测量GPU中上下文切换的开销

时间:2014-06-17 02:42:50

标签: cuda gpu overhead context-switch

有很多方法可以衡量CPU上下文切换开销。它似乎没有多少资源来衡量GPU上下文切换开销。 CPU上下文切换和GPU是完全不同的。

GPU调度基于warp调度。为了计算GPU上下文切换的开销,我需要知道在没有上下文切换的情况下使用上下文切换和warp的warp的时间,并进行减法以获得开销。

我对如何使用上下文切换来测量扭曲时间感到困惑?有没有人有一些想法来衡量?

1 个答案:

答案 0 :(得分:3)

我认为谈论"开销"真的很有意义。在GPU上进行上下文切换。

在CPU上,上下文切换是通过内核中名为" scheduler"的函数在软件中完成的。调度程序是普通代码,处理器必须运行的一系列机器指令,运行调度程序所花费的时间不用花时间去做有用的"工作

另一方面,GPU在没有调度程序的情况下在硬件中进行上下文切换,并且它足够快以至于当一个任务遇到管道停顿时,可以引入另一个任务来利用管道阶段否则会闲置。这被称为"延迟隐藏" - 其他任务的进度会隐藏一项任务的延迟。上下文切换实际上允许在给定的时间范围内完成更多有用的工作。

有关详细信息,请参阅this answer我在SuperUser上写了一个相关问题。