Wykres commitów

302 Commity

Autor SHA1 Wiadomość Data
taosang2 785d6e7d01 SWDEV-475144 - Fix random language string
Fix random language string that leads to compiling failure
of trap handler and TDR of hipMemset() on VM in release
mode of hip-rt

Change-Id: Ie1d874742b804f62ceda68064fa54f5d39c092b8


[ROCm/clr commit: 857d0d60b9]
2024-08-20 17:42:31 -04:00
German Andryeyev 35c7a87014 SWDEV-470612 - Add the optimized multistream path
- Added the optimized multi stream path in graph execution. It uses a fixed number of async streams in the execution
- Optimize the launch latency, where commands
creation and execution is done at the same time
- Optimize the scheduling to use less barriers and waiting signals if
the same queue  can be detected
- The new path is controlled by  DEBUG_HIP_FORCE_GRAPH_QUEUES
environment variable, where 0 will use the original path and any other
value will force the number of asynchronous queues for execution
- DEBUG_HIP_FORCE_ASYNC_QUEUE can force single queue async
execution in graphs(applicable for Navi families only)

Change-Id: I7eb40bc15c45f508d6911868a6f6d4c3598d380e


[ROCm/clr commit: 9db52f9a46]
2024-08-02 14:19:44 -04:00
Anusha GodavarthySurya 31927fefd6 SWDEV-468424 - Add support to capture multiple AQL Packets
=> Added support to capture multiple AQL Packets.
=> Added Interface to callback to hip runtime from rocclr to allocate
kernel args from the graph kernel arg pool.
=> Enabled Support to capture memset node.

Change-Id: I7e1c2ba06927459e024653058af142bd82192c43


[ROCm/clr commit: bd3a35bde1]
2024-08-01 23:55:51 -04:00
Ioannis Assiouras 42e8d3c894 SWDEV-476460 - Fix for a race condition in SysmemPool::Alloc
Change-Id: Ia94709e68b236c9460589963c0f09ec1f481c306


[ROCm/clr commit: 8e137e8702]
2024-08-01 04:22:26 -04:00
Ioannis Assiouras 19d16561a4 SWDEV-472309 - Ensure static maps are destroyed after __hipUnregisterFatBinary
hipDeviceSynchronize called from __hipUnregisterFatBinary
accesses static maps and monitors. This change ensures these ojects
are not destroyed before __hipUnregisterFatBinary  is called.
Additionally it disables the teardown process for static build.

Change-Id: I46b58641d60efcf6637a8e99cdd786ffe9e2c77d


[ROCm/clr commit: 9b33db9b24]
2024-07-30 10:26:59 -04:00
Anusha GodavarthySurya 7985a72073 SWDEV-468424 - hipgraph capture memset node
Capture AQL packets during GraphInstantiation and enqueue AQL packets during graph launch.

Added support to capture single graph memset node.
Capture support for memset node is currently disabled.
Memset capture will be enabled when capture for multiple packets are supported..

Change-Id: I14dfbc41731025cc3a548a730558915def3fa384


[ROCm/clr commit: 346da4bb40]
2024-07-19 23:52:50 -04:00
Tao Sang b8cf863eaa SWDEV-458943 - Implement std::mutex based monitor
Implement std::mutex based monitor that has much
simpler logics than legacy monitor.
Create DEBUG_CLR_USE_STDMUTEX_IN_AMD_MONITOR to
toggle them.
If DEBUG_CLR_USE_STDMUTEX_IN_AMD_MONITOR = false
  (by default), use legacy monitor;
If DEBUG_CLR_USE_STDMUTEX_IN_AMD_MONITOR = true,
  use std::mutex based monitor.
If no perf drop of stl::mutex based monitor,
legacy one will be removed later.

Change-Id: I1d21368ff462477d3238d71e4e2a1a7d6b9167ad


[ROCm/clr commit: 73c02041e1]
2024-07-04 11:50:46 -04:00
Saleel Kudchadker bbef85714e SWDEV-470008 - Fix AMD_SERIALIZE_KERNEL
- awaitCompletion code may do a endless spin wait for cases where we
dont submit a handler. One such case can be the hipExt*Launch API which
takes a stop event. In that case we optimize the stop event by attaching
a signal to the dispatch packet but dont submit a handler when we attach
the signal. That means if awaitCompletion() is called after that, we
would keep on waiting on command status on the host rather than simply
checking signal value.

