度量CPU上下文切换开销的方法有很多。它似乎没有多少资源来测量GPU上下文切换开销。CPU上下文切换和GPU上下文切换是完全不同的。
GPU调度基于warp调度。为了计算GPU上下文切换的开销,我需要知道有上下文切换的warp和没有上下文切换的warp的时间,然后做减法得到开销。
我很困惑如何测量扭曲的时间与上下文切换?有人有什么要衡量的吗?
我不认为在GPU上谈论上下文切换的"开销"是有意义的。
在CPU上,上下文切换是在软件中完成的,由内核中的一个称为"调度器"的函数完成。调度程序是普通代码,是处理器必须运行的机器指令序列,运行调度程序的时间不是用于做"有用"工作的时间。
另一方面,GPU在硬件中进行上下文切换,没有调度器,并且它足够快,当一个任务遇到管道停滞时,可以引入另一个任务来利用管道阶段,否则将是空闲的。这被称为"延迟隐藏"——一个任务的延迟被其他任务的进度所隐藏。上下文切换实际上允许在给定的时间范围内完成更多有用的工作。
有关更多信息,请参阅我对SuperUser上一个相关问题的回答