Commit Graph

8920 Commits

Author SHA1 Message Date
Ammar ELWazir 4f40fb8a40 SWDEV-391589: Addressing changes requested by Omniperf:
Adding Versioning to rocprof main script
Adding Versioning to file plugins to support legacy v1 output and new v2 output
Fixing headers for v2 output

Change-Id: I352e8c8ed03871466269a792d1bfa572da58bd8a
2023-10-16 15:19:20 -04:00
gobhardw def7fa710a Solving timestamps and serialization merge
Change-Id: Icd14e49c06b19e4334adbdb98efed54af029b95b
2023-10-16 14:54:50 -04:00
Jonathan R. Madsen 6a61a83452 Bump version to 1.11.0 (#314)
Bump version to 1.11.0
2023-10-16 13:11:58 -05:00
Jonathan R. Madsen 2e581e2a10 Installers for ROCm 5.7, Python 3.12 + Remove DEB and RPM installers (#313)
* Dockerfile update

- Python 3.12 support

* Bump version to 1.10.4

* Update docker scripts

- Support Python 3.12
- Set RETRY to 1 if less than 1
- Support ROCm 5.7

* Update scripts/build-release.sh

- Default to python 3.6-3.12 (i.e. add Python 3.12)

* Update cpack workflow

- Packaging for ROCm 5.7
  - Ubuntu 20.04
  - Ubuntu 22.04
  - OpenSUSE 15.4
  - RHEL 8.7
  - RHEL 9.1
- Packaging for older ROCms (by request)
  - RHEL 8.7 + ROCm 5.3
  - OpenSUSE 15.3 + ROCm 5.2
  - OpenSUSE 15.4 + ROCm 5.2
  - OpenSUSE 15.4 + ROCm 5.3
- Remove DEB and RPM installers
  - Only generate STGZ installers

* Update cpack workflow

- disable uploading DEB and RPM artifacts
2023-10-16 10:39:18 -05:00
Ammar ELWazir d816f133d1 SWDEV-302415: Fixing Kernel Dispatchs with trace-start off option
Change-Id: I225b88cb769d994f1007e7bc66f176e7fa40db05
2023-10-16 09:39:42 -04:00
Charis Poag 6f1afd2678 bdfid fix for partition & xgmi nodes
* Updates:
    - [API] After discovering all amd gpus, we now properly
      map correct bdf (xgmi nodes). Especially important for
      partition changes - aka secondary nodes.
    - [API] While adding new secondary nodes we now have
      better grouping -> due to resorting based on
      kfd properties list & matching to primary uniqueid
    - [API] All secondary nodes are now AddToDeviceList
      with correct bdf (location id), provided by kfd
    - [API] Modified AddToDeviceList(..., uint64_t bdfid):
      providing an optional field - bdfid. This allows working
      around primary pcie cards with xgmi nodes
    - [API] Utils - cpplint minor fixes
    - [Example] Removed all endl references w/ newline, fixed
      spacing, and some incorrect values displaying as hex
      (needed dec representation)
    - [API] kfd node functions - now print full path of file
      for trace logs
    - [Tests] power_read.cc: Added in generic power test to
      confirm guaranteeing specific return values

Change-Id: I143474e8d64c4915a966e789be6bcea4fa7f4472
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
2023-10-13 20:14:39 -05:00
Giovanni LB 60197d0f20 SWDEV-427013: Fixing ATT parser for tensile kernels and network mode
Change-Id: I07cd34f5606c0aaf718d9e3ffabd5a407523a943
2023-10-13 20:41:46 -04:00
Sriraksha Nagaraj a76341e30c Enabling -m and --basenames option
Change-Id: Ic19ac28ab6ec842daf2a93a311ed7690b61b1e2a
2023-10-13 14:44:20 -04:00
David Yat Sin 22be526230 Fix escape-to-IB packet definition
The Vendor specific header is only 8-bits and this would break the
behavior on big-endian machines. Renaming field to amd_format to match
name in spec sheets.

Change-Id: I65559757657565d3d3ff489d2663a0be42cf8ba5
2023-10-13 13:37:49 +00:00
Galantsev, Dmitrii 2a7589a065 TESTS - Skip XGMI test
Change-Id: Idd9f505f36fac4a670e5129f835aa051b5c4c9fa
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-10-12 21:27:55 -05:00
Rajneesh Bhardwaj 5047eb161f libhsakmt: Use MADV_HUGEPAGE for large allocations
For large memory allocations (>2MB) the thunk should use the
MADV_HUGEPAGE flag for madvise call to optimize allocation performance
on certain operating systems that rely on madvise hint when Traspatent
Huge Pages is not set to always.

Suggested-by: Joseph Greathouse <joseph.greathouse@amd.com>
Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Change-Id: Ic0c753f89a177b0f715942d6e2a7108b08a85f20
2023-10-12 17:01:34 -04:00
Ranjith Ramakrishnan a12d47fdb1 Missing library softlink added to ASAN package
The softlinks librocprofiler64.so and librocprofiler64v2.so was missing in ASAN package
Added the same

Change-Id: I8775b811f08377845dcce6bca88818c1741f3462
2023-10-12 12:33:05 -04:00
Giovanni LB e0962d9d63 SWDEV-423947: Added ATT header option
Change-Id: I6e9ad213b578d752c865c9f9af4ee0b79d447e1b
2023-10-12 10:02:30 -04:00
guanyu12 2cedb90290 Merge amd-staging into amd-master 20231012
Signed-off-by: guanyu12 <guanyu12@amd.com>
Change-Id: I02018dfe5cd2aafe3fb754111242a168fe1b9a60
2023-10-12 15:57:48 +08:00
Tomasz Kłoczko a226542fc3 install .pc files in libdir
Provided pkgconfig file contains interface description which is arch
dependent. In such cases .pc files should be installed in libdir.

Signed-off-by: Tomasz Kłoczko <kloczek@github.com>
Change-Id: Ibbc85ad4aee1ef014c409dfa63313873b590464b
2023-10-11 15:50:38 -04:00
Torsten Keßler b44cca813d Mark new symbols in ROCm 5.7.0 as global
Change-Id: Ia0391cac7f432f019dea94f98a145dbf8120817d
2023-10-11 15:50:27 -04:00
Giovanni LB fdd4af4023 SWDEV-421283: ATT readme updates
Change-Id: I282a53ba6a6349b10c5976ab4232f451f51d82f6
2023-10-11 14:22:53 -04:00
Giovanni LB 865d2782e8 SWDEV-416889: Changing rocminfo location from ROCM_PATH to CPACK_INSTALL_PATH
Change-Id: I7a488a05fc3903fcfcbeac6a76fe2d31f3a23bad
2023-10-11 14:18:31 -04:00
Galantsev, Dmitrii 3f0071599d Fix rocm_smi.cc
Change-Id: Ib074dd542d8d37a6a618e10bd3bd389ad0cef108
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-10-11 11:46:49 -05:00
Giovanni LB 11a15ef9b0 SWDEV-423947: Moving to new aqllib
Change-Id: I2f99d88f9bda752fa0533f9c4416c805b68724d7
2023-10-11 10:59:30 -04:00
guanyu12 7b6012939e Merge amd-staging into amd-master 20231011
Signed-off-by: guanyu12 <guanyu12@amd.com>
Change-Id: I5bba3ad4723cdaf9dc3fff1e80fc106ca2a59e22
2023-10-11 17:24:11 +08:00
Jonathan R. Madsen a798a26227 Agent information w/o using hsa-runtime (#100)
* Agent information w/o using hsa-runtime

- remove lib/rocprofiler/hsa/agent.{hpp,cpp}
- update include/rocprofiler/agent.h
  - basically all possible info from /sys/class/kfd/kfd/topology/nodes/*

* Print topology in rocprofiler_lib.agent test

- hack to help diagnose errors

* Update lib/rocprofiler/tests/details/agent.cpp

- use LOG_IF(WARNING, ...) instead of LOG_IF(FATAL, ...)

* Update lib/rocprofiler/tests/agent.cpp

- print rocminfo at beginning of test
- fix comparison of agent handle
- misc other checks

* Updte lib/rocprofiler/agent.cpp

- handle unreadable /sys/class/kfd/kfd/topology/nodes/<N>/properties file

* Update lib/tests/buffering/CMakeLists.txt

- increase timeout to 120
  - buffering.parallel will timeout when thread sanitizing is enabled

* Update cmake: rocprofiler-drm

- find drm headers and libraries

* Update include/rocprofiler/agent.h

- add family_id field

* Update lib/rocprofiler/agent.cpp

- parse /proc/cpuinfo for name, family, apicid, etc.
- read_topology uses unique pointers to cleanup memory allocations
- implement name and gfxip

* Update lib/rocprofiler/tests/agent.cpp

- improved failure message
- check name/gfxip
- remove check against hsa_agent_t.handle
  - this value is dependent on the address of C++ class

* Update lib/rocprofiler/tests/details/agent.cpp

- tweak gfxip_ variable which is broken for CPU

* Update lib/rocprofiler/agent.cpp

- update string handling for name and gfxip

* Update lib/rocprofiler/tests/agent.cpp

- minor output tweak

* Update lib/rocprofiler/registration.{hpp,cpp}

- registration::init_logging() function

* Update lib/rocprofiler/agent.cpp

- fix hex handling of GFX step version

* Update lib/rocprofiler/tests/details/agent.cpp

- fix format string when nearest CPUs not found

* Update lib/rocprofiler/tests/CMakeLists.txt

- exclude details/agent.cpp from being parsed for gtest tests

* Update include/rocprofiler/fwd.h

- add ROCPROFILER_STATUS_ERROR_INCOMPATIBLE_ABI status

* Update lib/rocprofiler/tests/details/agent.{hpp,cpp}

- replace with slightly modified implementation of rocminfo
  - primary change was not printing

* Update lib/rocprofiler/tests/agent.cpp

- update test to use rocminfo data

* Update lib/rocprofiler/agent.cpp

- add pc_sampling_configs
- return error on incompatible ABI

* Update counters and counters tests

- rename test names for consistency
- fixed incorrect spelling of derived

* Add lib/rocprofiler/tests/{timestamp,version}.cpp

- add timestamp and version tests for rocprofiler_get_timestamp and rocprofiler_get_version, respectively

* Update lib/rocprofiler/tests/agent

- fix double free of name_str from isa_info_t

* Update include/rocprofiler/agent.h

- comments for rocprofiler_agent_mem_bank_t
- add rocprofiler_dim3_t
- comments for rocprofiler_agent_t
- add new fields to rocprofiler_agent_t
    - cu_count
    - workgroup_max_size
    - workgroup_max_dim
    - grid_max_size
    - grid_max_dim
    - vendor_name
    - product_name
- change prototype of rocprofiler_available_agents_cb_t to be const agent**

* Update lib/rocprofiler/agent.cpp

- set size field
- implement:
  - product_name
  - vendor_name
  - workgroup_max_size
  - workgroup_max_dim
  - grid_max_size
  - grid_max_dim
  - cu_count

* Update lib/rocprofiler/tests/agent.cpp

- changes for const agent*

* Update samples/pc_sampling

- updates for const agent*

* Update lib/rocprofiler/agent.cpp

- fix ABI compatibility check
  - return incompatible if tool agent is larger than our agent

* Update include/rocprofiler/agent.h

- doxygen comments
- make size field of rocprofiler_agent_t uint64_t for consistency
- add gpu_id via /sys/class/kfd/kfd/.../<idx>/gpu_id
- add model_name via /sys/class/kfd/kfd/.../<idx>/name

* Update lib/rocprofiler/agent.cpp

- add read_file function (vector of strings)
- support enum in read_property
- assign model_name and gpu_id fields
- remove unique_id

* Update lib/rocprofiler/tests/details/agent.*

- support family id, ucode_version, sdma_ucode_version

* Update lib/rocprofiler/tests/agent.cpp

- Add rocprofiler_lib.agent_abi test
- Verify family_id, ucode_version, sdma_ucode_version
2023-10-10 18:10:23 -05:00
colramos-amd ef2e460952 Fixed baseline compare pct change issue occuring with small values
Signed-off-by: colramos-amd <colramos@amd.com>
2023-10-10 14:01:50 -05:00
Nirmal Unnikrishnan 478270cb11 SWDEV-310152 : Adding script to convert RUNPATH to RPATH in libs/bins
Change-Id: Ic6c49544cb7450384592b4f5609fb394f1f12f02
2023-10-10 13:30:09 -05:00
Giovanni LB 9efd1865c0 Fixing GL2C counter instances
Change-Id: I37edbdaebe349149e369b21a9e48c302e170941e
2023-10-10 12:09:49 -04:00
Giovanni LB c22c7d64cc SWDEV-414768: Fixing multiqueue perfetto
Change-Id: Ie60cdc6bffe8e6748d443482a0dc3816d96b6604
2023-10-10 11:55:42 -04:00
Charis Poag 31a1fcce7d Add rsmi_dev_power_get
* Updates:
  - [API] Added rsmi_dev_power_get(uint32_t dv_ind,
                                   uint64_t *power,
                                   RSMI_POWER_TYPE
                                   *type)
          provides generic get to average or
          current power & provides backwards
          compatibility
  - Added a utility function to get MonitorTypes
    (monitor_type_string(type)) &
    RSMI_POWER_TYPE (power_type_string(type))
    strings
  - [Tests] Added rsmi_dev_power_get tests and
    provided better verification of return values for
    all power APIs
  - [Tests] Updated power outputs to show correct
    units
  - [example] Now uses avg, current, and generic
    power functions with type output response

Change-Id: I5ca06ca37fd5f61e100f2835b664d6cdd1ca42e6
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
2023-10-10 00:34:19 -05:00
guanyu12 5fddc58624 Merge amd-staging into amd-master 20231010
Signed-off-by: guanyu12 <guanyu12@amd.com>
Change-Id: Id320e9e80c796a4edb155cdc002de1efdb6b2c3a
2023-10-10 10:48:42 +08:00
Oliveira, Daniel 4e4ebde640 rocm_smi_lib: Fix Modernize and refactor gpu_metrics
Adds support for 'gpu_metrics_v1_4' and new counters

Code changes related to the following:
  * rsmi gpu_metrics APIs
  * rsmi gpu_metrics Logs
  * The new gpu_metrics are now part of the Device

Build changes related to the following: None

Change-Id: Ie748e977cd0a01c6a2fb82260014c0699605dbb3
Signed-off-by: Oliveira, Daniel <daniel.oliveira@amd.com>
2023-10-09 21:43:22 -05:00
Charis Poag b251bb0c9f Rename NPS -> memory partition + compute partition node fix
* Updates:
        - rocm_smi_lib + CLI:
          Rename all "NPS mode" -> "memory partition"
          related files/functions/API/CLI to align with correct
          technical naming
        - rocm_smi_main: fixed identifying primary card's unique id
          utilize rsmi_dev_unique_id_get to map which
          KFD nodes belong to it
        - rsmi_dev_*_partition*: now have better logging output
        - compute partition tests:
          Added 20 sec delay for workaround until GPU
          busy is confirmed as the issue
        - CPPLint fixes/formatting
        - [Example] Moved all endl to "\n" for efficiency
        - [Example] Added Edge & Junction temperature examples
        - [Example] Added rsmi_minmax_bandwidth_get() example - WIP

Change-Id: Ida6db6fda7e0ac9d696a34cb15b4746e69d58d51
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
2023-10-06 11:51:09 -04:00
Philip Yang 85a47fa66b libhsakmt: Set CWSR range granularity
Set CWSR svm range granularity to 0xff, then KFD will migrate the entire
CWSR range from VRAM back to system memory when recovering the CPU page
fault if rocgdb access CWSR area, this avoid the partial CWSR range
migration and stall CWSR GPU mapping issue.

This is a temporary workaround, it should be reverted once the KFD is
fixed.

Change-Id: I80a7248244574edba25b13858b7ebcf1c77b8930
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
2023-10-06 10:46:40 -04:00
Galantsev, Dmitrii 2831a5addc Merge amd-staging into amd-master 20231005
Change-Id: Ie217f139f63aa10ec5e9ce48797b7cb94864736d
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-10-05 16:22:45 -05:00
Galantsev, Dmitrii 8244a677db Update package version
Change-Id: Ie094f75d028a09f862729094815f8a2b6ea8ad78
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-10-05 12:49:11 -05:00
Sriraksha Nagaraj 04cec04c48 SWDEV-421208:Fixing the CMakelists for core unit test
Change-Id: I0949443e4204a69bb070532e4254d9baecd24dc3
2023-10-05 12:33:30 -04:00
gobhardw 417ceaa47f Fixing missing limts header that causes build failure
Change-Id: I3d1ea3b6701a57a16af8742de446ce4bfea6ded6
2023-10-05 10:58:10 -04:00
gobhardw b682ad8804 SWDEV-423972 fix kernel trace new line
Change-Id: I7932124cfd2ef519cad9bfde1c7d5f8ea35aace0
2023-10-05 05:41:22 -04:00
Galantsev, Dmitrii e962d3b281 TESTS - Don't fail on TestFrequenciesRead
- Return from freq_output function early if clock is unsupported
- Right-align frequencies

Change-Id: I799c9351dac8a5be161bc9243cd3816539728357
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-10-04 18:24:56 -05:00
colramos-amd 48857c8f0c Add support for result comparison in analyze mode
Signed-off-by: colramos-amd <colramos@amd.com>
2023-10-04 16:15:48 -05:00
Giovanni LB d8951e2018 SWDEV-423366: Added workaround for comgr file offset. Fixed legacy mode for ATT.
Change-Id: Ib566f3573829b59ae6bd70a5479b9d7fb7fdc6ee
2023-10-04 13:55:15 -04:00
Ammar ELWazir f36568b35c SWDEV-421715: Fix for librocprofiler64.so Name link
Change-Id: I9c47570e58c764fb861c1b2ea139b14830e818c4
2023-10-04 13:47:57 -04:00
David Yat Sin 73efd3a14e libhsakmt: Fix incorrect flags for ext coherence
Change-Id: I89c838b9fbdb85589691f29806ae15884b25592f
2023-10-04 15:00:58 +00:00
colramos-amd 331cc6b79a Merge branch '2.x' of github.com:AMDResearch/temp into 2.x 2023-10-04 09:53:20 -05:00
Karl W. Schulz c55508dfe6 Addition of new files to demonstrate top-level data structure refactoring for
2.x version.  Introduces an Omniperf class as the primary structure to organize
work elements and allows for a simple main() which is highlighted in a
omniperf2 example. Demonstrates desired logger functionality including a custom
trace loglevel that can be used to provide more verbosity beyond the debug
level. Also introduces three abstract base classes to organize flexibility for
alternative implementations of key elements within omniperf:

  * underlying profiler tool (e.g. rocprof, rocscope, etc)
  * supported GPU architectures (SoC)
  * analysis environments (e.g. CLI, web-based, etc)

Stub examples for child classes relevant to currently supported options within
omniperf are included in separate files.

Signed-off-by: Karl W. Schulz <karl.schulz@amd.com>
2023-10-04 09:52:50 -05:00
colramos-amd 95f886ef5a Consistent useage of -p/--path option in profile mode
Signed-off-by: colramos-amd <colramos@amd.com>
2023-10-04 09:50:30 -05:00
David Yat Sin d021055ada rocrtst:Add tag for extended-scope fine grain
Change-Id: I2a64cf3fb476271b0a5d025fb6989feb40d676bb
2023-10-03 15:36:20 -04:00
Gregory Rodgers b249107c6a Print amdgpu version
Change-Id: Ibab6e51489d436b66c3bac4bbd0f52a400ad6b0b
2023-10-03 18:48:47 +00:00
David Yat Sin 96b3c4a0aa Allow CPU cache info to be empty
Some new CPUs have different cache reporting structure causing thunk to
leave the cache information empty. Allow the cache information for CPU
agents to be empty as they are not used by language-runtimes

Change-Id: Ic5e880171ab20aa114b4b62bdb4479eb54066f7b
2023-10-03 13:44:10 +00:00
Galantsev, Dmitrii d862bee754 Add --version to CLI
Change-Id: Id2a8f10f544ed04e874db773820534eddd73f55d
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-10-02 17:57:02 -05:00
Bill(Shuzhou) Liu d665157cd1 rocm-smi shows wrong fwinfo
Add new fw block into the rocm-smi tool.

Change-Id: Id5c7ccc2fc491f7e5d0390aeb4c6f81fd12fa644
2023-10-02 16:28:31 -04:00
James Zhu 693e686c4d kfdtest: remove IOMMUv2 performance monitor support
IOMMUv2 is removed from AMDGPU/KFD.

Change-Id: Ia00f9aa879a5f32a42bec914936d105d6845bc60
Signed-off-by: James Zhu <James.Zhu@amd.com>
2023-09-30 09:16:49 -04:00