in tb_plugin/torch_tb_profiler/run.py [0:0]
def get_gpu_metrics_data_tooltip(self):
def get_gpu_metrics_data(profile):
gpu_metrics_data = []
has_sm_efficiency = False
has_occupancy = False
has_tc = False
is_first = True
gpu_info_columns = ["Name", "Memory", "Compute Capability"]
for gpu_id in profile.gpu_ids:
if not is_first:
# Append separator line for beautiful to see.
gpu_metrics_data.append({"title": "<hr/>",
"value": ""})
gpu_metrics_data.append({"title": "GPU {}:".format(gpu_id),
"value": ""})
gpu_info = profile.gpu_infos.get(gpu_id, None)
if gpu_info is not None:
for key in gpu_info_columns:
if key in gpu_info:
gpu_metrics_data.append({"title": key,
"value": gpu_info[key]})
gpu_metrics_data.append({"title": "GPU Utilization",
"value": "{} %".format(
round(profile.gpu_utilization[gpu_id] * 100, 2))})
if profile.sm_efficiency[gpu_id] is not None:
gpu_metrics_data.append({"title": "Est. SM Efficiency",
"value": "{} %".format(
round(profile.sm_efficiency[gpu_id] * 100, 2))})
has_sm_efficiency = True
if profile.occupancy[gpu_id] is not None:
gpu_metrics_data.append({"title": "Est. Achieved Occupancy",
"value": "{} %".format(round(profile.occupancy[gpu_id], 2))})
has_occupancy = True
if profile.tc_ratio[gpu_id] is not None:
gpu_metrics_data.append({"title": "Kernel Time using Tensor Cores",
"value": "{} %".format(round(profile.tc_ratio[gpu_id] * 100, 2))})
has_tc = True
is_first = False
return gpu_metrics_data, has_occupancy, has_sm_efficiency, has_tc
def get_gpu_metrics_tooltip(has_sm_efficiency, has_occupancy, has_tc):
tooltip_summary = "The GPU usage metrics:\n"
tooltip = "{}\n{}".format(tooltip_summary, consts.TOOLTIP_GPU_UTIL)
if has_sm_efficiency:
tooltip += "\n" + consts.TOOLTIP_SM_EFFICIENCY
if has_occupancy:
tooltip += "\n" + consts.TOOLTIP_OCCUPANCY_COMMON + consts.TOOLTIP_OCCUPANCY_OVERVIEW
if has_tc:
tooltip += "\n" + consts.TOOLTIP_TENSOR_CORES
return tooltip
data, has_occupancy, has_sm_efficiency, has_tc = get_gpu_metrics_data(self)
tooltip = get_gpu_metrics_tooltip(has_occupancy, has_sm_efficiency, has_tc)
return data, tooltip