Commit Graph

940 Commits

Author SHA1 Message Date
German Andryeyev 4f123e9c10 SWDEV-449922 - Remove a global lock for queues on wait
The new logic has a lock for PAL call and doesn't require the lock for queues.

Change-Id: I61b67c3c4abd2ede44809de1d6beed756766032e


[ROCm/clr commit: 2f3ad43c4a]
2024-03-28 18:17:46 -04:00
German Andryeyev 31ace540fa SWDEV-449922 - Remove per queue residency update
alwaysResident setting doesn't require per queue residency tracking.
Thus, the logic can be skipped to avoid the lock of queues.

Change-Id: Ib5cff5b79d3ecb8c2f2eb2565cf069f9a69438b0


[ROCm/clr commit: 95e3958748]
2024-03-28 16:16:37 -04:00
Jaydeep Patel 21a5b16faa SWDEV-450636 - Hostcall Listen thread cause seg fault due to main thread is being destroied by app/test's unload libamdhip64.so call.
Change-Id: I8d4a8d8b6801d9f6eb745c45adf831597def0cb5


[ROCm/clr commit: 4761ecbb15]
2024-03-27 00:10:55 -04:00
Saleel Kudchadker f3aedfbec0 SWDEV-301667 - Create TS for each node recorded in graph
- Create a vector to allow multiple TS to be stored in Command.
- This would mean we dont wait for entire batch in Accumulate command
to finish when we exhaust signals.
- Reduce the number of signals created at init to 64. This min value
may still need to be tuned but the KFD allows max of 4094 interrupt
signals per device.
- Store kernel names whenever they are available and not just when
profiling. If we dynamically enable profiling like for Torch, a crash
can happen if hipGraphInstantiate wasnt included in Torch profile scope
beacuse we previously entered kernel names only when profiler is
attached.

Change-Id: I34e7881a25bbc763f82fdeb3408a8ea58e1ec006


[ROCm/clr commit: c157bfb202]
2024-03-26 14:47:24 -04:00
Rakesh Roy 150144a05f SWDEV-445096 - Fix -O0 crash in OpenCL tests
- With https://gerrit-git.amd.com/c/lightning/ec/llvm-project/+/1002628 applied, at -O0 Kernel::dynamicParallelism() returns true but virtual queue isn't created
- This causes segfault inside VirtualGPU::submitKernelInternal() when getVQVirtualAddress() is called

Change-Id: Ia7af042adad2329e870c142caaac3e8fa886f8b8


[ROCm/clr commit: d1fff7cea2]
2024-03-26 11:42:33 -04:00
kjayapra-amd 0f8a9567e6 SWDEV-413997 - Save hsa_handle as ptr in hipMemCreate path.
Change-Id: Ica32017ef7b00326dfb6d1f604e126d40ad5b786


[ROCm/clr commit: 5cbd74b554]
2024-03-26 10:24:29 -04:00
Anusha GodavarthySurya cf03256284 SWDEV-301667 - Disable HostBlit copy for HIP correct if check
Change-Id: I33d1359d5e4c871f63350d8300f726e039664d86


[ROCm/clr commit: 7f84df9f74]
2024-03-26 02:18:51 -04:00
German Andryeyev e46ab0bff5 SWDEV-353281 - Change pool type for graphs
Under ROCr physical allocations don't have initial VA and require extra
flag in ROCclr. Add an option to have a mempool of physical allocations.

Change-Id: I4d062fe0dd8113d4eaf6e8b51749ed56d8701d1e


[ROCm/clr commit: f296159f62]
2024-03-25 10:21:05 -04:00
Ioannis Assiouras 50ecfb39c9 SWDEV-451736 - Revert "SWDEV-444670 - Register the Runtime::tearDown function to be called at exit"
This reverts commit 8392200773.

Change-Id: Ib9cb1cc0c3903bfba56c9a5d05ae8afe96be583a


