CUDA中的杂项和线程间通信指令

5

我一直在使用NVIDIA分析器(nvprof),但有两个指标我不太明白:

inst_inter_thread_communication
    Number of inter-thread communication instructions executed by non-predicated threads
inst_misc
    Number of miscellaneous instructions executed by non-predicated threads

我想知道哪些指令属于线程间通信指令,哪些属于其他杂项指令。

参考: http://docs.nvidia.com/cuda/profiler-users-guide/#metrics-reference


3
线程间通信可能包括洗牌函数(shuffle functions)、线程同步函数或内存屏障函数。Misc 涵盖其他未被记录的指令集,可能包括字符操作、比较操作、循环开销、特殊函数操作、设备函数开销、内核内存分配等内容。 - Christian Sarofeen
1个回答

6
以下是分为两类的SASS指令:
inst_inter_thread_communication
- SHFL - VOTE
inst_misc
- NOP - S2R,B2R,R2B,P2R - LEPC - CSET[P],PSET[P] - MOV - SEL - PRMT - 仅限Maxwell(BAR,DEPBAR) - 还有一些不常见的未记录指令属于此类别。
文档CUDA二进制工具的部分指令集参考中包含了SASS指令的简要说明。SASS和PTX之间几乎存在1:1的关系,因此您也可以查阅PTX ISA手册。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接