【问题标题】:Efficiency of CUDA program/deviceCUDA程序/设备的效率
【发布时间】:2019-06-01 21:26:58
【问题描述】:

我看到一些 CUDA 指标完全令人困惑。根据定义

sm_efficiency 一个多处理器上至少一个 warp 处于活动状态的时间百分比是 GPU 上所有多处理器的平均值

warp_execution_efficiency每个warp的平均活动线程与多处理器上支持的每个warp的最大线程数之比,以百分比表示

achieved_occupancy 每个活动周期的平均活动扭曲与多处理器支持的最大扭曲数之比

我想知道这些指标之间是否存在一般关系。例如,高占用率总是意味着高warp执行效率等等?否则,它们是正交的,这些是高 SM 效率和低占用率的情况。

第一个指标是关于时间,但其他指标是关于线程数和扭曲数。 有人可以澄清一下吗?

【问题讨论】:

    标签: cuda gpu


    【解决方案1】:

    第一个和第三个指标非常密切相关并且正相关。它们都是关于随着时间推移的扭曲,除了第一个指标将“> 0”运算符应用于扭曲的数量。除此之外,它们是相同的 - 但该运算符删除了经纱数量的“维度”,只为您提供 1/Time 指标而不是 Warps/Time 指标。

    至于第二个指标,这与经线中线程的发散有关。虽然它可能与第三个指标有些相关,但显然情况并非如此。经线中的线程之间发生的事情几乎与不同经线发生的事情正交。

    【讨论】:

    • 所以,如果我知道第一个指标很高,那么就不再需要知道第三个指标了。那正确吗?换句话说,谁更愿意被人知道?
    • @mahmood:我没这么说。如果每个 SM 上只有一个 warp 处于活动状态,那么您的内核可能很差,但您的第一个指标可能非常出色。
    猜你喜欢
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    相关资源
    最近更新 更多