Commit Graph
64512 Commits
Author SHA1 Message Date
Jason Tang 3f5d248508 SWDEV-1 - switch to C++17
Change-Id: I7e6a28a20ca163fe86dd6d53b031e9bb6f9b22c9


[ROCm/clr commit: 5549007856]
2021-09-09 10:16:14 -04:00
Jason Tang 5549007856 SWDEV-1 - switch to C++17
Change-Id: I7e6a28a20ca163fe86dd6d53b031e9bb6f9b22c9
2021-09-09 10:16:14 -04:00
Chauncey Hui ba1ade3521 SWDEV-2 - Change OpenCL version number from 3363 to 3364
[ROCm/clr commit: df862e7ef6]
2021-09-09 03:00:06 -04:00
Chauncey Hui df862e7ef6 SWDEV-2 - Change OpenCL version number from 3363 to 3364 2021-09-09 03:00:06 -04:00
Vladislav Sytchenko 6f895e3fc5 SWDEV-1 - Prepare for c++17 switch
std::mem_fun() and std::bind2nd() are removed in c++17. Switch to
simpler logic that does not require those functions.

Change-Id: I19a31f076e1813e367615bd377b424046ce144c7


[ROCm/clr commit: d934612948]
2021-09-08 16:18:33 -04:00
Vladislav Sytchenko d934612948 SWDEV-1 - Prepare for c++17 switch
std::mem_fun() and std::bind2nd() are removed in c++17. Switch to
simpler logic that does not require those functions.

Change-Id: I19a31f076e1813e367615bd377b424046ce144c7
2021-09-08 16:18:33 -04:00
Vladislav Sytchenko f04c71975f SWDEV-301636 - Manually find NUMA
CMake does not provide a way to query the NUMA library, hence we need
to find it manually.

Change-Id: I370b286acdee75cbebc21340da3c432c79f8ffa7


[ROCm/clr commit: dd23379ac8]
2021-09-08 15:04:15 -04:00
Vladislav Sytchenko dd23379ac8 SWDEV-301636 - Manually find NUMA
CMake does not provide a way to query the NUMA library, hence we need
to find it manually.

Change-Id: I370b286acdee75cbebc21340da3c432c79f8ffa7
2021-09-08 15:04:15 -04:00
Chun Yang 4409957364 Merge "SWDEV-301543 SWDEV-276146 : Fix profile output buff allocation" into amd-staging 2021-09-08 13:27:01 -04:00
Chun Yang 993c438e55 Merge "SWDEV-301543 SWDEV-276146 : Fix profile output buff allocation" into amd-staging
[ROCm/rocprofiler commit: 4409957364]
2021-09-08 13:27:01 -04:00
Vladislav Sytchenko ab7fe870fd SWDEV-1 - Fix Windows build
std: :mem_fun() is removed in c++17. Simplify logic to not require it.
Change-Id: Ic9a4753b48dd13fcb20cd5b90ff73c3df3211b9f


[ROCm/clr commit: c68f024b35]
2021-09-08 12:59:48 -04:00
Vladislav Sytchenko c68f024b35 SWDEV-1 - Fix Windows build
std: :mem_fun() is removed in c++17. Simplify logic to not require it.
Change-Id: Ic9a4753b48dd13fcb20cd5b90ff73c3df3211b9f
2021-09-08 12:59:48 -04:00
Saleel Kudchadker 36ec8c8871 SWDEV-297448 - Add 64bit and 16bit write support
For the fillBuffer shader, if there are two 32bit writes to a MMIO
register, it can get dropped. It has to be a single 64bit write.
Add optimization to fillBuffer to write 64bit and 16bit writes.

Change-Id: I3aa78e027898f8ae01e9c8f09004615673720c2b


[ROCm/clr commit: 21ba34d0fe]
2021-09-08 12:30:04 -04:00
Saleel Kudchadker 21ba34d0fe SWDEV-297448 - Add 64bit and 16bit write support
For the fillBuffer shader, if there are two 32bit writes to a MMIO
register, it can get dropped. It has to be a single 64bit write.
Add optimization to fillBuffer to write 64bit and 16bit writes.

Change-Id: I3aa78e027898f8ae01e9c8f09004615673720c2b
2021-09-08 12:30:04 -04:00
Sarbojit Sarkar 87862528be SWDEV-276319 - Added missing null check
Change-Id: I0fcaa55b9a793cbb6c1d2f3022edf288dabea757


