76333 Commits
Author SHA1 Message Date
ROCm CI Service Account cf489916c5 SWDEV-376665 - Correct information for hipStreamDestroy API (#3134)
Change-Id: If1c255880569dbd81a058683185065502a10b782
2023-02-10 11:41:32 -08:00
ROCm CI Service Account beccdec280 SWDEV-368819 - Add information on HIP APIs (#3135)
Change-Id: I0677280d14c3b813b4288682360824a20995eaf1

[ROCm/hip commit: 644456d438]
2023-02-10 10:32:01 -08:00
ROCm CI Service Account 644456d438 SWDEV-368819 - Add information on HIP APIs (#3135)
Change-Id: I0677280d14c3b813b4288682360824a20995eaf1
2023-02-10 10:32:01 -08:00
Ranjith Ramakrishnan de1e612775 SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: Ic346b403bcc5df52fdab54ddf95472f649a00cc0


[ROCm/clr commit: c86bd74c67]
2023-02-10 13:09:46 -05:00
Ranjith Ramakrishnan c86bd74c67 SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: Ic346b403bcc5df52fdab54ddf95472f649a00cc0
2023-02-10 13:09:46 -05:00
Ranjith Ramakrishnan 053b89414a File reorg backward compatibility message changed to #error
Change-Id: I70b6f06b5e82242b3f50e7d1f0dac8a1eb8add11
2023-02-10 13:09:10 -05:00
Ranjith Ramakrishnan df4cae2121 File reorg backward compatibility message changed to #error
Change-Id: I70b6f06b5e82242b3f50e7d1f0dac8a1eb8add11


[ROCm/ROCR-Runtime commit: 053b89414a]
2023-02-10 13:09:10 -05:00
Wenkai Du 8a0d254c69 Add HIP event optimization and remove special code for gfx90a
[ROCm/rccl commit: 39534e8724]
2023-02-10 16:46:01 +00:00
Wenkai Du 39534e8724 Add HIP event optimization and remove special code for gfx90a 2023-02-10 16:46:01 +00:00
Bill(Shuzhou) Liu 0cb9fad0bf Dispaly printable device name
Fallback to other methods if the device name in sysfs is not printable.

Change-Id: I20b22950399d4a515d2688b955248a3de3c61d05


[ROCm/rocm_smi_lib commit: 00a6c78a51]
2023-02-10 11:32:46 -05:00
Bill(Shuzhou) Liu 00a6c78a51 Dispaly printable device name
Fallback to other methods if the device name in sysfs is not printable.

Change-Id: I20b22950399d4a515d2688b955248a3de3c61d05
2023-02-10 11:32:46 -05:00
Bill(Shuzhou) Liu c24e70b848 Dispaly printable device name
Fallback to other methods if the device name in sysfs is not printable.

Change-Id: I20b22950399d4a515d2688b955248a3de3c61d05


[ROCm/amdsmi commit: 00a6c78a51]
2023-02-10 11:32:46 -05:00
Chauncey Hui 20abd4585b SWDEV-2 - Change OpenCL version number from 3569 to 3570
[ROCm/clr commit: dbeb2f5495]
2023-02-10 03:00:12 -05:00
Chauncey Hui dbeb2f5495 SWDEV-2 - Change OpenCL version number from 3569 to 3570 2023-02-10 03:00:12 -05:00
ROCm CI Service Account 2b550e6815 SWDEV-371122 - Package name corrected for hip-catch-amd (#160)
Change-Id: I8ca14f50761e8f332bc0ca096594e241077f4715


[ROCm/hip-tests commit: 66ad40972a]
2023-02-09 19:38:07 -08:00
ROCm CI Service Account 66ad40972a SWDEV-371122 - Package name corrected for hip-catch-amd (#160)
Change-Id: I8ca14f50761e8f332bc0ca096594e241077f4715
2023-02-09 19:38:07 -08:00
Jenkins 0b40012dbd Merge 'develop' into 'amd-staging'
Change-Id: I8e44bfc2acb443446e379b969e5106a663ce645d


[ROCm/hip-tests commit: eb1b9d8ebb]
2023-02-10 00:10:47 +00:00
Jenkins eb1b9d8ebb Merge 'develop' into 'amd-staging'
Change-Id: I8e44bfc2acb443446e379b969e5106a663ce645d
2023-02-10 00:10:47 +00:00
Jenkins e7b02c034d SWDEV-299127 - Merge 'develop' into 'amd-staging'
Change-Id: I003a1542b8ef30927544bc2f32919c60f53882d4


[ROCm/hip commit: 8508101c80]
2023-02-10 00:10:43 +00:00
Jenkins 8508101c80 SWDEV-299127 - Merge 'develop' into 'amd-staging'
Change-Id: I003a1542b8ef30927544bc2f32919c60f53882d4
2023-02-10 00:10:43 +00:00
David Yat Sin fb8f42233d Fix unitialized variable warning in valgrind
Change-Id: I91e70d67671a8f7289b734407011380b6b97238a
2023-02-09 17:35:53 -05:00
David Yat Sin 59195c9478 Fix unitialized variable warning in valgrind
Change-Id: I91e70d67671a8f7289b734407011380b6b97238a


[ROCm/ROCR-Runtime commit: fb8f42233d]
2023-02-09 17:35:53 -05:00
ROCm CI Service Account abfb3f99a5 SWDEV-362512 - Use macro to check NV or AMD. (#161)
Change-Id: If55a25dded52110f55d6c60cdbf0030378e5dd8b


[ROCm/hip-tests commit: 5e90a5e386]
2023-02-09 13:29:44 -08:00
ROCm CI Service Account 5e90a5e386 SWDEV-362512 - Use macro to check NV or AMD. (#161)
Change-Id: If55a25dded52110f55d6c60cdbf0030378e5dd8b
2023-02-09 13:29:44 -08:00
ROCm CI Service Account cfe5794cd0 SWDEV-364604 - Amend flag name (#3157)
Change-Id: I8fb458268959ea1ca253c4ede815a54f041831cf


[ROCm/hip commit: 121a88db15]
2023-02-09 12:12:55 -08:00
ROCm CI Service Account 121a88db15 SWDEV-364604 - Amend flag name (#3157)
Change-Id: I8fb458268959ea1ca253c4ede815a54f041831cf
2023-02-09 12:12:55 -08:00
Jeremy Newton 2103c97868 SWDEV-1 - device: Add missing include
Newer GCC's seem to require this.

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


[ROCm/clr commit: 70bdb7a597]
2023-02-09 14:57:14 -05:00
Jeremy Newton 70bdb7a597 SWDEV-1 - device: Add missing include
Newer GCC's seem to require this.

Change-Id: I85926d4fa552b772f2eb9f8ede7863a546c47f54
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2023-02-09 14:57:14 -05:00
Xiaogang Chen efcc9b275b libhsakmt: Correct reporting of Shader Engines number.
The Shader Engines number should be shadder array_count divided by simd_arrays_per_engine
not array_count.

Signed-off-by: Xiaogang Chen<Xiaogang.Chen@amd.com>
Change-Id: I808d1fedd6b9843500719e902ecf759f5668a7d1
2023-02-09 14:34:17 -05:00
Xiaogang Chen 2fb44725df libhsakmt: Correct reporting of Shader Engines number.
The Shader Engines number should be shadder array_count divided by simd_arrays_per_engine
not array_count.

Signed-off-by: Xiaogang Chen<Xiaogang.Chen@amd.com>
Change-Id: I808d1fedd6b9843500719e902ecf759f5668a7d1


[ROCm/ROCR-Runtime commit: efcc9b275b]
2023-02-09 14:34:17 -05:00
Cordell Bloor 5873a78d58 Fix static initialization order
Change-Id: I1d51e150b526d050b988fe5a422644667a561cd7
2023-02-09 13:51:08 -05:00
Cordell Bloor 921ccf5f60 Fix static initialization order
Change-Id: I1d51e150b526d050b988fe5a422644667a561cd7


[ROCm/ROCR-Runtime commit: 5873a78d58]
2023-02-09 13:51:08 -05:00
David Yat Sin 59685f4492 Add flag for external memory allocations
ROCr internally uses the same allocation_map_ list to track memory
allocations that are both for internal allocations and allocations by
users of ROCr library. In some edge cases, the library user would call
hsa_amd_pointer_info on an invalid pointer, but ROCR would return the
pointer as valid because this pointer belongs to a memory range that
was allocated internally within ROCr. Adding a flag to differentiate
between internal and external allocations.

Change-Id: I98c52bd85f3985d1ba1b0e3101d2254b003412cf
2023-02-09 13:21:43 -05:00
David Yat Sin 000f4c0547 Add flag for external memory allocations
ROCr internally uses the same allocation_map_ list to track memory
allocations that are both for internal allocations and allocations by
users of ROCr library. In some edge cases, the library user would call
hsa_amd_pointer_info on an invalid pointer, but ROCR would return the
pointer as valid because this pointer belongs to a memory range that
was allocated internally within ROCr. Adding a flag to differentiate
between internal and external allocations.

Change-Id: I98c52bd85f3985d1ba1b0e3101d2254b003412cf


[ROCm/ROCR-Runtime commit: 59685f4492]
2023-02-09 13:21:43 -05:00
Sourabh Betigeri 1544843291 SWDEV-375202 - Fixes print formatting for flags in hipGraphDebugPrint() to match CUDA
Change-Id: I2d85fc38d2c65bc12534109883fe00802e77e62d


[ROCm/clr commit: 4cbf9a4a16]
2023-02-09 13:07:57 -05:00
Sourabh Betigeri 4cbf9a4a16 SWDEV-375202 - Fixes print formatting for flags in hipGraphDebugPrint() to match CUDA
Change-Id: I2d85fc38d2c65bc12534109883fe00802e77e62d
2023-02-09 13:07:57 -05:00
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