[ROCm/clr commit: 51926b6b6b]
2024-03-23 07:05:02 -04:00
Matt Arsenault 471f9e6d65 SWDEV-1 - Do not pass daz_opt to comgr link options
This no longer does anything.

Change-Id: I0643198a46a534a76454a5b461d010ed1776a89a


[ROCm/clr commit: 67473ba345]
2024-03-19 22:55:44 -04:00
German Andryeyev eb355d0159 SWDEV-449558 - Update barrier's logic
PAL optimized the logic for the barriers, which caused failures with CP DMA on Navi4x.
Change barrier's code to match the most recent PAL optimizations.

Change-Id: I55eeab20f51eb8e920bcbb4b55fbe3c7f77fd3fa


[ROCm/clr commit: 1239309c90]
2024-03-18 10:52:32 -04:00
Ioannis Assiouras b46d3c0f8d SWDEV-451166 - Disable kernel args for non-XGMI if HDP flush register is invalid
Change-Id: I227e046e2b9cb25476a50240f5d070adbd558f21


[ROCm/clr commit: 96f5c44851]
2024-03-15 05:27:52 -04:00
Jacob Lambert 6733795fee SWDEV-371628 Use integrated Comgr action to link ROCm device libs
Previously, we used the following approach and Comgr actions
for device lib linking:

    AMD_COMGR_COMPILE_SOURCE_TO_BC (compile with clang driver)
    AMD_COMGR_ADD_DEVICE_LIBRARIES (link in device libs with
      llvm-link API)

However, the clang driver can link in device libraries as part
of compilation, assuming a --rocm-path is set. In this context,
this is accomplished by using the following Comgr action instead:

  AMD_COMGR_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC (compile and
    link in device libs with clang driver)

Change-Id: Ie0bbee7d9a12672536b6d751056a941128ed58be


[ROCm/clr commit: 6311ed8a8e]
2024-03-13 20:34:59 -04:00
pghafari f77ed12c4d SWDEV-430356 - updated VArange to use SVM
Change-Id: Ice3582732dd6f43af6d566e5420234a581a1c194


[ROCm/clr commit: c13864abed]
2024-03-13 11:47:36 -04:00
Saleel Kudchadker 54d326dfa1 SWDEV-301667 - Use right macros and level for logging
- Sometimes we want to mask out kernel names, use right level for kernel
logging

Change-Id: Ideae9647c57b86ae390ff2f4131f6d8c6df5c086


[ROCm/clr commit: f1adecd186]
2024-03-12 19:00:03 -04:00
kjayapra-amd 8947420e41 SWDEV-423835 - Fixing kernel launch issues on Virtual Memory Management path.
Change-Id: I9f5e8a3d83af3809b2c50b21a10697e26113dd23


[ROCm/clr commit: f5ca620baa]
2024-03-12 17:22:07 -04:00
Satyanvesh Dittakavi 311b0ed376 SWDEV-447405 - Reset the last SDMA engine after every few copies
The copies can get blocked if the last SDMA engine is used by another
copy and this can lead to perf drop in some of the tests like Gromacs.
Resetting the last engine by checking the engine status and fetching the
new mask after few copies can avoid this.

Change-Id: I8fe8ea678db508d291c6242f3741fa9215e99921


[ROCm/clr commit: 1b25484f0f]
2024-03-12 02:10:27 -04:00
Shilei Tian d90a0d9c57 SWDEV-442724 - Remove uses of -amdgpu-early-inline-all to enable function calls
Currently we force inlining everything for HIP. Now we'd like to enable function
supports. The first step is to remove uses of `-amdgpu-early-inline-all` in
various places. This patch is to remove all of them from clr.

Change-Id: Ib0cad1f586714c9989778b00746aa4c47a4eec95