Change-Id: Ie8bf175aeefa3f9e4299b1ae7ae9108dad67e283


[ROCm/clr commit: 561fb8a459]
2024-07-02 19:05:05 -04:00
taosang2 881ffd6650 SWDEV-467540 - Get lastCommand safely
We must be in protected way to get last command when calling
awaitCompletion() where lastCommand will be released and
possibly destroyed.
This can solve scope lock(notify_lock_) crash in
Event::notifyCmdQueue() with AMD_DIRECT_DISPATCH = true.

Change-Id: I4297166f912a71112f4a8945d993160ba9afdc34


[ROCm/clr commit: 749385155a]
2024-06-28 21:18:22 -04:00
taosang2 20417d5b0f SWDEV-467540 - Fix reference of freed locks
1.Move global amd::monitor listenerLock before global
class runtime_tear_down as it will be referenced in
~RuntimeTearDown() after main(). It should be freed
later than runtime_tear_down.

2.Update  Device::~Device() to SVM free coopHostcallBuffer_
before context_ is released and freed.

Change-Id: I1d21378ff463477d3238d71e5e2a1a7d6b9147ad


[ROCm/clr commit: 544c45364f]
2024-06-18 13:58:36 -04:00
Ioannis Assiouras dfe46a3093 SWDEV-467069 - Added safety check in activity prof for accumulate command
Adding a safety check prevents an invalid memory access
if timestamps and kernelNames vectors are of different size.

The patch also moves the addKernelNames for the accumulate command
into dispatchAqlPacket function.

Change-Id: Iea0927e1253800403a1ae3f3d72de1e7d96476c3


[ROCm/clr commit: d44f44a5b1]
2024-06-12 21:53:03 +01:00
Ioannis Assiouras af089a2171 SWDEV-463865 - namespace changes to prevent symbol conflicts in static builds
Change-Id: I09ceb5962b7aa19156909f47167c87d6887c9cd1


[ROCm/clr commit: 3edf1501cc]
2024-06-12 16:22:27 -04:00
German Andryeyev 248ea14e63 SWDEV-459610 - Skip destruction for the child process
Fork() duplicates all system memory resources, but runtime can't duplicate
GPU resources. Thus, avoid tearDown() calls for the child process(s).

Change-Id: Id6b12bacd5112b9ad3747c218e09cba98ea1b42c


[ROCm/clr commit: ae2992ea43]
2024-06-12 11:12:39 -04:00
Ioannis Assiouras 407d1346f2 SWDEV-463865 - changed device,roc and pal namespaces to be nested under amd
Change-Id: Icad342843c039c634e249a13a7aa31400730b1dd


[ROCm/clr commit: 775dc204aa]
2024-06-07 12:23:06 -04:00
kjayapra-amd 41cb6dadf9 SWDEV-460948 - Changes to alloc, set, capture under single function.
Change-Id: I7b2d40e99e812b97c53535c5e63c41ad64a8f543


[ROCm/clr commit: 892071aeb2]
2024-06-06 16:57:53 -04:00
Ioannis Assiouras 0e023d1a0a SWDEV-463865 - symbol renamings to prevent conflicts in static build
Change-Id: Id7fbb638c1088c23df52fee877cd790d637b1ffb


[ROCm/clr commit: b8c2ac4de4]
2024-06-06 04:05:55 -04:00
Saleel Kudchadker 1c94521c1c SWDEV-463428 - Acquire correlation ID after clear
Change-Id: I472085178d5751f5e2c8a6dfe190b6b3249317f0


[ROCm/clr commit: ecff928284]
2024-06-06 03:49:01 -04:00
Gu, Wangfeng 28009e625b SWDEV-460019 - [OGLP][Nv2x] DaVinci Resolve Studio: Crash observed when editing in color tab
When CL-GL interop is used, a GL context are used by two or more threads at the same time, which causes race condition.

Solution:
Add lock when accessing GL functions during CL-GL interop.

Change-Id: I3a34da3cbdf74c401111cc4e3a04ad84cc52709e


[ROCm/clr commit: 0c6a952a90]
2024-06-04 16:35:44 -04:00
Ioannis Assiouras 60ba0874fa SWDEV-460925 - Do awaitCompletion before releasing the lastEnqueueCommand
Change-Id: I210399dd1bced13c0923fdb1c215e044920c5a4b


