diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/analysis_webui.py b/projects/rocprofiler-compute/src/omniperf_analyze/analysis_webui.py index 6c4b74acd2..172c64937a 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/analysis_webui.py +++ b/projects/rocprofiler-compute/src/omniperf_analyze/analysis_webui.py @@ -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.") diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml index bf876803e2..fd80a20262 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml @@ -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) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_base.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_base.py index c5f9bcc754..0c100c2c8a 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_base.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_base.py @@ -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)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx906.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx906.py index a42a5b4ba2..ec218f3bd8 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx906.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx906.py @@ -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 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py index 4833cebf9f..93ece2de73 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py @@ -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 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx90a.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx90a.py index f1dd567189..7c0f5e1c2e 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx90a.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx90a.py @@ -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) + + + diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx940.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx940.py index 2640ede437..b8c8213d0b 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx940.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx940.py @@ -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 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx941.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx941.py index 094998183b..638bc2bedb 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx941.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx941.py @@ -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 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx942.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx942.py index 20ed5cdd9a..e7db703832 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx942.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx942.py @@ -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 diff --git a/projects/rocprofiler-compute/src/roofline.py b/projects/rocprofiler-compute/src/roofline.py index ae8bee4dcb..bd1f4e5690 100644 --- a/projects/rocprofiler-compute/src/roofline.py +++ b/projects/rocprofiler-compute/src/roofline.py @@ -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 diff --git a/projects/rocprofiler-compute/src/utils/specs.py b/projects/rocprofiler-compute/src/utils/specs.py index f5e0bccf6a..7ed15494e9 100644 --- a/projects/rocprofiler-compute/src/utils/specs.py +++ b/projects/rocprofiler-compute/src/utils/specs.py @@ -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()) diff --git a/projects/rocprofiler-compute/src/utils/utils.py b/projects/rocprofiler-compute/src/utils/utils.py index 06582d69d7..5c65a7ce21 100644 --- a/projects/rocprofiler-compute/src/utils/utils.py +++ b/projects/rocprofiler-compute/src/utils/utils.py @@ -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)