[ROCm/clr commit: a09204388a]
2024-03-11 10:02:12 -04:00
Ioannis Assiouras 8392200773 SWDEV-444670 - Register the Runtime::tearDown function to be called at exit
Change-Id: I2200b8154ce6806bf99150d0d68f6f20138fa3dc


[ROCm/clr commit: 5e294f89a8]
2024-03-08 18:46:59 -05:00
Vikram 4b5304adc1 SWDEV-424956 - Fix OpenCL printf bug while printing vectors of half type
OpenCL printf handling did not process vector of half precision floats properly
 (mainly because compiler packs 2 halfs into a dword and runtime failed to extract the
 individual parts).

 This patch fixes the issue.

Change-Id: Ia1f15ccfb5db52b71c43cfd588dd38f551ee5277


[ROCm/clr commit: 6f390f5af9]
2024-03-04 03:53:18 -05:00
cadolphe 1a7892d8ee Revert "SWDEV-374668 - Observed one subtest failure in ocltst32"
This reverts commit ebefe9c576.

Change-Id: I42d6248204107f741a462101f9608e01a7ba91d5


[ROCm/clr commit: 47e3ed545d]
2024-03-02 14:05:44 -05:00
Saleel Kudchadker 4ff5ec0a02 SWDEV-301667 - Better log
- Print SWq for AQL packets, this helps correlating a stream to the HWq
mapped

Change-Id: I610430c0872a1abc6636027c00163ec46983cd65


[ROCm/clr commit: 984c86f407]
2024-03-01 16:43:06 -05:00
Saleel Kudchadker ce7b62d15c SWDEV-443760 - Enable device kernel args for MI300
- Enable Device kernel args for MI300* for now.
- Fix a perf issue which impacts graph instantiate when dev kernel args
are enabled.

Change-Id: I962e58fd9d8dd1a8db95e601cb03a8e9c7bac97f


[ROCm/clr commit: 68f40f78dd]
2024-02-28 19:10:04 -05:00
Anusha GodavarthySurya f1e5162757 SWDEV-447545 - Fix Enable/Disable node with hipGraph
Node can be enabled/disabled only for kernel, memcpy and memset nodes.
If the node is disabled it becomes empty node.
To maintain ordering just enqueue marker with respective node dependencies.

Change-Id: I710f3e88ab4e76c81f6f86a40a7dc61fd4c7e440


[ROCm/clr commit: e0e63eb04d]
2024-02-28 17:34:03 -05:00
Ajay e8a077dc68 SWDEV-347670 - StreamWait and StreamWrite on Windows
__amd_streamOpsWrite blitkernel in device-libs has only 3 args.
so getting rid of the 4th unused arg (sizeBytes)

Change-Id: I81cc1107f8b424bf58558c93a2495a1b878aef91


[ROCm/clr commit: e643406caa]
2024-02-26 22:45:10 -05:00
German Andryeyev e78cae6434 SWDEV-440746 - Fix a crash during RGP capture
With multiple HIP streams it's possible to have a race condition when
one thread stops the traces, but another still performs submisisons.
That may cause a crash on the barrier callback.

Change-Id: Ic56f8277fcfd2c2142a4821d927b938b9f313add


[ROCm/clr commit: e2d2fad56c]
2024-02-22 23:53:35 -05:00
Jaydeep Patel 71ce6de182 SWDEV-359287 - uniform_work_group_size is interger type is 1 for true and 0 for false.
Change-Id: Iac5584c3cdd3bf78e3f1e89033b9ce7e07afefca


[ROCm/clr commit: 4177b4b675]
2024-02-22 22:37:31 -05:00
German Andryeyev a8b35c3a18 SWDEV-404889 - Don't report trap handler
Trap handler shouldn't be reported for debugger and RGP

Change-Id: I149dacfed49584503c1874120d5f552fdec323a7


[ROCm/clr commit: 8f9a20738e]
2024-02-22 14:49:54 -05:00
Ioannis Assiouras 80ddb8e4eb SWDEV-446399 - Fixed segfault in hipMemSetAccess
Change-Id: Ia1200d9bee03e8abade211287505f081e635ceec


