Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
UINT64,
"Average number of replays due to shared memory conflicts for each "
"instruction executed"),
UINT64,
"Average number of replays due to shared memory conflicts for each "
"instruction executed"),
+
+ _Q(WARP_EXECUTION_EFFICIENCY,
+ "metric-warp_execution_efficiency",
+ PERCENTAGE,
+ "Ratio of the average active threads per warp to the maximum number of "
+ "threads per warp supported on a multiprocessor"),
+static const struct nvc0_hw_metric_query_cfg
+sm30_warp_execution_efficiency =
+{
+ .type = NVC0_HW_METRIC_QUERY_WARP_EXECUTION_EFFICIENCY,
+ .queries[0] = _SM(INST_EXECUTED),
+ .queries[1] = _SM(TH_INST_EXECUTED),
+ .num_queries = 2,
+};
+
static const struct nvc0_hw_metric_query_cfg *sm30_hw_metric_queries[] =
{
&sm20_achieved_occupancy,
static const struct nvc0_hw_metric_query_cfg *sm30_hw_metric_queries[] =
{
&sm20_achieved_occupancy,
&sm30_issue_slots,
&sm30_issue_slot_utilization,
&sm30_shared_replay_overhead,
&sm30_issue_slots,
&sm30_issue_slot_utilization,
&sm30_shared_replay_overhead,
+ &sm30_warp_execution_efficiency,
};
/* ==== Compute capability 3.5 (GK110) ==== */
};
/* ==== Compute capability 3.5 (GK110) ==== */
&sm30_inst_issued,
&sm30_issue_slot_utilization,
&sm30_shared_replay_overhead,
&sm30_inst_issued,
&sm30_issue_slot_utilization,
&sm30_shared_replay_overhead,
+ &sm30_warp_execution_efficiency,
if (res64[2])
return (res64[0] + res64[1]) / (double)res64[2];
break;
if (res64[2])
return (res64[0] + res64[1]) / (double)res64[2];
break;
+ case NVC0_HW_METRIC_QUERY_WARP_EXECUTION_EFFICIENCY:
+ /* thread_inst_executed / (inst_executed * max. number of threads per
+ * wrap) * 100 */
+ if (res64[0])
+ return (res64[1] / ((double)res64[0] * 32)) * 100;
+ break;
default:
debug_printf("invalid metric type: %d\n",
hq->base.type - NVC0_HW_METRIC_QUERY(0));
default:
debug_printf("invalid metric type: %d\n",
hq->base.type - NVC0_HW_METRIC_QUERY(0));
NVC0_HW_METRIC_QUERY_ISSUE_SLOT_UTILIZATION,
NVC0_HW_METRIC_QUERY_IPC,
NVC0_HW_METRIC_QUERY_SHARED_REPLAY_OVERHEAD,
NVC0_HW_METRIC_QUERY_ISSUE_SLOT_UTILIZATION,
NVC0_HW_METRIC_QUERY_IPC,
NVC0_HW_METRIC_QUERY_SHARED_REPLAY_OVERHEAD,
+ NVC0_HW_METRIC_QUERY_WARP_EXECUTION_EFFICIENCY,
NVC0_HW_METRIC_QUERY_COUNT
};
NVC0_HW_METRIC_QUERY_COUNT
};