Change default rocprof to rocprofv3 (#748)
* Revert of https://github.com/ROCm/rocprofiler-compute/pull/738 * Change default rocprof backend interface to rocprofv3 * Add MI 350 support in documentation * Added known issue that MI 100 profiling will not work unless rocprofv1 is explicitly opted in * Remove MI 50 soc gfx python class since MI 50 is not supported
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
cdd41dee40
Коммит
d27ee69b52
@@ -66,6 +66,8 @@ Full documentation for ROCm Compute Profiler is available at [https://rocm.docs.
|
||||
|
||||
### Changed
|
||||
|
||||
* Change the default rocprof version to rocprofv3, this is used when environment variable "ROCPROF" is not set
|
||||
* Change the rocprof version for unit tests to rocprofv3 on all SoCs except MI100
|
||||
* Change normal_unit default to per_kernel
|
||||
* Change dependency from rocm-smi to amd-smi
|
||||
* Decrease profiling time by not collecting counters not used in post analysis
|
||||
@@ -83,6 +85,7 @@ Full documentation for ROCm Compute Profiler is available at [https://rocm.docs.
|
||||
|
||||
### Known issues
|
||||
|
||||
* Profiling on MI 100 will not work unless ROCPROF=rocprofv1 environment variable is explictly provided
|
||||
* GPU id filtering is not supported when using rocprof v3
|
||||
|
||||
* Analysis of previously collected workload data will not work due to sysinfo.csv schema change
|
||||
|
||||
@@ -23,6 +23,9 @@ GPU specifications.
|
||||
* - Platform
|
||||
- Status
|
||||
|
||||
* - AMD Instinct™ MI350
|
||||
- Supported ✅
|
||||
|
||||
* - AMD Instinct™ MI300
|
||||
- Supported ✅
|
||||
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
##############################################################################bl
|
||||
# MIT License
|
||||
#
|
||||
# Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All Rights Reserved.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
##############################################################################el
|
||||
|
||||
from rocprof_compute_soc.soc_base import OmniSoC_Base
|
||||
from utils.logger import console_error, demarcate
|
||||
from utils.mi_gpu_spec import mi_gpu_specs
|
||||
|
||||
|
||||
class gfx906_soc(OmniSoC_Base):
|
||||
def __init__(self, args, mspec):
|
||||
super().__init__(args, mspec)
|
||||
self.set_arch("gfx906")
|
||||
self.set_compatible_profilers(["rocprofv1"])
|
||||
# Per IP block max number of simultaneous counters. GFX IP Blocks
|
||||
self.set_perfmon_config({mi_gpu_specs.get_perfmon_config("gfx906")})
|
||||
|
||||
# Set arch specific specs
|
||||
self._mspec._l2_banks = 16
|
||||
self._mspec.lds_banks_per_cu = 32
|
||||
self._mspec.pipes_per_gpu = 4
|
||||
|
||||
# -----------------------
|
||||
# Required child methods
|
||||
# -----------------------
|
||||
@demarcate
|
||||
def profiling_setup(self):
|
||||
"""Perform any SoC-specific setup prior to profiling."""
|
||||
super().profiling_setup()
|
||||
if self.get_args().roof_only:
|
||||
console_error("%s does not support roofline analysis" % self.get_arch())
|
||||
# Perfmon filtering
|
||||
self.perfmon_filter(self.get_args().roof_only)
|
||||
|
||||
@demarcate
|
||||
def post_profiling(self):
|
||||
"""Perform any SoC-specific post profiling activities."""
|
||||
super().post_profiling()
|
||||
|
||||
@demarcate
|
||||
def analysis_setup(self):
|
||||
"""Perform any SoC-specific setup prior to analysis."""
|
||||
super().analysis_setup()
|
||||
@@ -35,7 +35,7 @@ class gfx908_soc(OmniSoC_Base):
|
||||
super().__init__(args, mspec)
|
||||
self.set_arch("gfx908")
|
||||
self.set_compatible_profilers(
|
||||
["rocprofv1", "rocprofv3", "rocprofiler-sdk"]
|
||||
["rocprofv1"]
|
||||
)
|
||||
# Per IP block max number of simultaneous counters. GFX IP Blocks
|
||||
self.set_perfmon_config(mi_gpu_specs.get_perfmon_config("gfx908"))
|
||||
|
||||
@@ -323,7 +323,7 @@ def detect_rocprof(args):
|
||||
# detect rocprof
|
||||
if not "ROCPROF" in os.environ.keys():
|
||||
# default rocprof
|
||||
rocprof_cmd = "rocprof"
|
||||
rocprof_cmd = "rocprofv3"
|
||||
else:
|
||||
rocprof_cmd = os.environ["ROCPROF"]
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user