[ROCm/clr commit: 1f6d416684]
2024-02-20 18:51:05 -05:00
Saleel Kudchadker ec59b1bc3e SWDEV-443760 - Enable device kern args
- Implement workaround to ensure HDP writes are done by writing and
reading the HDP MMIO register.
- Implement the same workaround for graphs, we no longer need sentinel
write/readback

Change-Id: I0d3027b46a1f61131ec62e3c8c669ff5184fa6b2


[ROCm/clr commit: f138e0d113]
2024-02-20 02:03:14 -05:00
Saleel Kudchadker 6383be514b SWDEV-301667 - Cleanup code and better log
Change-Id: Ie2345264e84026156a9f81b421eed3cf4aeeeffc


[ROCm/clr commit: 81b8598af9]
2024-02-19 05:42:47 -05:00
German Andryeyev bbf1d7c5b5 SWDEV-445692 - Query OS for free memory
Latest VidMM can provide free memory available on the system.
Use PAL interface to report free memory on the system instead
of per process.

Change-Id: I0e78b9d340299c16829177a8c5182d21cc353384


[ROCm/clr commit: bfa469ddc4]
2024-02-13 09:53:36 -05:00
kjayapra-amd bef39a9369 SWDEV-437832 - Changes to update host unified memory and iommuv2 flags.
Change-Id: I88998cf57c21fc446fa28e250f826c607923670b


[ROCm/clr commit: 7d5b4a8f7a]
2024-02-07 06:27:47 -05:00
Saleel Kudchadker 423887c6f6 SWDEV-301667 - Better log
Display queue base pointer in the log. This can be co-related with AQL
packets

Change-Id: I544f9b6db6ae01c85e57e4b3f0b3fffefcd7c2ed


[ROCm/clr commit: 0567c3b720]
2024-02-05 05:08:11 +00:00
Anusha GodavarthySurya 5c0490f53b SWDEV-422207 - Enable DEBUG_CLR_GRAPH_PACKET_CAPTURE environiment variable
Change-Id: I9bf72b9c1a56980352109bd4d42b54ecb2d1b8f9


[ROCm/clr commit: ae0368d12d]
2024-02-05 05:08:11 +00:00
Saleel Kudchadker cc0b04cc60 SWDEV-301667 - Reset profiler correlation_id_
- The correlation_id had random junk values which we were inserting in
the dispatch AQL packet even when no profiler was attached but if we had
a valid timestamp.
- Also make sure we dont even write the reserved2 field in the AQL
packet if no profiler attached.

Change-Id: Icdb7493198c1bb5e2d786a97e027288660854cd7


[ROCm/clr commit: 9a6ddae7b2]
2024-02-05 05:08:11 +00:00
German Andryeyev 8b3c505b6f SWDEV-440746 - Remove pending dispatch check for SDMA P2P
Change-Id: I7290345cfc60cd878fb39a06b03105441793c27b


[ROCm/clr commit: 842eda5e7f]
2024-02-05 05:08:11 +00:00
German Andryeyev 650978eccc SWDEV-404889 - Switch to FreezeExecutable()
Debugger support requires FreezeExecutable() call inside the loader interface.

Change-Id: Iff01840a5980500d8d51da8d73c3f24b2960c44a


[ROCm/clr commit: dcd2fcff16]
2024-02-05 05:08:11 +00:00
cadolphe bd399106ae SWDEV-368741 - Check for uninstalled hsa-amd-aqlprofile to avoid Segmentation Fault
Change-Id: I0c0c7a2ea7c35237332ddd7c2461e4d9ff8e2f1c


[ROCm/clr commit: 243b86dd23]
2024-02-05 05:08:11 +00:00
Ajay ca50750dae SWDEV-440718 - Suffix hip bin name with _6.
Link to amd_comgr_2.dll