[ROCm/clr commit: d6eaf49033]
2024-05-28 06:31:10 +00:00
Saleel Kudchadker 0b3e421451 SWDEV-301667 - Refactor graph code
- Remove Last graph node optimization and instead submit a barrier NOP
packet always. This simplifies the code.

Change-Id: Ied443173ba47a08b6df148ac7e3ead712acda11c


[ROCm/clr commit: badf2b0880]
2024-05-28 06:28:17 +00:00
Satyanvesh Dittakavi ecca4d8188 SWDEV-457755 - Add TS only for kernel packets in the Accumulate command
Change-Id: I1b2f01c5763761808f49802fa117abc6306a22aa


[ROCm/clr commit: 3d540ec113]
2024-05-28 06:28:17 +00:00
Saleel Kudchadker 3a67addd48 SWDEV-459778 - Remove CPU wait for profiler
- No cpu wait is needed when profiler is attached, Doing this changes
the application profile when roctracer is attached.

Change-Id: I2b9cfc48d697cf5ed54bb6a240d8c12bdb079171


[ROCm/clr commit: 51e4368723]
2024-05-28 06:28:17 +00:00
German Andryeyev 68344576d3 SWDEV-460242 - Add system memory suballocator
Switch commands creation to the new suballocator to avoid
frequent expensive OS calls

Change-Id: I3597c811820e577c15708bad8b8a41aa53acc400


[ROCm/clr commit: 5b0bfdcbad]
2024-05-28 06:28:17 +00:00
Saleel Kudchadker 588e870000 SWDEV-301667 - Pass reference to kernel name
Change-Id: I21abe109ddfabfe7640bf78a96c81a1317d31952


[ROCm/clr commit: 4a9d24a211]
2024-05-05 16:38:20 -04:00
Jaydeep Patel ab70925687 SWDEV-456279 - Adding new hip flag to access contiguous memory and pass the flag to HSA API.
Change-Id: I1bafeaa3096395c729723af958d609bc41e7845c


[ROCm/clr commit: 1d48f2a1ab]
2024-04-30 05:25:38 -04:00
kjayapra-amd 154a113a88 SWDEV-413997 - Changes to use GlobalContext in views.
Change-Id: I1f8411eae9ed49632667e244a25f223fed92c720


[ROCm/clr commit: 0e1a0572e6]
2024-04-29 16:41:39 -04:00
German Andryeyev b1c0f73229 SWDEV-353281 - Corret VA unmap
Make sure graph mempool unmaps VA on release

Change-Id: Id3f1bd8d0115b533ae60aa5ba3676b8bf7e5b961


[ROCm/clr commit: 5c1804aa14]
2024-04-26 09:37:01 -04:00
German Andryeyev a2ffb2ad40 SWDEV-440746 - Release last command on terminate
Change-Id: Ib6a9b8fc9a8692eb17b39b854cefd92c6b59733f


[ROCm/clr commit: 0ccdb3e160]
2024-04-22 09:57:38 -04:00
German Andryeyev 74d80fb509 SWDEV-440746 - Remove obsolete code
The "optimized" version of memcpy is outdated and
was used in win32 only.

Change-Id: I7f2e0e9051e37cec95438266824b5b0025c324c6


[ROCm/clr commit: 7448113cfc]
2024-04-22 09:56:42 -04:00
German Andryeyev 7eaba0bd33 SWDEV-440746 - Don't set CL_SUBMITTED twice
Change-Id: I9ba34454f7487d6bc0d398b322a147cbac6c6443


[ROCm/clr commit: fd81490bb8]
2024-04-19 17:36:51 -04:00
German Andryeyev 7f195e2996 SWDEV-444670 - Enable teardown class
Force implicit runtime teardown with a global destructor.

Change-Id: Iabe63dedf5b94fefc98668585c45a61607120669


[ROCm/clr commit: c95a75a2bf]
2024-04-16 12:00:06 -04:00
kjayapra-amd 765e6f5d2f SWDEV-413997 - Fixing multiple device cases.
Change-Id: I10ad3fbfca887e92cd81f68392fa1acf753cbd2b


