在我的例子中,执行指令是什么意思?按照字面意思,就是执行了多少条指令
但是它与总使用时间(74.35ms,166170948cycle)有何关系?
平均数的含义是什么?每个调度程序执行的指令?
为什么“每个调度程序执行的指令”是“执行的指令”的 5 倍?
“执行的指令”是执行的物理 GPU 指令的启动网格中所有线程的计数。这些不是 CUDA 指令,甚至不是 PTX 指令,而是具体 GPU 的流式多处理器指令(例如 IADD.3;有关该特定 SASS 指令系列的讨论,请参阅这个问题)。计数还考虑条件执行,即如果 warp 具有 if 块的
then
分支,有 5 条指令要执行,但其中两个线程已经退出 - 对计数的贡献将为 (32-2)*5 = 150 条指令。
请注意,指令执行时间(通常)会有所不同:
因此,虽然执行的指令数量通常与执行时间或经过的时钟周期数正相关,但这种相关性非常复杂。
平均。每个调度程序执行的指令?
每个 NVIDIA GPU 核心(也称为“流式多处理器”)都有多个 warp 调度程序。在每个时钟周期中,调度程序可能会也可能不会找到合适的扭曲并调度它来执行指令。
因此,根据此统计数据,已执行指令的总数除以调度程序的数量,即除以(SM 数量)*(每个 SM 的调度程序数量)。