Change-Id: I5d21af0cc91f2082099273f75ebe1c3279b6365d


[ROCm/clr commit: b53fcb4d02]
2024-02-05 05:08:11 +00:00
Alex Xie 2fa724e0bd SWDEV-433820 - Optimize queue initialization (ROCM)
Change-Id: I0619a9f66ae3d64a0f3fc36384f46adb302e725d


[ROCm/clr commit: 5e1de3cc26]
2024-02-05 05:08:11 +00:00
Ioannis Assiouras e97c777df1 SWDEV-442421 - Fixed case where hipIpcGetMemHandle erroneously returns hipSuccess
Change-Id: Ie322a1a0165111d2ca129e68f49b54fe93aa088e


[ROCm/clr commit: b5fadf9cd1]
2024-02-05 05:08:11 +00:00
kjayapra-amd 9bff044c87 SWDEV-437832 - Adding device property to check if the device is accelerator.
Change-Id: I8349e99c03422c268bbb60a8c143bd492d9cec09


[ROCm/clr commit: b366a7c992]
2024-02-05 05:08:11 +00:00
Lang Yu 2860991fb4 SWDEV-439419 - Unlock host ptr when device ptr equals host ptr
hsa_amd_memory_lock_to_pool() and hsa_amd_memory_unlock()
should be called balanced.

Change-Id: I8b1549861bff752aabbb6399d717d1e346079a38
Signed-off-by: Lang Yu <Lang.Yu@amd.com>


[ROCm/clr commit: cc29df873a]
2024-02-05 05:08:11 +00:00
Ioannis Assiouras e79d60996c SWDEV-441201,SWDEV-441727 - Move BlitProgram creation after trap handler build
Change-Id: I89199ccc4bdf79940dc6693e07c03115c52bf613


[ROCm/clr commit: 5d322c027a]
2024-02-05 05:08:11 +00:00
Ioannis Assiouras b72a7113fb SWDEV-432599 - Added null checks for rocMemory ptrs in copyMemory
Change-Id: I8ccda2c915dad22c4ea67556dfaab9ba47770069


[ROCm/clr commit: 28743d8dbd]
2024-01-18 15:48:30 -05:00
Jaydeepkumar Patel 5b6349bb60 Revert "SWDEV-359287 - uniform_work_group_size is interger type is 1 for true and 0 for false. Lighting kernel's init sets uniform work group flag and hence not need to set it from options."
This reverts commit 1b05247a03.

Reason for revert: Waiting for staging results before finally merging it.

Change-Id: Iaabb510325f50147f368108e98531291217627c0


[ROCm/clr commit: 77be355fd9]
2024-01-18 01:29:31 -05:00
Jaydeep Patel 1b05247a03 SWDEV-359287 - uniform_work_group_size is interger type is 1 for true and 0 for false. Lighting kernel's init sets uniform work group flag and hence not need to set it from options.
Change-Id: I8d3a9a6ed1c3bddaaa86f7cdc242a45e6a1d09f6


[ROCm/clr commit: ea25e65834]
2024-01-17 04:42:52 -05:00
German 37ed51c99c SWDEV-440746 - Enable hipExtAnyOrderLaunch extension for PAL
Extension allows to execute the kernels without a wait barrier and L1
invalidation.

Change-Id: I96c485204303f54a0240b93134f4560673e4bd17


[ROCm/clr commit: 13c6f56ca9]
2024-01-16 15:20:39 -05:00
Saleel Kudchadker 34fd1b7fe5 SWDEV-301667 - Remove resetFenceDirty
Dont track the status of fence_dirty_ flag on the host, instead clear it
when we submit a barrier on the respective stream.

Change-Id: I4d98dbf20c81379c9c5da9f5b67629a8f9f6dfcd


[ROCm/clr commit: 0b0df605d4]
2024-01-15 15:43:14 -05:00