Skip to content
Snippets Groups Projects
Commit 41f4c954 authored by Christoph Alt's avatar Christoph Alt
Browse files

removing the whitespace from gpu names

parent 38e34e7c
Branches
No related merge requests found
import numpy as np import numpy as np
import pandas as pd import pandas as pd
import re
from cbutil.ncu_keys import ( from cbutil.ncu_keys import (
memory_write_data_key, memory_write_data_key,
memory_read_data_key, memory_read_data_key,
...@@ -27,17 +28,17 @@ def get_unit(col): ...@@ -27,17 +28,17 @@ def get_unit(col):
def detect_prefix(unit): def detect_prefix(unit):
if unit[0] == 'G': if unit[0] == "G":
return 1e9 return 1e9
elif unit[0] == 'M': elif unit[0] == "M":
return 1e6 return 1e6
elif unit[0] == 'K': elif unit[0] == "K":
return 1e3 return 1e3
elif unit[0] == 'm': elif unit[0] == "m":
return 1e-3 return 1e-3
elif unit[0] == 'u': elif unit[0] == "u":
return 1e-6 return 1e-6
elif unit[0] == 'n': elif unit[0] == "n":
return 1e-9 return 1e-9
else: else:
return 1 return 1
...@@ -61,35 +62,57 @@ def normalize_and_add_prefix(value, prefix: str): ...@@ -61,35 +62,57 @@ def normalize_and_add_prefix(value, prefix: str):
def extract_raw_counter(df: pd.DataFrame): def extract_raw_counter(df: pd.DataFrame):
fields = pd.DataFrame() fields = pd.DataFrame()
tags = pd.DataFrame() tags = pd.DataFrame()
tags["Block Size"] = df["Block Size"] tags["Block Size"] = df["Block Size"]
tags["Grid Size"] = df["Grid Size"] tags["Grid Size"] = df["Grid Size"]
tags["GPU"] = df["device__attribute_display_name"] tags["GPU"] = df["device__attribute_display_name"].replace(" ", "")
fields[memory_write_data_key] = normalize_and_add_prefix(df["dram__bytes_write.sum"], 'G') fields[memory_write_data_key] = normalize_and_add_prefix(
fields[memory_read_data_key] = normalize_and_add_prefix(df["dram__bytes_read.sum"], 'G') df["dram__bytes_write.sum"], "G"
fields[memory_data_key] = fields[memory_write_data_key] + fields[memory_read_data_key] )
fields[memory_read_data_key] = normalize_and_add_prefix(
df["dram__bytes_read.sum"], "G"
)
fields[memory_data_key] = (
fields[memory_write_data_key] + fields[memory_read_data_key]
)
fields[memory_write_bandwidth_key] = normalize_and_add_prefix(df["dram__bytes_write.sum.per_second"], 'M') fields[memory_write_bandwidth_key] = normalize_and_add_prefix(
fields[memory_read_bandwidth_key] = normalize_and_add_prefix(df["dram__bytes_read.sum.per_second"], 'M') df["dram__bytes_write.sum.per_second"], "M"
fields[memory_bandwidth_key] = normalize_and_add_prefix(df["dram__bytes.sum.per_second"], 'M') )
fields[memory_read_bandwidth_key] = normalize_and_add_prefix(
df["dram__bytes_read.sum.per_second"], "M"
)
fields[memory_bandwidth_key] = normalize_and_add_prefix(
df["dram__bytes.sum.per_second"], "M"
)
fields[runtime_key] = get_normalized(df["gpu__time_duration.sum"]) fields[runtime_key] = get_normalized(df["gpu__time_duration.sum"])
fields[smsp_cycles_key] = get_normalized(df["smsp__cycles_elapsed.avg.per_second"]) fields[smsp_cycles_key] = get_normalized(
df["smsp__cycles_elapsed.avg.per_second"])
fields[smsp_cycles_total_key] = fields[smsp_cycles_key] * fields[runtime_key] fields[smsp_cycles_total_key] = fields[smsp_cycles_key] * fields[runtime_key]
fields[fp_inst_per_cycle_key] = ( fields[fp_inst_per_cycle_key] = (
2 * df["smsp__sass_thread_inst_executed_op_dfma_pred_on.sum.per_cycle_elapsed"] + 2 * df["smsp__sass_thread_inst_executed_op_dfma_pred_on.sum.per_cycle_elapsed"]
df["smsp__sass_thread_inst_executed_op_dadd_pred_on.sum.per_cycle_elapsed"] + + df["smsp__sass_thread_inst_executed_op_dadd_pred_on.sum.per_cycle_elapsed"]
df["smsp__sass_thread_inst_executed_op_dmul_pred_on.sum.per_cycle_elapsed"] + df["smsp__sass_thread_inst_executed_op_dmul_pred_on.sum.per_cycle_elapsed"]
)
fields[total_fp_inst_key] = (
fields[fp_inst_per_cycle_key] * fields[smsp_cycles_total_key]
) )
fields[total_fp_inst_key] = fields[fp_inst_per_cycle_key] * fields[smsp_cycles_total_key]
fields[operational_intensity_key] = fields[total_fp_inst_key] / (fields[memory_data_key] * 1e9) fields[operational_intensity_key] = fields[total_fp_inst_key] / (
fields[p_max_key] = add_unit_prefix(fields[operational_intensity_key] * fields[memory_bandwidth_key] * 1e6, 'M') fields[memory_data_key] * 1e9
fields[dp_key] = np.divide(np.asarray(fields[total_fp_inst_key]), fields[runtime_key]) / 1e6 )
fields[p_max_key] = add_unit_prefix(
fields[operational_intensity_key] *
fields[memory_bandwidth_key] * 1e6, "M"
)
fields[dp_key] = (
np.divide(np.asarray(fields[total_fp_inst_key]),
fields[runtime_key]) / 1e6
)
return fields, tags return fields, tags
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment