- cuda/
- 如何测量CUDA中的流式多处理器使用/空闲时间?
如何测量CUDA中的流式多处理器使用/空闲时间?
如何测量CUDA中的流式多处理器使用/空闲时间?,cuda,profiling,multiprocessor,Cuda,Profiling,Multiprocessor,一个简单的问题,真的:我有一个内核,每个流式多处理器(SM)可以运行最大数量的块,我想知道理论上我可以从中获得多大的性能。理想情况下,我想知道空闲的SM周期的百分比,即所有的扭曲在内存访问时被阻塞
我真的很想找到那个号码。我不想找的是
增加入住率的一般提示。我正在使用我能得到的所有占用率,即使我设法获得更多的性能,它也不会告诉我理论上还有多少可能
如何计算理论峰值GFlops。我的计算不是以FP为中心的,还有很多整数运算和逻辑
Nsight Visual Studio第2.1版和第2.2版“效
一个简单的问题,真的:我有一个内核,每个流式多处理器(SM)可以运行最大数量的块,我想知道理论上我可以从中获得多大的性能。理想情况下,我想知道空闲的SM周期的百分比,即所有的扭曲在内存访问时被阻塞
我真的很想找到那个号码。我不想找的是
- 增加入住率的一般提示。我正在使用我能得到的所有占用率,即使我设法获得更多的性能,它也不会告诉我理论上还有多少可能
- 如何计算理论峰值GFlops。我的计算不是以FP为中心的,还有很多整数运算和逻辑
Nsight Visual Studio第2.1版和第2.2版“效率实验”提供了您需要的信息。这些计数器/指标应在CUDA 5.0之后的版本中添加到Visual Profiler中
Nsight Visual Studio版
从
“问题效率”提供了有关设备执行以下操作的能力的信息:
发出内核的指令。报告的数据包括
执行依赖项、合格的扭曲和SM暂停原因
对于计算能力为2.x的设备,多处理器有两个扭曲
调度员。每个扭曲计划程序最多管理24个扭曲,总计
每个多处理器有48个扭曲。内核执行配置可能会发生变化
减少运行时限制。有关入住率的信息,请参阅
完成了占用实验。第一个调度程序负责
具有奇数ID的扭曲,第二个调度程序负责扭曲
身份证是均等的
开普勒更新:对于compute capability 3.x,一个多处理器有四个warp调度程序。每个warp scheduler最多管理16个扭曲,每个多处理器总共管理64个扭曲
在每次指令发出时,每个调度程序都将选择一个合格的
从活动扭曲列表中扭曲并发出指令。翘曲
如果已获取指令,则执行单元
说明中要求的信息可用,说明中没有
未满足的依赖项
调度程序报告中的扭曲的以下统计信息
多处理器:
活动扭曲–一个扭曲从计划在某个时间点开始处于活动状态
多处理器,直到完成最后一条指令。主动的
翘曲计数器每周期递增0-48。每小时的最大增量
周期由理论占用率定义
开普勒更新范围为每周期0-64
合格翘曲–如果活动翘曲能够发出下一条指令,则其合格。
不合格的翘曲将报告问题暂停原因。这
计数器将以每个周期0-1的增量递增
在费米上更新问题暂停原因计数器仅在warp scheduler没有合格的warp的周期上更新。在开普勒上,即使warp调度程序发出指令,问题暂停原因计数器也会在每个周期更新
零合格翘曲–如果出现以下情况,此计数器将每个周期递增1
两个计划程序都没有
可以发出的扭曲
一个符合条件的扭曲–此计数器递增
如果两个调度程序中只有一个具有可执行的扭曲,则每个周期将减少1
发布
开普勒更新:开普勒上的计数器是每个调度器的,因此一个合格的Warp意味着Warp调度器可以发出指令。在费米上,两个调度程序都有一个计数器,所以在费米上,您希望一个合格的扭曲计数器尽可能小
翘曲发行孔–此计数器将每个周期递增
不合格的活动扭曲数。这和
活动扭曲减去合格扭曲
长扭曲问题孔–此
按每个周期具有的活动扭曲的数量反向递增
无法发出超过32个时钟周期的指令
周期。长孔表示翘曲在长延迟时停止
障碍和内存操作等原因
问题暂停原因–
每个周期每个不合格翘曲将增加一个问题暂停
理由计数器。所有问题暂停原因计数器的总和相等
要扭曲问题孔。不合格的扭曲将增加指令获取
如果尚未执行下一条装配指令,则为暂停原因
抓到了执行相关性如果输入相关性为
还没有。这可以通过增加
独立指示数据请求如果请求
由于所需资源不可用,当前无法创建,
或被充分利用,或该类型的操作已经过多
杰出的。如果数据请求占整个系统的很大一部分
暂停原因,还应运行内存实验来确定
如果可以根据请求优化现有事务,或者如果需要
重新访问您的算法纹理如果纹理
子系统已充分利用,目前无法接受
进一步的行动同步如果发生翘曲,则停止原因
在一个同步线程()上被阻止。如果这个原因很大,内核
执行配置仅限于少量的块
考虑将内核网格划分为更多的线程块。
可视化分析器5.0
可视化探查器没有解决您的问题的计数器。在添加计数器之前,您可以使用以下计数器:
- sm_效率[_实例]
- ipc[_实例]
- 实现了无人居住
计算能力的目标和最大IPC为:
Compute Target Max
Capability IPC IPC
2.0 1.7 2.0
2.x 2.3 4.0
3.x 4.4 7.0
目标IPC用于ALU有限计算。内存绑定内核的目标IPC将更少。计算能力2