[ROCm/clr commit: d52d16c8e6]
2024-04-13 06:14:03 -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
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
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
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
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
Ioannis Assiouras 7c24bf2275 SWDEV-443796 - Fixed regression in DX11->OpenCL texture sharing case
Change-Id: Ia7d6cb08706ce9b15252f5412c9f9c57d53b2e6e


[ROCm/clr commit: dca7bb22b6]
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
Saleel Kudchadker dfb1087c3e SWDEV-422207 - Tag captured kernel names for graphs
Change-Id: I9540daa4abf9c340541a681037e2dca4eec821ed


[ROCm/clr commit: dfd4635f91]
2024-01-03 11:50:05 -05:00
Jaydeep Patel 526e60cb70 SWDEV-411343 - Import VK buffer memory exported by name.
Change-Id: Idc7c840fcd6bf758ecc29ffd6558d24e5bd0a25b


[ROCm/clr commit: 9551d48e7f]
2023-12-14 22:16:11 -05:00
German a414a5c7a3 SWDEV-435015 - Disable sysmem allocation in abstraction layer
Change-Id: Idefdabd2997d618b962c42545ae67768c628c5d6


[ROCm/clr commit: 01217d0383]
2023-12-04 11:40:28 -05:00
Jaydeep Patel 7933b88d7c SWDEV-431879 - Introduce IsHandlerPending back.
It seems that due to removal of vdev()->isHandlerPending(),
Marker queued to ensure finish is not enqueued and that cause
hung at waiting event for kernel enqueue command.

Change-Id: I364abb2dcb4897b11a7eb61b5d85013b69292792


[ROCm/clr commit: eecbc2e436]
2023-11-23 08:45:19 -05:00
Saleel Kudchadker cb9a715e04 SWDEV-422207 - Report kernel names for activity profiling
- Report kernel names for optimized graph path
- Refactor code so that we store profiling info in Accumulate command

Change-Id: Ib97735a0239aeb9fc3a50a4bb7126dd0bcadc8af


[ROCm/clr commit: b056686607]
2023-11-15 14:38:07 -05:00
Ioannis Assiouras 8f679127a3 SWDEV-428244 - Fixed the computation of the start address of KernelParameters.values_
For avx build, the start address of values_ buffer in KernelParameters is not
correct as it is computed based on 16-byte alignment.

Change-Id: I3b28ae02d2c9c0517d4a348d95ae8c6721bec83d


[ROCm/clr commit: c4f773db0b]
2023-11-14 05:52:01 -05:00
Saleel Kudchadker be743bcd59 SWDEV-422207 - Optimize graph end detection
- Do not use extra barrier to detect graph end. If its a kernel node we
can use a completion signal for the last packet. Saves roughly 6us for
Phantom testcase per graph launch.

Change-Id: I5e0c2479d9964fbeda86ed97533f6718f49a7f91


[ROCm/clr commit: c3bd229f4f]
2023-11-10 11:57:02 -05:00
Saleel Kudchadker 19ea94729c SWDEV-422207 - Report TS for Accumulate command
Change-Id: Iba193a6068c1a2d25c2136643faee2c1e2591a07


[ROCm/clr commit: f5c6fc4dfa]
2023-11-07 18:19:40 +00:00
Saleel Kudchadker 5f009b7cb1 SWDEV-422207 - Track commands for capture
- Track all captured commands under a new AccumulateCommand
- Add begin() and end() methods to capture commands
- Explicit TS object now passed to certain methods because
profilingBegin() and profilingEnd() now happen separately and thus can
run into threading issues

Change-Id: I171106bdcad72b057836cb2f3fc398db3533119f


[ROCm/clr commit: 40f41f4d0b]
2023-11-03 05:09:04 +00:00
Saleel Kudchadker 1d4bd084b8 SWDEV-301667 - Cleanup unused paths
- Refactor code and cleanup logic for callback saving for event records

Change-Id: I5c56aa8e9c968a5bca70fb07ad1796da318e9e89


[ROCm/clr commit: 1338ff37e8]
2023-11-02 11:43:41 -04:00
kjayapra-amd 6d8458ba5a SWDEV-413997 - Initial VMM changes for ROCm path.
Change-Id: I4405fd7b53182eb4c4622835c811c0dc08461537


[ROCm/clr commit: 3ef829939a]
2023-10-16 11:29:16 -04:00