[ROCm/clr commit: 88186db4cd]
2021-09-08 06:53:02 -04:00
Sarbojit Sarkar 88186db4cd SWDEV-276319 - Added missing null check
Change-Id: I0fcaa55b9a793cbb6c1d2f3022edf288dabea757
2021-09-08 06:53:02 -04:00
Chauncey Hui 5fd0dc4062 SWDEV-2 - Change OpenCL version number from 3362 to 3363
[ROCm/clr commit: 1786fd8851]
2021-09-08 03:00:04 -04:00
Chauncey Hui 1786fd8851 SWDEV-2 - Change OpenCL version number from 3362 to 3363 2021-09-08 03:00:04 -04:00
Jatin Chaudhary 3231b56cbc SWDEV-299162 - Use new comgr API to demangle names
Change-Id: I9e34518de94db30c345cd03c92801b8424b4e446


[ROCm/clr commit: 0faf1244b5]
2021-09-08 02:32:41 -04:00
Jatin Chaudhary 0faf1244b5 SWDEV-299162 - Use new comgr API to demangle names
Change-Id: I9e34518de94db30c345cd03c92801b8424b4e446
2021-09-08 02:32:41 -04:00
Jatin Chaudhary f020572d6e SWDEV-299162 - Add new comgr API to demangle names
Change-Id: I84174d7e40e9afff9a8ea135abadb69d580478e0


[ROCm/clr commit: b5a57327bb]
2021-09-08 00:35:34 -04:00
Jatin Chaudhary b5a57327bb SWDEV-299162 - Add new comgr API to demangle names
Change-Id: I84174d7e40e9afff9a8ea135abadb69d580478e0
2021-09-08 00:35:34 -04:00
Sarbojit Sarkar 0c08bbf838 SWDEV-300655 - HIP trace cleanup
Change-Id: Iebc1eefe8d81d2f1f8adbab47e1351f03635868f


