2
0

Hide L2Banks in sysinfo and update roofline module

Signed-off-by: colramos-amd <colramos@amd.com>


[ROCm/rocprofiler-compute commit: a70dc4999d]
Este cometimento está contido em:
colramos-amd
2024-02-26 13:30:01 -06:00
cometido por Cole Ramos
ascendente 28202ab4de
cometimento c27927e4ad
12 ficheiros modificados com 18 adições e 15 eliminações
@@ -284,7 +284,7 @@ class webui_analysis(OmniAnalyze_Base):
# create the loaded kernel stats
parser.load_kernel_top(self._runs[self.dest_dir], self.dest_dir)
# set architecture
self.arch = self._runs[self.dest_dir].sys_info.iloc[0]['GPU']
self.arch = self._runs[self.dest_dir].sys_info.iloc[0]['gpu_arch']
else:
error("Multiple runs not yet supported in GUI. Retry without --gui flag.")
@@ -195,7 +195,7 @@ Panel Config:
peak: $hbm_bw
pop: ((100 * (AVG((128 * TCC_BUBBLE_sum +
64 * (TCC_EA0_RDREQ_sum - TCC_BUBBLE_sum - TCC_EA0_RDREQ_32B_sum) +
32 * TCC_EA0_RDREQ_32B_sum) / (End_Timestamp - Start_Timestamp)))) / $hbmBW)
32 * TCC_EA0_RDREQ_32B_sum) / (End_Timestamp - Start_Timestamp)))) / $hbm_bw)
tips:
L2-Fabric Write BW:
value: AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum)
+2 -2
Ver ficheiro
@@ -164,9 +164,9 @@ class OmniSoC_Base():
self._mspec.gpu_model = list(SUPPORTED_ARCHS[self._mspec.gpu_arch].keys())[0].upper()
if self._mspec.gpu_model == "MI300":
self._mspec.gpu_model = list(SUPPORTED_ARCHS[self._mspec.gpu_arch].values())[0][0]
if (self._mspec.gpu_arch == "gfx942") and ("MI300A" in self._mspec._rocminfo):
if (self._mspec.gpu_arch == "gfx942") and ("MI300A" in '\n'.join(self._mspec._rocminfo)):
self._mspec.gpu_model = "MI300A_A1"
if (self._mspec.gpu_arch == "gfx942") and ("MI300A" not in self._mspec._rocminfo):
if (self._mspec.gpu_arch == "gfx942") and ("MI300A" not in '\n'.join(self._mspec._rocminfo)):
self._mspec.gpu_model = "MI300X_A1"
self._mspec.num_xcd = str(total_xcds(self._mspec.gpu_model, self._mspec.compute_partition))
+1 -1
Ver ficheiro
@@ -51,7 +51,7 @@ class gfx906_soc (OmniSoC_Base):
)
# Set arch specific specs
self._mspec.L2Banks = 16
self._mspec._l2_banks = 16
self._mspec.lds_banks_per_cu = 32
self._mspec.pipes_per_gpu = 4
+1 -1
Ver ficheiro
@@ -51,7 +51,7 @@ class gfx908_soc (OmniSoC_Base):
)
# Set arch specific specs
self._mspec.L2Banks = 32
self._mspec._l2_banks = 32
self._mspec.lds_banks_per_cu = 32
self._mspec.pipes_per_gpu = 4
# --showmclkrange is broken in Mi100, hardcode freq
+5 -2
Ver ficheiro
@@ -57,7 +57,7 @@ class gfx90a_soc (OmniSoC_Base):
self.roofline_obj = Roofline(args, self._mspec)
# Set arch specific specs
self._mspec.L2Banks = 32
self._mspec._l2_banks = 32
self._mspec.lds_banks_per_cu = 32
self._mspec.pipes_per_gpu = 4
@@ -91,4 +91,7 @@ class gfx90a_soc (OmniSoC_Base):
super().analysis_setup()
# configure roofline for analysis
if roofline_parameters:
self.roofline_obj = Roofline(self.get_args(), roofline_parameters)
self.roofline_obj = Roofline(self.get_args(), self._mspec, roofline_parameters)
+1 -1
Ver ficheiro
@@ -62,7 +62,7 @@ class gfx940_soc (OmniSoC_Base):
self.roofline_obj = Roofline(args, self._mspec)
# Set arch specific specs
self._mspec.L2Banks = 16
self._mspec._l2_banks = 16
self._mspec.lds_banks_per_cu = 32
self._mspec.pipes_per_gpu = 4
+1 -1
Ver ficheiro
@@ -62,7 +62,7 @@ class gfx941_soc (OmniSoC_Base):
self.roofline_obj = Roofline(args, self._mspec)
# Set arch specific specs
self._mspec.L2Banks = 16
self._mspec._l2_banks = 16
self._mspec.lds_banks_per_cu = 32
self._mspec.pipes_per_gpu = 4
+1 -1
Ver ficheiro
@@ -62,7 +62,7 @@ class gfx942_soc (OmniSoC_Base):
self.roofline_obj = Roofline(args, self._mspec)
# Set arch specific specs
self._mspec.L2Banks = 16
self._mspec._l2_banks = 16
self._mspec.lds_banks_per_cu = 32
self._mspec.pipes_per_gpu = 4
+1 -1
Ver ficheiro
@@ -53,7 +53,7 @@ class Roofline:
self.__ceiling_data = None
self.__figure = go.Figure()
# Set roofline run parameters from args
if hasattr(self.__args, 'path'):
if hasattr(self.__args, 'path') and not run_parameters:
self.__run_parameters['workload_dir'] = self.__args.path
if hasattr(self.__args, 'roof_only') and self.__args.roof_only == True:
self.__run_parameters['is_standalone'] = True
+2 -2
Ver ficheiro
@@ -126,7 +126,7 @@ class MachineSpecs:
self.cur_mclk: str = None
self.max_waves_per_cu: str = None
self.gpu_model: str = None
self.L2Banks: str = None #NB: This only used in flatten_tcc_info_across_hbm_stacks()
self._l2_banks: str = None #NB: This only used in flatten_tcc_info_across_hbm_stacks()
self.lds_banks_per_cu: str = None
self.sqc_per_gpu: str = None
self.pipes_per_gpu: str = None
@@ -143,7 +143,7 @@ class MachineSpecs:
soc_obj = soc_class(args, self)
# Update arch specific specs
self.total_l2_chan: str = total_l2_banks(
self.gpu_model, int(self.L2Banks), self.memory_partition
self.gpu_model, int(self._l2_banks), self.memory_partition
)
self.hbm_bw: str = str(int(self.max_mclk) / 1000 * 32 * self.get_hbm_channels())
+1 -1
Ver ficheiro
@@ -234,7 +234,7 @@ def run_prof(fname, profiler_options, workload_dir, mspec):
f = path(workload_dir + "/out/pmc_1/results_" + fbase + ".csv")
hbm_stack_num = get_hbm_stack_num(mspec.gpu_model, mspec.memory_partition)
df = flatten_tcc_info_across_hbm_stacks(
f, hbm_stack_num, int(mspec.L2Banks)
f, hbm_stack_num, int(mspec._ls_banks)
)
df.to_csv(f, index=False)