Gráfico de commits
64512 Commits
Autor SHA1 Mensaje Fecha
Ranjith Ramakrishnan e9ebd8b072 SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: I44adb1a4b9bba0bd89edb75be715504ede2e3d08


[ROCm/clr commit: 810c4ac244]
2023-02-09 12:46:13 -05:00
Ranjith Ramakrishnan 810c4ac244 SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: I44adb1a4b9bba0bd89edb75be715504ede2e3d08
2023-02-09 12:46:13 -05:00
Satyanvesh Dittakavi 77e78dff33 SWDEV-370552 - Correct the HIPRTC behavior to optimize the ISA only once
Change-Id: Idaf0ea8294657db3666e9548deb6a9629e0ee718


[ROCm/clr commit: 99556449b6]
2023-02-09 11:55:41 -05:00
Satyanvesh Dittakavi 99556449b6 SWDEV-370552 - Correct the HIPRTC behavior to optimize the ISA only once
Change-Id: Idaf0ea8294657db3666e9548deb6a9629e0ee718
2023-02-09 11:55:41 -05:00
Jonathan R. Madsen 5eb895fc7d Causal profiling fixes (#241)
- corrections in the calculations for latency and throughput points in `validate-causal-json.py`
- `omnitrace-causal` LD_PRELOAD libpthread
  - ensures omnitrace is always wrapping libpthread.so pthread symbols
- minimal experiment delay
  - always sleep 10 milliseconds before starting experiments
  - ensures ~10 samples are taken to determine the sampling rate
- fixes issue with deadlocks on condition variables
- overhaul of `causal::component::blocking_gotcha` and `causal::component::unblocking_gotcha` components
  - these components enforce the processing/crediting of delays before/after a thread is suspended
  - these components wrap functions `pthread_cond_wait`, `pthread_cond_signal`, `pthread_mutex_lock`, etc.
- Fully implemented correct handling of processing/crediting delays based on return values and arguments
  - E.g. skip crediting delay if `pthread_mutex_trylock` fail acquiring lock
  - E.g. `kill`, `sigwait`, etc. check to make sure they are only applied if the PID matches its PID
 
## Condition Variable Deadlock Fix

In parallel applications using condition variables, it was found that the causal profiling was virtually guaranteed to deadlock. Although it was difficult to prove, evidence suggested that this was due to the work that was being done while taking a sample was causing notification to the condition variable to be lost. This was alleviated by the following updates:
 
- Separate out the part of `causal::backtrace::sample(int)` which calculates the sampling rate into small `sample_rate` component
  - This component is essentially "always on"  during sampling
  - Added bundle of components invoked by `causal_sampler_t` during sampling
- Added two function calls to support disabling and re-enabling calls to `causal::backtrace::sample(int)` on a per-thread basis 
  - `causal::sampling::block_backtrace_samples()`
  - `causal::sampling::unblock_backtrace_samples()`
  - These two function now surround the wrappee functions of `blocking_gotcha` and `unblocking_gotcha`

**This solution was experimentally validated with a Geant4 application which uses a tasking model which makes _numerous_ calls to wait on a condition variables** (it was this application which exposed the bug)

* Fix validate-causal-json.py

- corrections in the calculations for latency and throughput points

* Update timemory submodule

- support for thread-local trait::runtime_enabled

* omnitrace-causal: LD_PRELOAD pthread library

- ensures omnitrace is always wrapping libpthread.so pthread symbols

* initial experiment delay

- always sleep 10 milliseconds before starting experiments
- ensures ~10 samples are taken to determine the sampling rate

* sample_rate component + block_backtrace_samples

- separate out the part of backtrace::sample which calculates the sampling rate into small sample_rate component
- add sample_rate component to causal_bundle_t used by causal_sampler_t
- causal::sampling::block_backtrace_samples() disables backtrace samples from being taken on a thread
- causal::sampling::unblock_backtrace_samples() enables backtrace samples from being taken on a thread
- above two function surround calls to function wrapped by blocking_gotcha and unblocking_gotcha
  - the work happening in backtrace::sample when within these calls
    produced deadlocks for condition variables (notifications to
    condition variables were lost)

* blocking/unblocking gotcha updates

- overhaul of blocking_gotcha and unblocking_gotcha
  - added fast_gotcha trait: replace function calls instead of wrapping
- when wrappees are called, backtrace samples are suppressed (thread-local)
- properly handle kill, sigwait, sigwaitinfo, sigtimedwait
- properly handle all instances of applying postblock based on return value

* Fix calculation of OMNITRACE_MAX_THREADS

* removed unnecessary checks in causal::delay

* Updated timemory with internal compiler error fix

[ROCm/rocprofiler-systems commit: 7c73d98125]
2023-02-09 09:47:48 -06:00
Jonathan R. Madsen 7c73d98125 Causal profiling fixes (#241)
- corrections in the calculations for latency and throughput points in `validate-causal-json.py`
- `omnitrace-causal` LD_PRELOAD libpthread
  - ensures omnitrace is always wrapping libpthread.so pthread symbols
- minimal experiment delay
  - always sleep 10 milliseconds before starting experiments
  - ensures ~10 samples are taken to determine the sampling rate
- fixes issue with deadlocks on condition variables
- overhaul of `causal::component::blocking_gotcha` and `causal::component::unblocking_gotcha` components
  - these components enforce the processing/crediting of delays before/after a thread is suspended
  - these components wrap functions `pthread_cond_wait`, `pthread_cond_signal`, `pthread_mutex_lock`, etc.
- Fully implemented correct handling of processing/crediting delays based on return values and arguments
  - E.g. skip crediting delay if `pthread_mutex_trylock` fail acquiring lock
  - E.g. `kill`, `sigwait`, etc. check to make sure they are only applied if the PID matches its PID
 
## Condition Variable Deadlock Fix

In parallel applications using condition variables, it was found that the causal profiling was virtually guaranteed to deadlock. Although it was difficult to prove, evidence suggested that this was due to the work that was being done while taking a sample was causing notification to the condition variable to be lost. This was alleviated by the following updates:
 
- Separate out the part of `causal::backtrace::sample(int)` which calculates the sampling rate into small `sample_rate` component
  - This component is essentially "always on"  during sampling
  - Added bundle of components invoked by `causal_sampler_t` during sampling
- Added two function calls to support disabling and re-enabling calls to `causal::backtrace::sample(int)` on a per-thread basis 
  - `causal::sampling::block_backtrace_samples()`
  - `causal::sampling::unblock_backtrace_samples()`
  - These two function now surround the wrappee functions of `blocking_gotcha` and `unblocking_gotcha`

**This solution was experimentally validated with a Geant4 application which uses a tasking model which makes _numerous_ calls to wait on a condition variables** (it was this application which exposed the bug)

* Fix validate-causal-json.py

- corrections in the calculations for latency and throughput points

* Update timemory submodule

- support for thread-local trait::runtime_enabled

* omnitrace-causal: LD_PRELOAD pthread library

- ensures omnitrace is always wrapping libpthread.so pthread symbols

* initial experiment delay

- always sleep 10 milliseconds before starting experiments
- ensures ~10 samples are taken to determine the sampling rate

* sample_rate component + block_backtrace_samples

- separate out the part of backtrace::sample which calculates the sampling rate into small sample_rate component
- add sample_rate component to causal_bundle_t used by causal_sampler_t
- causal::sampling::block_backtrace_samples() disables backtrace samples from being taken on a thread
- causal::sampling::unblock_backtrace_samples() enables backtrace samples from being taken on a thread
- above two function surround calls to function wrapped by blocking_gotcha and unblocking_gotcha
  - the work happening in backtrace::sample when within these calls
    produced deadlocks for condition variables (notifications to
    condition variables were lost)

* blocking/unblocking gotcha updates

- overhaul of blocking_gotcha and unblocking_gotcha
  - added fast_gotcha trait: replace function calls instead of wrapping
- when wrappees are called, backtrace samples are suppressed (thread-local)
- properly handle kill, sigwait, sigwaitinfo, sigtimedwait
- properly handle all instances of applying postblock based on return value

* Fix calculation of OMNITRACE_MAX_THREADS

* removed unnecessary checks in causal::delay

* Updated timemory with internal compiler error fix
2023-02-09 09:47:48 -06:00
Jacob Lambert c013a1c39b SWDEV-376413 - Revert "SWDEV-376413 - Replace deprecated Comgr device-lib action"
This reverts commit 8da846db0a.

Reason for revert: Test failures with Luxmark, blender, and Indigobench. Need to investigate before re-applying

Change-Id: I6b08273a8f9c8bcaa4e7a06cd42d15048e52ca2a


[ROCm/clr commit: 5168485d23]
2023-02-09 10:02:47 -05:00
Jacob Lambert 5168485d23 SWDEV-376413 - Revert "SWDEV-376413 - Replace deprecated Comgr device-lib action"
This reverts commit 0969056f66.

Reason for revert: Test failures with Luxmark, blender, and Indigobench. Need to investigate before re-applying

Change-Id: I6b08273a8f9c8bcaa4e7a06cd42d15048e52ca2a
2023-02-09 10:02:47 -05:00
German Andryeyev b180effdb6 SWDEV-381633 - Use blit manager on app's queue
Heap initialization used device queue, but it shoudl be used for
cooperative launches only. Heap initialization must use the same queue
as the current dispatch.

Change-Id: I856621bf82bbdeb1c2d0fbc4970e90d09af805cb


[ROCm/clr commit: 67af16bdf3]
2023-02-09 09:43:13 -05:00
German Andryeyev 67af16bdf3 SWDEV-381633 - Use blit manager on app's queue
Heap initialization used device queue, but it shoudl be used for
cooperative launches only. Heap initialization must use the same queue
as the current dispatch.

Change-Id: I856621bf82bbdeb1c2d0fbc4970e90d09af805cb
2023-02-09 09:43:13 -05:00
sdashmiz fb107094d6 SWDEV-374378 - correct setparam for memcpy node
- params should be valid when used for default flag since we support
  unified virtual address space

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I75d40e437b12ee58e72e423bb4818b484ce35b66


[ROCm/clr commit: 5c5b220561]
2023-02-09 09:39:20 -05:00
sdashmiz 5c5b220561 SWDEV-374378 - correct setparam for memcpy node
- params should be valid when used for default flag since we support
  unified virtual address space

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I75d40e437b12ee58e72e423bb4818b484ce35b66
2023-02-09 09:39:20 -05:00
Maneesh Gupta e19e50052d SWDEV-1 - Fix warnings and update disabled test list (#163)
- Fix warnings in some test cases due to unused variables or signed/unsigned comparison.
- Disabled vulkan tests on MI200.

[ROCm/hip-tests commit: 88fbbd666b]
2023-02-09 18:52:27 +05:30
Maneesh Gupta 88fbbd666b SWDEV-1 - Fix warnings and update disabled test list (#163)
- Fix warnings in some test cases due to unused variables or signed/unsigned comparison.
- Disabled vulkan tests on MI200.
2023-02-09 18:52:27 +05:30
Chauncey Hui 50307ab94c SWDEV-2 - Change OpenCL version number from 3568 to 3569
[ROCm/clr commit: 5e27676afb]
2023-02-09 03:00:04 -05:00
Chauncey Hui 5e27676afb SWDEV-2 - Change OpenCL version number from 3568 to 3569 2023-02-09 03:00:04 -05:00
Ranjith Ramakrishnan 32844ddfee SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: Ic6fceb5cf92cca0a3c0a7a78c81cbb69ca82dd5e
2023-02-08 22:55:49 -08:00
Ranjith Ramakrishnan 758c906a20 SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: Ic6fceb5cf92cca0a3c0a7a78c81cbb69ca82dd5e


[ROCm/rdc commit: 32844ddfee]
2023-02-08 22:55:49 -08:00
ROCm CI Service Account 3946771a98 SWDEV-379789 - Correct virtual function support information (#3154)
Change-Id: Ife63b2f4bb3ecdb7fed3b796bc3cd582c1b5ad20


[ROCm/hip commit: f331637ff6]
2023-02-08 17:42:07 -08:00
ROCm CI Service Account f331637ff6 SWDEV-379789 - Correct virtual function support information (#3154)
Change-Id: Ife63b2f4bb3ecdb7fed3b796bc3cd582c1b5ad20
2023-02-08 17:42:07 -08:00
ROCm CI Service Account fbd0d205c4 SWDEV-306306 - Update information for hipMemGetInfo API (#3155)
Change-Id: Ib2b7f81189a82fd47f28cd0056f2997d4ead0e34


[ROCm/hip commit: 905512e255]
2023-02-08 17:41:30 -08:00
ROCm CI Service Account 905512e255 SWDEV-306306 - Update information for hipMemGetInfo API (#3155)
Change-Id: Ib2b7f81189a82fd47f28cd0056f2997d4ead0e34
2023-02-08 17:41:30 -08:00
Ranjith Ramakrishnan f3abbba3b0 SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: I403c34722e6516c60c217ed1b883066e248c598b


[ROCm/roctracer commit: ee3321f2dc]
2023-02-08 17:25:57 -08:00
Ranjith Ramakrishnan ee3321f2dc SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: I403c34722e6516c60c217ed1b883066e248c598b
2023-02-08 17:25:57 -08:00
Jenkins e6846e3170 SWDEV-299127 - Merge 'develop' into 'amd-staging'
Change-Id: I44cc625a866ccd83aea5a46994f144c2630c4c87


[ROCm/hip commit: 78c1d845bc]
2023-02-09 00:10:21 +00:00
Jenkins 78c1d845bc SWDEV-299127 - Merge 'develop' into 'amd-staging'
Change-Id: I44cc625a866ccd83aea5a46994f144c2630c4c87
2023-02-09 00:10:21 +00:00
Saleel Kudchadker 95e07af803 SWDEV-381633 - Better log
Change-Id: Ie151d73aa4b1dae7d0d9acd0457e7dbdf35f21ee


[ROCm/clr commit: 7619b53e9b]
2023-02-08 17:54:11 -05:00
Saleel Kudchadker 7619b53e9b SWDEV-381633 - Better log
Change-Id: Ie151d73aa4b1dae7d0d9acd0457e7dbdf35f21ee
2023-02-08 17:54:11 -05:00
Ranjith Ramakrishnan 33f167725b SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: I3d3b220b31f42140eab5404df790a130d2c238c4


[ROCm/rocm_smi_lib commit: 02141a7f1d]
2023-02-08 14:25:16 -08:00
Ranjith Ramakrishnan 02141a7f1d SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: I3d3b220b31f42140eab5404df790a130d2c238c4
2023-02-08 14:25:16 -08:00
searlmc1 f7197b12a5 Tweak print msg (#3147)
Add newline
Fix grammatical error

[ROCm/hip commit: 58008d8f65]
2023-02-08 12:10:22 -08:00
searlmc1 58008d8f65 Tweak print msg (#3147)
Add newline
Fix grammatical error
2023-02-08 12:10:22 -08:00
Jeremy Newton 713ac5ab4e SWDEV-1 - cltrace: Add missing include
Newer GCC's seem to require this.

Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
Change-Id: I56ef934600729e892f1cd7ab11662760df48aed8


[ROCm/clr commit: 158e79358c]
2023-02-08 14:26:47 -05:00
Jeremy Newton 158e79358c SWDEV-1 - cltrace: Add missing include
Newer GCC's seem to require this.

Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
Change-Id: I56ef934600729e892f1cd7ab11662760df48aed8
2023-02-08 14:26:47 -05:00
Saleel Kudchadker 83ceb0cd10 SWDEV-381633 - Better log
Change-Id: I5c59d42462fe8a233ef10e26ec67314219aeb167


[ROCm/clr commit: 2e4ce59cf4]
2023-02-08 10:21:57 -08:00
Saleel Kudchadker 2e4ce59cf4 SWDEV-381633 - Better log
Change-Id: I5c59d42462fe8a233ef10e26ec67314219aeb167
2023-02-08 10:21:57 -08:00
Jonathan R. Madsen ecc794276c Misc fixes before v1.8.0 release (#239)
* Update timemory submodule for OMPT

- Updated OMPT support for OpenMP 5.2

* omnitrace exe cleanup

- fixed "omnitrace --" segfault
- added nullptr checks

* CMake updates

- moved omnitrace-interface-library definition up a directory
- general cleanup
- fixed branch/tag/ref for git submodule checkouts

* Improve shutdown of causal profiling after duration limit

* Fix dyninst minimum version number

* Removed debug print from binary::get_link_map

* Remove use of thread-pool in causal

* Relax causal testing when variance is high

* causal_gotcha utilities for blocking signals

* Tweak to causal example

* Install validate-causal-json as omnitrace-causal-print

* simplify address_multirange

* improve causal line saving

[ROCm/rocprofiler-systems commit: aadffbe2b1]
2023-02-08 11:54:45 -06:00
Jonathan R. Madsen aadffbe2b1 Misc fixes before v1.8.0 release (#239)
* Update timemory submodule for OMPT

- Updated OMPT support for OpenMP 5.2

* omnitrace exe cleanup

- fixed "omnitrace --" segfault
- added nullptr checks

* CMake updates

- moved omnitrace-interface-library definition up a directory
- general cleanup
- fixed branch/tag/ref for git submodule checkouts

* Improve shutdown of causal profiling after duration limit

* Fix dyninst minimum version number

* Removed debug print from binary::get_link_map

* Remove use of thread-pool in causal

* Relax causal testing when variance is high

* causal_gotcha utilities for blocking signals

* Tweak to causal example

* Install validate-causal-json as omnitrace-causal-print

* simplify address_multirange

* improve causal line saving
2023-02-08 11:54:45 -06:00
Jenkins f214a5019f Merge 'develop' into 'amd-staging'
Change-Id: I27f7446347f663f3fbf988f13f9c5c106c8e0da5


[ROCm/hip-tests commit: e744717dae]
2023-02-08 12:10:40 +00:00
Jenkins e744717dae Merge 'develop' into 'amd-staging'
Change-Id: I27f7446347f663f3fbf988f13f9c5c106c8e0da5
2023-02-08 12:10:40 +00:00
Jonathan R. Madsen 1c6aaafe96 Handle fork in target application (#191)
* Always print PID in log messages

* omnitrace-dl updates

- omnitrace_preload does not call omnitrace_init or omnitrace_init_tooling
- omnitrace_preload will call omnitrace_set_mpi if OMNITRACE_USE_MPI
  or OMNITRACE_USE_MPIP in the env is true but not call it otherwise
  because doing so either overrides OMNITRACE_USE_PID (when true) or
  disable mpip from initialization (when false) and the MPI
  init can be caught later and override OMNITRACE_USE_PID

* config updates

- set_setting_value sets user update type
- remove volatile from get_settings_configured
- don't override settings::default_process_suffix
- don't kill process in omnitrace_exit_action
- set_state ignores updating state if >= State::Finalized

* Handle state > State::Finalized

* fork gotcha updates

- unsets LD_PRELOAD
- sets OMNITRACE_ROOT_PROCESS
- sets OMNITRACE_CHILD_PROCESS

* libomnitrace library.cpp updates

- basic_bundle for fini metrics
- handle finalization from child process

* sampling updates

- sampling::shutdown handles when child process

* Add example and test using fork

* Update run-ci script to support not submitting

* Tweak test envs

* Update build flags when codecov enabled

* remove unnecessary includes of sampling header

* Replace mpi copy/fini static lambda with free-funcs

* Update codecov job

* Fix OMPT segfaults after finalization

* Miscellaneous updates after rebase

* fixes for causal profiling

* revert some run-ci.sh changes

* Disable storing env in sampling::shutdown

* formatting fix

* Update timemory submodule

- fixed occasional synchronization issues with allocator offloading
- exclude protozero:: from internal samples

* improve root/child process detection

- avoid omnitrace_finalize in MPI when child process
- revert some testing tweaks

[ROCm/rocprofiler-systems commit: 32b15fe7b7]
2023-02-08 01:31:38 -06:00
Jonathan R. Madsen 32b15fe7b7 Handle fork in target application (#191)
* Always print PID in log messages

* omnitrace-dl updates

- omnitrace_preload does not call omnitrace_init or omnitrace_init_tooling
- omnitrace_preload will call omnitrace_set_mpi if OMNITRACE_USE_MPI
  or OMNITRACE_USE_MPIP in the env is true but not call it otherwise
  because doing so either overrides OMNITRACE_USE_PID (when true) or
  disable mpip from initialization (when false) and the MPI
  init can be caught later and override OMNITRACE_USE_PID

* config updates

- set_setting_value sets user update type
- remove volatile from get_settings_configured
- don't override settings::default_process_suffix
- don't kill process in omnitrace_exit_action
- set_state ignores updating state if >= State::Finalized

* Handle state > State::Finalized

* fork gotcha updates

- unsets LD_PRELOAD
- sets OMNITRACE_ROOT_PROCESS
- sets OMNITRACE_CHILD_PROCESS

* libomnitrace library.cpp updates

- basic_bundle for fini metrics
- handle finalization from child process

* sampling updates

- sampling::shutdown handles when child process

* Add example and test using fork

* Update run-ci script to support not submitting

* Tweak test envs

* Update build flags when codecov enabled

* remove unnecessary includes of sampling header

* Replace mpi copy/fini static lambda with free-funcs

* Update codecov job

* Fix OMPT segfaults after finalization

* Miscellaneous updates after rebase

* fixes for causal profiling

* revert some run-ci.sh changes

* Disable storing env in sampling::shutdown

* formatting fix

* Update timemory submodule

- fixed occasional synchronization issues with allocator offloading
- exclude protozero:: from internal samples

* improve root/child process detection

- avoid omnitrace_finalize in MPI when child process
- revert some testing tweaks
2023-02-08 01:31:38 -06:00
Jaydeep Patel 670267ec40 SWDEV-380405 - Check for invalid stream for hipMemcpyPeerAsync.
Change-Id: I6dfccb4d20bb638bd596c071030c68889743d706


[ROCm/clr commit: e940beb459]
2023-02-08 00:47:35 -05:00
Jaydeep Patel e940beb459 SWDEV-380405 - Check for invalid stream for hipMemcpyPeerAsync.
Change-Id: I6dfccb4d20bb638bd596c071030c68889743d706
2023-02-08 00:47:35 -05:00
Jenkins 8c52f0ccfd SWDEV-299127 - Merge 'develop' into 'amd-staging'
Change-Id: Ia3145b8bfe97fc84c18137fe37a32ddf93a4c478


[ROCm/hip commit: 1858293427]
2023-02-08 00:10:16 +00:00
Jenkins 1858293427 SWDEV-299127 - Merge 'develop' into 'amd-staging'
Change-Id: Ia3145b8bfe97fc84c18137fe37a32ddf93a4c478
2023-02-08 00:10:16 +00:00
coleramos425 656e73d366 Upgrade python formatting module
Signed-off-by: coleramos425 <colramos@amd.com>


[ROCm/rocprofiler-compute commit: 48df0d6db4]
2023-02-07 14:45:22 -06:00
coleramos425 48df0d6db4 Upgrade python formatting module
Signed-off-by: coleramos425 <colramos@amd.com>
2023-02-07 14:45:22 -06:00
coleramos425 2b1e80ede4 Describe --list-metrics option in help menu #83
Signed-off-by: coleramos425 <colramos@amd.com>


[ROCm/rocprofiler-compute commit: d9dad05cdb]
2023-02-07 14:30:03 -06:00
coleramos425 d9dad05cdb Describe --list-metrics option in help menu #83
Signed-off-by: coleramos425 <colramos@amd.com>
2023-02-07 14:30:03 -06:00