[ROCm/clr commit: c8983ead49]
2021-09-08 00:32:47 -04:00
Sarbojit Sarkar c8983ead49 SWDEV-300655 - HIP trace cleanup
Change-Id: Iebc1eefe8d81d2f1f8adbab47e1351f03635868f
2021-09-08 00:32:47 -04:00
Jonathan R. Madsen 244b308cb5 Integrated perfetto + roctracer (#5)
- hosttrace library automatically collects and merges timestamps for HIP API calls and kernels with the host-side instrumentation
  - mostly eliminates the need for using external rocprof
- added thread_instruction_count in perfetto output
- increased hosttrace min_loop_address_range to 512
- disabled instrumenting functions with dynamic callsites by default
- miscellaneous cmake updates

* roctracer support

- fully integrated perfetto + roctracer outputs
- thread_instruction_count in perfetto
- increased min_loop_address_range to 512
- disabled instrumenting functions with dynamic callsites by default
- updated timemory submodule

* hosttrace_launch_compiler

- support for using an alternative compiler as needed via launch compiler
- elfio added as submodule (not currently used)
- miscellaneous cmake updates

* README update + host/device categories + misc

- timemory fix for TIMEMORY_ROCTRACER_ENABLED
- transpose fix

* papi_tuple_t -> papi_tot_ins

- minor fix to Findroctracer.cmake

[ROCm/rocprofiler-systems commit: a061b7947f]
2021-09-06 22:23:24 -05:00
Jonathan R. Madsen a061b7947f Integrated perfetto + roctracer (#5)
- hosttrace library automatically collects and merges timestamps for HIP API calls and kernels with the host-side instrumentation
  - mostly eliminates the need for using external rocprof
- added thread_instruction_count in perfetto output
- increased hosttrace min_loop_address_range to 512
- disabled instrumenting functions with dynamic callsites by default
- miscellaneous cmake updates

* roctracer support

- fully integrated perfetto + roctracer outputs
- thread_instruction_count in perfetto
- increased min_loop_address_range to 512
- disabled instrumenting functions with dynamic callsites by default
- updated timemory submodule

* hosttrace_launch_compiler

- support for using an alternative compiler as needed via launch compiler
- elfio added as submodule (not currently used)
- miscellaneous cmake updates

* README update + host/device categories + misc

- timemory fix for TIMEMORY_ROCTRACER_ENABLED
- transpose fix

* papi_tuple_t -> papi_tot_ins

- minor fix to Findroctracer.cmake
2021-09-06 22:23:24 -05:00
Jenkins bac1dc9b42 SWDEV-299127 - Merge 'develop' into 'amd-staging'
Change-Id: Ic4b3f1042c69f9810a7134a999c4779642852f59


[ROCm/hip commit: 757b01e534]
2021-09-06 07:11:25 -04:00
Jenkins 757b01e534 SWDEV-299127 - Merge 'develop' into 'amd-staging'
Change-Id: Ic4b3f1042c69f9810a7134a999c4779642852f59
2021-09-06 07:11:25 -04:00
Jatin Chaudhary b25444d97b SWDEV-296918 - Adding unsafe atomics test for gfx90a (#2331)
Change-Id: I3936e0b30e15aff154bdab3efe3f6da2ccce3578

[ROCm/hip-tests commit: 731a353e74]
2021-09-06 12:21:38 +05:30
Jatin Chaudhary 731a353e74 SWDEV-296918 - Adding unsafe atomics test for gfx90a (#2331)
Change-Id: I3936e0b30e15aff154bdab3efe3f6da2ccce3578
2021-09-06 12:21:38 +05:30
Jatin Chaudhary 28cfed7879 SWDEV-296918 - Adding unsafe atomics test for gfx90a (#2331)
Change-Id: I3936e0b30e15aff154bdab3efe3f6da2ccce3578

[ROCm/hip commit: 6a09344dba]
2021-09-06 12:21:38 +05:30
Jatin Chaudhary 6a09344dba SWDEV-296918 - Adding unsafe atomics test for gfx90a (#2331)
Change-Id: I3936e0b30e15aff154bdab3efe3f6da2ccce3578
2021-09-06 12:21:38 +05:30
Sarbojit Sarkar 45953e81dd SWDEV-300655 - Added thread ID to hip trace
Change-Id: I9234d4ec93e7687cd0a5d1bd930bd4f80936311b


[ROCm/clr commit: 42d33029dc]
2021-09-06 00:22:42 -04:00
Sarbojit Sarkar 42d33029dc SWDEV-300655 - Added thread ID to hip trace
Change-Id: I9234d4ec93e7687cd0a5d1bd930bd4f80936311b
2021-09-06 00:22:42 -04:00
Jason Tang cea605e632 SWDEV-1 - switch to C++17
Change-Id: I555914fc65f61259fe32a7f58864ac0dba1d641f


[ROCm/clr commit: 9ca733ca1e]
2021-09-04 17:19:02 -04:00
Jason Tang 9ca733ca1e SWDEV-1 - switch to C++17
Change-Id: I555914fc65f61259fe32a7f58864ac0dba1d641f
2021-09-04 17:19:02 -04:00
Chauncey Hui d93c8fc413 SWDEV-2 - Change OpenCL version number from 3361 to 3362
[ROCm/clr commit: 1b218d6861]
2021-09-04 03:00:05 -04:00
Chauncey Hui 1b218d6861 SWDEV-2 - Change OpenCL version number from 3361 to 3362 2021-09-04 03:00:05 -04:00
Chun Yang 2b79931631 SWDEV-301543 SWDEV-276146 : Fix profile output buff allocation
L2 flush is triggered by explicit cache flush PM4 packet in aqlprofile
packets to GPU. This cache flush is used to sync up CPU and GPU to make
sure perfomance counters copied to profile output buffer is visible to
CPU. To get rid of this cache flush the followings are done:
  1. This explicit cache flush packet is removed from aqlprofile code
     (another commit to aqlprofile code).
  2. This commit which changed profile output buffer to use kernarg
     memory since it is uncached for GPU.
After these changes profile counter values when copied by GPU to output
buffer they are guaranteed to be visible to CPU.

Change-Id: Ie953949c85fbee2f4369f1de966bcfb33daec084
2021-09-02 17:30:57 -07:00
Chun Yang f5e00dec76 SWDEV-301543 SWDEV-276146 : Fix profile output buff allocation
L2 flush is triggered by explicit cache flush PM4 packet in aqlprofile
packets to GPU. This cache flush is used to sync up CPU and GPU to make
sure perfomance counters copied to profile output buffer is visible to
CPU. To get rid of this cache flush the followings are done:
  1. This explicit cache flush packet is removed from aqlprofile code
     (another commit to aqlprofile code).
  2. This commit which changed profile output buffer to use kernarg
     memory since it is uncached for GPU.
After these changes profile counter values when copied by GPU to output
buffer they are guaranteed to be visible to CPU.

Change-Id: Ie953949c85fbee2f4369f1de966bcfb33daec084


[ROCm/rocprofiler commit: 2b79931631]
2021-09-02 17:30:57 -07:00
Jonathan R. Madsen 7435122726 Minor fix to README (#4)
[ROCm/rocprofiler-systems commit: b6e65d69f6]
2021-09-02 13:17:25 -05:00
Jonathan R. Madsen b6e65d69f6 Minor fix to README (#4) 2021-09-02 13:17:25 -05:00
Jonathan R. Madsen 055a3fba87 Updated documentation + misc (#3)
- tweaked some CMake option names
- moved merge-trace.jl to hosttrace-merge.jl
- removed Windows line encodings from hosttrace-merge.jl
- improved handling of !perfetto and !timemory

[ROCm/rocprofiler-systems commit: fc15967f8f]
2021-09-02 13:14:58 -05:00
Jonathan R. Madsen fc15967f8f Updated documentation + misc (#3)
- tweaked some CMake option names
- moved merge-trace.jl to hosttrace-merge.jl
- removed Windows line encodings from hosttrace-merge.jl
- improved handling of !perfetto and !timemory
2021-09-02 13:14:58 -05:00
Jonathan R. Madsen 6825578603 Improved analysis of functions to instrument + MPI support + timemory support (#2)
* various tweaks
* build updates + cleanup + overlap guard + min addr range
* Library source reorg + miscellaneous tweaks
* Removed unnecessary fwd decls
* Print address range in --print-X pair mode

- hosttrace modifications
  - disable instrumenting functions with overlapping sections or multiple entry points by default (control via --allow-overlapping option)
  - disable instrumenting functions whose address range < 512 bytes unless a loop is present by default (control via --min-address-range option)
  - disable instrumenting functions w/ loops whose address range < 64 bytes (control via --min-loop-address-range)
- Support for wrapping MPI function calls even in binary rewrite mode
  - e.g. use gotcha to wrap MPI functions with hosttrace_push_trace and hosttrace_pop_trace
- New timemory only mode --> HOSTTRACE_USE_TIMEMORY=ON
- New timemory + perfetto mode --> HOSTTRACE_USE_PERFETTO=ON + HOSTTRACE_USE_TIMEMORY=ON
- Full support for all timemory components
- parallel-overhead example for measuring the overhead in a MT-parallelized application with very small instrumentation functions
- improvements to output directories for hosttrace exe
- improvements to output directories for hosttrace library
- new hosttrace options
  - --print-instrumented <type> prints out the instrumented entities and exits
  - --print-available <type> prints out the available instrumentation entities and exits
  - --print-overlapping <type> prints out the overlapping entities and exits
  - NOTE: <type> above refers to the information printed out, e.g. module name vs. function name vs. module and function name, etc.

[ROCm/rocprofiler-systems commit: 1f15b3070f]
2021-09-02 11:38:39 -05:00
Jonathan R. Madsen 1f15b3070f Improved analysis of functions to instrument + MPI support + timemory support (#2)
* various tweaks
* build updates + cleanup + overlap guard + min addr range
* Library source reorg + miscellaneous tweaks
* Removed unnecessary fwd decls
* Print address range in --print-X pair mode

- hosttrace modifications
  - disable instrumenting functions with overlapping sections or multiple entry points by default (control via --allow-overlapping option)
  - disable instrumenting functions whose address range < 512 bytes unless a loop is present by default (control via --min-address-range option)
  - disable instrumenting functions w/ loops whose address range < 64 bytes (control via --min-loop-address-range)
- Support for wrapping MPI function calls even in binary rewrite mode
  - e.g. use gotcha to wrap MPI functions with hosttrace_push_trace and hosttrace_pop_trace
- New timemory only mode --> HOSTTRACE_USE_TIMEMORY=ON
- New timemory + perfetto mode --> HOSTTRACE_USE_PERFETTO=ON + HOSTTRACE_USE_TIMEMORY=ON
- Full support for all timemory components
- parallel-overhead example for measuring the overhead in a MT-parallelized application with very small instrumentation functions
- improvements to output directories for hosttrace exe
- improvements to output directories for hosttrace library
- new hosttrace options
  - --print-instrumented <type> prints out the instrumented entities and exits
  - --print-available <type> prints out the available instrumentation entities and exits
  - --print-overlapping <type> prints out the overlapping entities and exits
  - NOTE: <type> above refers to the information printed out, e.g. module name vs. function name vs. module and function name, etc.
2021-09-02 11:38:39 -05:00
Saleel Kudchadker 1bf9b39cf8 SWDEV-301667 - Kern arg placement
Add a env var ROC_USE_FGS_KERNARG to toggle kernel arg placement
By default its in Fine Grain Kernel arg segment for supported asics.

Change-Id: I3d57ed69a1a4db2b392b0438ead499f3ddca4716


[ROCm/clr commit: e29b9c00ee]
2021-09-02 12:36:49 -04:00
Saleel Kudchadker e29b9c00ee SWDEV-301667 - Kern arg placement
Add a env var ROC_USE_FGS_KERNARG to toggle kernel arg placement
By default its in Fine Grain Kernel arg segment for supported asics.

Change-Id: I3d57ed69a1a4db2b392b0438ead499f3ddca4716
2021-09-02 12:36:49 -04:00
Laurent Morichetti d926d09134 Merge "Merge roctx_trace.txt" into amd-staging 2021-09-02 12:31:29 -04:00
Laurent Morichetti 97c747d8dc Merge "Merge roctx_trace.txt" into amd-staging
[ROCm/rocprofiler commit: d926d09134]
2021-09-02 12:31:29 -04:00