Commit Graph

366 Commits

Author SHA1 Message Date
Andryeyev, German 2305f8ae56 SWDEV-465041 - Add support for user events with DD (#321)
* SWDEV-465041 - Add support for user events with DD

User events can be replaced with HSA signals. Add the interface
to allocate HSA signal for user events and update the status on
CL_COMPLETE.
Force pinned path with DD to avoid blocking calls. Pinned memory
can be released only when the command is complete.
Simplify device enqueue path to use generic kernel arg buffer and
signals

* Fix notifyCmdQueue() logic for OCL

* Avoid blocking calls in OCL with DD

* Add event  destruciton in a case of the failure.
2025-08-12 19:04:36 -04:00
Kudchadker, Saleel 9b045922a8 SWDEV-538195 - Introduce threshold for handler submission (#723)
- When doing device/stream sync, we can submit a handler which may
  introduce some host side delays. Use DEBUG_CLR_BATCH_CPU_SYNC_SIZE to
  batch commands for host wait. Default for HIP is 8 commands.
- Investigation is underway in ROCr but need to address this for now in
  HIP runtime.
2025-08-06 20:34:42 -07:00
Xie, Pengda cd46294b31 SWDEV-520384 - Improve Fat Binary loading latency (#390)
Init and fini kernel needs to be launched when we load and unload code object. Avoid looping through all kernels within a code object just to run the init and fini kernels. Compiler currently only generates 1 init and fini kernel.
2025-08-05 14:02:05 -07:00
Betigeri, Sourabh 2a02d2c2f3 SWDEV-545273 - Respect HIP_LAUNCH_PARAM_BUFFER_SIZE (#770) 2025-08-03 17:32:52 -07:00
Manocha, Rahul 3f6f9d6081 SWDEV-539710 - Defer allocation of managed variable (#652)
Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-07-31 08:30:23 -07:00
Manocha, Rahul 22b1ca4d8c SWDEV-532420 - Fix kokkos P2P copy failure with vmheap (#426)
Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-07-07 17:27:13 -07:00
Trinh, Ethan 2ce45143d8 SWDEV-539861 - add ROCclr version to logs (#612) 2025-06-27 16:37:58 -04:00
Guan, Zichuan 51508e0bef Fix memory leak in opengl interop (#541)
Signed-off-by: zichguan-amd <zichuan.guan@amd.com>
2025-06-27 09:51:18 -04:00
Patel, Jaydeepkumar a60212b9b4 SWDEV-536226 - Avoid waiting for lastCommand completion if GPU has already reported an error otherwise it causes hang due to status of cmd is not becoming CL_COMPLETE. (#478) 2025-06-25 20:59:17 +05:30
Manocha, Rahul b5e9bc55cb SWDEV-475482 - [6.4 Preview] Match hipTexObjectCreate with cuda (#408)
Co-authored-by: Rahul Manocha <rmanocha@amd.com>
2025-05-28 13:21:45 +05:30
Jayaprakash, Karthik bb7750a946 Revert "SWDEV-522707 - Set phys_mem_handle type to sizeof(size_t) to avoid blocking address range. (#105)" (#348)
This reverts commit 6811fd90b8.
2025-05-19 15:19:16 +05:30
Jayaprakash, Karthik f5b8db33f1 SWDEV-531711 - Report correct error code based on device failure. (#286) 2025-05-17 06:33:13 -04:00
Andryeyev, German bddb8f14d1 SWDEV-345024 - Retain the program on Fini kernel execution (#307)
Fini kernel is executed during the invocation of amd::Program destructor,
but the dispatch logic can retain/release the reference counter and
cause double free. Avoid double free with an extra retain() call
2025-05-14 21:21:26 +05:30
Assiouras, Ioannis f7482ef0a6 SWDEV-529449 - Bug fix when retrieving a memobj from the IPC mem handle 2025-05-13 19:18:22 +01:00
Arandjelovic, Marko a7492c516d SWDEV-511204 - Mapped virtual memory should use device instead of host context (#213)
Since the sub-buffer(virtual memory that is mapped to device memory) is associated with device memory, it should utilize the device context instead of the host context. The original implementation caused hipMemcpyPeer to not take the P2P path, as the memory object was treated as host memory.
2025-05-12 16:55:25 +02:00
Zhang, Victor f960433dcd SWDEV-528142 - add error check for KernelParameters::capture (#276)
* SWDEV-528142 - add error check for KernelParameters::capture

* Update kernel.cpp

---------

Co-authored-by: victzhan <victzhan@amd.com>
2025-05-07 09:52:09 -04:00
Jayaprakash, Karthik fa55557f46 SWDEV-493805 - Cleaning up launch parameters arguments. (#241) 2025-05-06 15:06:13 -04:00
Andryeyev, German 65a0181a7c SWDEV-528808 - Release all HW queues even if only one is idle (#240)
Pytorch may not explicitly idle each queue. Thus, some queues can be considered as busy,
but have idle state in reality
2025-05-05 19:09:01 -04:00
Sang, Tao 96cadbc9e9 SWDEV-520352 - Remove HostThread and legacy monitor (#230)
* SWDEV-520352 - Remove HostThread and legacy monitor

Remove HostThread, semaphore and  legacy monitor.
Make original logics of thread and command queue stricker.
Add more comments to make logics clearer.
Some other minor improvement.

Also part of SWDEV-458943.
2025-04-29 09:55:24 -04:00
Jayaprakash, Karthik 6811fd90b8 SWDEV-522707 - Set phys_mem_handle type to sizeof(size_t) to avoid blocking address range. (#105) 2025-04-29 11:19:16 +05:30
Kudchadker, Saleel 072fb0804e SWDEV-521647 - Fix tracking of hw_event (#206)
- When a command may possibly have two packets(like device heap
  initializer), and if there is no signal on the main kernel packet the
tracking was broken as it marked HW event of the command as the first
packet signal.
- Make sure if no completion signal is attached to the second packet
  then clear the HW event for the command.
2025-04-25 08:46:44 -07:00
Godavarthy Surya, Anusha bf28bbd9ab SWDEV-508538 - Optimize mem access and pack structure (#71)
Change-Id: Ib05b8891a6d228fc3266918a000d332fddc7438b
2025-04-21 13:43:25 +05:30
Sang, Tao 18d191fd1d SWDEV-523824 - Fix data validation issue of rocFFT (#154)
Fix data validation issue of rocFFT when dynamic queue on.
ReleaseHwQueue() can be called only when no command in HostQueue.
The checking condition need be protected by lock.
2025-04-08 20:30:06 -04:00
Andryeyev, German e974f7fde1 SWDEV-497841 - Add VmHeapArray support (#76)
Add VmHeapArray class to reduce the pressure on VA reservation, since
multiple memory pools can be active at the same time.
2025-04-03 21:04:18 +05:30
Arandjelovic, Marko 8fcaa1ca93 SWDEV-517867 - Remove invalid assert (#55)
* Remove invalid assert

* Retrigger CI

* Rebase
2025-04-03 11:14:32 +02:00
Patel, Jaydeepkumar b5c9cbc236 SWDEV-508632 - Align address to 2 MBs for hidden heap allocation. (#29) 2025-04-02 16:33:29 +05:30
MartinezFernandez, Juan f580632174 Remove PCH code: the code related to PCH is dead and not used (#66)
cherry-pick of compute/ec/clr/+/1184122

Co-authored-by: Juan Manuel Martinez Caamaño <juamarti@amd.com>
2025-03-28 10:36:19 +01:00
Andryeyev, German 28967982b2 SWDEV-517481 - Add dynamic queue management (#37)
Enabled by defaulty. DEBUG_HIP_DYNAMIC_QUEUES controls the feature
2025-03-19 11:22:50 -04:00
Andryeyev, German 392ed53c3c SWDEV-497841 - Avoid access to the null stream on mempool alloc
Null stream isn't created during the device creation
2025-03-17 11:40:14 -04:00
Saleel Kudchadker e03e4f3b5d SWDEV-502365 - Track last used command
- This change tries to save extra synchronization packets we may insert
  as we didnt track the completion signals for every command. We track
the current enqueued command until it exits the enqueue stage. We also
record the exit scope to know if we flushed the caches
- Handle correct release scopes and store completion signal as HW events
- Use a new finishCommand implementation to only wait for the command
  passed as the argument

Change-Id: Ie4350c5dd24f5d48dfa6ccbabd892f0544caadcc
2025-03-04 16:05:02 -05:00
German Andryeyev 296dce5570 SWDEV-497841 - Add virtual memory heap
Add initial implementation of virtual memory heap with
dynamic virtual memory mapping support for memory pools.
DEBUG_HIP_MEM_POOL_VMHEAP controls the new method.

Change-Id: I8dc5be2e0f34ab472f1800f43bb6243639a5e500
2025-02-20 10:55:49 -05:00
Aidan Belton-Schure 179801a750 SWDEV-508279 - Improve HIP event profiling
There are 2 functional changes to this patch:
* Use GPU timing for internal markers for HIP.
* Measure CPU time closer to GPU timer, to reduce delta between GPU/CPU timestamp measurements.

There are some smaller non-functional updates:
* waifForFence -> waitForFence typo
* Remove unused drmProfiling

Change-Id: I4c5fa600a842ab60e454888779edcac8449a902a
2025-02-13 04:15:40 -05:00
Saleel Kudchadker 2d450e8b06 SWDEV-504494 - Resolve signal dependencies
- Resolve signal dependencies for barrier value packet if there are > 1
  depenent signals. Barrier Value packet accounts for only 1 dep signal
- Better log

Change-Id: Ia506ad5d80b91d598f92e7b539f41756e9b4b64b
2025-01-29 19:49:02 +00:00
Tao Sang f2ff56af9c SWDEV-458943 - Add fast path in wait()
wait() is redesigned with two pathes:
fast path: Use spinlock to wait for notify signal. If the
 signal hasn't been received for some loops, go to slow path.
slow path: Use condition_variable's wait().

Improve monitor wrapper for better performance.

Fix some bugs left from name removing patch.

Change-Id: I893a8353121a25d11e37c8e631caf31cc1fc1f24
2025-01-28 12:19:55 -05:00
Pengda Xie f76733e5b8 SWDEV-508590 - Fix segfault issue with hipModuleLoad
- Ensuring devProgram pointer isn't nullptr

Change-Id: Ia5786d0a2441f3a512d79b4998eb314beb98b35e
2025-01-21 11:38:37 -05:00
Anusha GodavarthySurya 683a942364 SWDEV-480209 - Make internal callbacks non-blocking
Change-Id: Ic918d08f341abfd9a7c167d09f9c723cdc43157f
2025-01-10 02:16:11 -05:00
taosang2 d82d6a78cf SWDEV-479958 - Support different address mode
Support different address modes in X, Y, Z directions

Change-Id: If1db5a8af33c92dd14b48968c3e8eceb97daea6c
2024-12-23 16:39:54 -05:00
Sourabh Betigeri 03dbcd8ca7 SWDEV-440866 - [hip-roclr] Adds support to batch memory operations APIs
Change-Id: I5ac63a6626af8c2b4ac382c52dfe1aaf0b3716b8
2024-12-12 19:29:24 -05:00
Tao Sang 3ad8f1b811 SWDEV-496667 - Support gfx9-4-generic target
Support gfx9-4-generic target to cover mi3XX.
Support features sramecc and xnack in generic target.
Improve some code formats.
Add more log on compiler.

Change-Id: I6b3c6af55c60cffd43ce6f17b75998f751b75713
2024-12-12 14:43:39 -05:00
Jatin Chaudhary 063f7ef32a SWDEV-485945 - use union to convert values
this shows up in some compilers as warnings.

Change-Id: I862cd6baf2edb8161757adc54abb787530489481
2024-12-04 11:15:03 -05:00
Sourabh Betigeri 2ca644cf22 Revert "SWDEV-440866 - [hip-roclr] Adds support to batch memory operations APIs"
This reverts commit bd5d8e9baf.

Reason for revert: hipInfo fails on windows. Updating llvm amd-mainline-closed

Change-Id: I57e1fa1945188b0bc0a799c4f3d540f2b7713003
2024-12-02 16:46:12 -05:00
Sourabh Betigeri bd5d8e9baf SWDEV-440866 - [hip-roclr] Adds support to batch memory operations APIs
Change-Id: I449ffca44bbb04d13348d112e896d603c70fd485
2024-11-30 17:54:32 -05:00
Anusha GodavarthySurya 06e6561eb5 SWDEV-489084 - Avoid using queue colliding with the graph launch stream
Change-Id: I3ecaf8836c8e0883441275139041c702aba0937e
2024-11-29 08:15:58 -05:00
Maneesh Gupta ec6f83b544 Revert "SWDEV-475482 - hipTexObjectCreate align with cuda"
This reverts commit efce2f77c4.

Reason for revert: Even though this change is valid, this would break backward compatibility.

Change-Id: I9c7cab83198c8d5c8485b11194099162e3e7a874
2024-11-21 00:55:32 -05:00
Rahul Manocha efce2f77c4 SWDEV-475482 - hipTexObjectCreate align with cuda
Support zero width and height for hipTextObjectCreate to align
with cuda.

Change-Id: I5d4c48625faf5f060ed2a7e634ec65e4ecac9da5
2024-11-19 23:28:55 -05:00
German Andryeyev 403f624bf8 SWDEV-486602 - Add tracking of HSA handlers
Add an atomic counter to track the outstanding HSA handlers.
Wait on CPU for the callbacks if the number exceeds the value
in DEBUG_HIP_BLOCK_SYNC env variable.

Change-Id: I95dc8c4bf0258c7e59411b7504220709ed6898c5
2024-10-25 15:20:50 -04:00
Julia Jiang 9f2f6a8aa7 SWDEV-488396,489257 - Fixed the regression in CTS pipes sub-test failure
Change-Id: Id4004f0d6da5754b12c9a21038de50472cb1fee5
2024-10-25 05:58:46 -04:00
German Andryeyev 6bb7d1afdc SWDEV-486602 - Fix Windows 32 bit build
Windows alings fields to 8 bytes even with 32bit builds.
Add BUG_CLR_SYSMEM_POOL to cotnrol sysmempool.

Change-Id: I8622aabc9f7391ed7dd8583b252ce9eb41d62293
2024-10-18 11:35:54 -04:00
German Andryeyev ad18146d8f SWDEV-486602 - Change SysmemPool implementation
- Remove the list of all chunks and use embedded chunk
information in each allocation. That simplifies Free() logic,
avoiding expensive loop if for some reason the number of
outstanding allocations significantly grew.

Change-Id: I9ea84d314320ce356ed24dd3180f262e2116c59b
2024-10-17 12:39:39 -04:00
German Andryeyev 8657a77029 SWDEV-491375 - Limit the SW batch size
Applications may submit commands withoout waits
for GPU. That causes a growth of SW unreleased commands.
Make sure runtime flushes SW queue, if it grows over some
threshold, controlled by DEBUG_CLR_MAX_BATCH_SIZE.

Change-Id: Ia4d85c24210ef91c394f638ab6b53b14323a0396
2024-10-17 10:53:57 -04:00