Commit Graph

292 Commits

Author SHA1 Message Date
Ioannis Assiouras d44f44a5b1 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
2024-06-12 21:53:03 +01:00
Ioannis Assiouras 3edf1501cc SWDEV-463865 - namespace changes to prevent symbol conflicts in static builds
Change-Id: I09ceb5962b7aa19156909f47167c87d6887c9cd1
2024-06-12 16:22:27 -04:00
German Andryeyev ae2992ea43 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
2024-06-12 11:12:39 -04:00
Ioannis Assiouras 775dc204aa SWDEV-463865 - changed device,roc and pal namespaces to be nested under amd
Change-Id: Icad342843c039c634e249a13a7aa31400730b1dd
2024-06-07 12:23:06 -04:00
kjayapra-amd 892071aeb2 SWDEV-460948 - Changes to alloc, set, capture under single function.
Change-Id: I7b2d40e99e812b97c53535c5e63c41ad64a8f543
2024-06-06 16:57:53 -04:00
Ioannis Assiouras b8c2ac4de4 SWDEV-463865 - symbol renamings to prevent conflicts in static build
Change-Id: Id7fbb638c1088c23df52fee877cd790d637b1ffb
2024-06-06 04:05:55 -04:00
Saleel Kudchadker ecff928284 SWDEV-463428 - Acquire correlation ID after clear
Change-Id: I472085178d5751f5e2c8a6dfe190b6b3249317f0
2024-06-06 03:49:01 -04:00
Gu, Wangfeng 0c6a952a90 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
2024-06-04 16:35:44 -04:00
Ioannis Assiouras d6eaf49033 SWDEV-460925 - Do awaitCompletion before releasing the lastEnqueueCommand
Change-Id: I210399dd1bced13c0923fdb1c215e044920c5a4b
2024-05-28 06:31:10 +00:00
Saleel Kudchadker badf2b0880 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
2024-05-28 06:28:17 +00:00
Satyanvesh Dittakavi 3d540ec113 SWDEV-457755 - Add TS only for kernel packets in the Accumulate command
Change-Id: I1b2f01c5763761808f49802fa117abc6306a22aa
2024-05-28 06:28:17 +00:00
Saleel Kudchadker 51e4368723 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
2024-05-28 06:28:17 +00:00
German Andryeyev 5b0bfdcbad SWDEV-460242 - Add system memory suballocator
Switch commands creation to the new suballocator to avoid
frequent expensive OS calls

Change-Id: I3597c811820e577c15708bad8b8a41aa53acc400
2024-05-28 06:28:17 +00:00
Saleel Kudchadker 4a9d24a211 SWDEV-301667 - Pass reference to kernel name
Change-Id: I21abe109ddfabfe7640bf78a96c81a1317d31952
2024-05-05 16:38:20 -04:00
Jaydeep Patel 1d48f2a1ab SWDEV-456279 - Adding new hip flag to access contiguous memory and pass the flag to HSA API.
Change-Id: I1bafeaa3096395c729723af958d609bc41e7845c
2024-04-30 05:25:38 -04:00
kjayapra-amd 0e1a0572e6 SWDEV-413997 - Changes to use GlobalContext in views.
Change-Id: I1f8411eae9ed49632667e244a25f223fed92c720
2024-04-29 16:41:39 -04:00
German Andryeyev 5c1804aa14 SWDEV-353281 - Corret VA unmap
Make sure graph mempool unmaps VA on release

Change-Id: Id3f1bd8d0115b533ae60aa5ba3676b8bf7e5b961
2024-04-26 09:37:01 -04:00
German Andryeyev 0ccdb3e160 SWDEV-440746 - Release last command on terminate
Change-Id: Ib6a9b8fc9a8692eb17b39b854cefd92c6b59733f
2024-04-22 09:57:38 -04:00
German Andryeyev 7448113cfc SWDEV-440746 - Remove obsolete code
The "optimized" version of memcpy is outdated and
was used in win32 only.

Change-Id: I7f2e0e9051e37cec95438266824b5b0025c324c6
2024-04-22 09:56:42 -04:00
German Andryeyev fd81490bb8 SWDEV-440746 - Don't set CL_SUBMITTED twice
Change-Id: I9ba34454f7487d6bc0d398b322a147cbac6c6443
2024-04-19 17:36:51 -04:00
German Andryeyev c95a75a2bf SWDEV-444670 - Enable teardown class
Force implicit runtime teardown with a global destructor.

Change-Id: Iabe63dedf5b94fefc98668585c45a61607120669
2024-04-16 12:00:06 -04:00
kjayapra-amd d52d16c8e6 SWDEV-413997 - Fixing multiple device cases.
Change-Id: I10ad3fbfca887e92cd81f68392fa1acf753cbd2b
2024-04-13 06:14:03 -04:00
Saleel Kudchadker c157bfb202 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
2024-03-26 14:47:24 -04:00
kjayapra-amd 5cbd74b554 SWDEV-413997 - Save hsa_handle as ptr in hipMemCreate path.
Change-Id: Ica32017ef7b00326dfb6d1f604e126d40ad5b786
2024-03-26 10:24:29 -04:00
Ioannis Assiouras 51926b6b6b SWDEV-451736 - Revert "SWDEV-444670 - Register the Runtime::tearDown function to be called at exit"
This reverts commit 5e294f89a8.

Change-Id: Ib9cb1cc0c3903bfba56c9a5d05ae8afe96be583a
2024-03-23 07:05:02 -04:00
kjayapra-amd f5ca620baa SWDEV-423835 - Fixing kernel launch issues on Virtual Memory Management path.
Change-Id: I9f5e8a3d83af3809b2c50b21a10697e26113dd23
2024-03-12 17:22:07 -04:00
Ioannis Assiouras 5e294f89a8 SWDEV-444670 - Register the Runtime::tearDown function to be called at exit
Change-Id: I2200b8154ce6806bf99150d0d68f6f20138fa3dc
2024-03-08 18:46:59 -05:00
Ioannis Assiouras dca7bb22b6 SWDEV-443796 - Fixed regression in DX11->OpenCL texture sharing case
Change-Id: Ia7d6cb08706ce9b15252f5412c9f9c57d53b2e6e
2024-02-05 05:08:11 +00:00
Saleel Kudchadker 9a6ddae7b2 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
2024-02-05 05:08:11 +00:00
Saleel Kudchadker dfd4635f91 SWDEV-422207 - Tag captured kernel names for graphs
Change-Id: I9540daa4abf9c340541a681037e2dca4eec821ed
2024-01-03 11:50:05 -05:00
Jaydeep Patel 9551d48e7f SWDEV-411343 - Import VK buffer memory exported by name.
Change-Id: Idc7c840fcd6bf758ecc29ffd6558d24e5bd0a25b
2023-12-14 22:16:11 -05:00
German 01217d0383 SWDEV-435015 - Disable sysmem allocation in abstraction layer
Change-Id: Idefdabd2997d618b962c42545ae67768c628c5d6
2023-12-04 11:40:28 -05:00
Jaydeep Patel eecbc2e436 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
2023-11-23 08:45:19 -05:00
Saleel Kudchadker b056686607 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
2023-11-15 14:38:07 -05:00
Ioannis Assiouras c4f773db0b 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
2023-11-14 05:52:01 -05:00
Saleel Kudchadker c3bd229f4f 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
2023-11-10 11:57:02 -05:00
Saleel Kudchadker f5c6fc4dfa SWDEV-422207 - Report TS for Accumulate command
Change-Id: Iba193a6068c1a2d25c2136643faee2c1e2591a07
2023-11-07 18:19:40 +00:00
Saleel Kudchadker 40f41f4d0b 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
2023-11-03 05:09:04 +00:00
Saleel Kudchadker 1338ff37e8 SWDEV-301667 - Cleanup unused paths
- Refactor code and cleanup logic for callback saving for event records

Change-Id: I5c56aa8e9c968a5bca70fb07ad1796da318e9e89
2023-11-02 11:43:41 -04:00
kjayapra-amd 3ef829939a SWDEV-413997 - Initial VMM changes for ROCm path.
Change-Id: I4405fd7b53182eb4c4622835c811c0dc08461537
2023-10-16 11:29:16 -04:00
jiabaxie 28f0daa34f SWDEV-405983 - adding in HIP_LAUNCH_BLOCKING
Change-Id: I3f9c8a745099aab05155ebe910e727693961a02f
2023-10-10 21:11:13 -04:00
German Andryeyev fe7b36f3cb SWDEV-424603 - Use OR for CPU wait request
Make sure rocclr doesn't overwrite the client's request
for a wait.

Change-Id: I0addf18ea408b7f4ecaa1e04b2877cc0bbbfcc0d
2023-10-06 16:51:44 -04:00
Alex Xie 124de0c519 SWDEV-423579 - Move header file to ROCclr
This header file is used by ROCclr and might be used by HIP too.
ROCclr folder is a right place for this header file.

Change-Id: Ie2307331f9bd445f3c295d2ccbfc4924b0fa9510
2023-10-06 14:54:50 -04:00
German Andryeyev 5438b6362e SWDEV-424603 - Force CPU wait if profiling
Some pytorch tests use a tracer plugin and rely on profiling information
to be reported right after hipDeviceSynchronize()

Change-Id: Ib021a1e7b1a30b3c24de72627c471810f7f7878d
2023-10-06 11:33:06 -04:00
taosang2 6398f604b0 SWDEV-299127 - Support External Mipmap
Support hipExternalMemoryGetMappedMipmappedArray().
Add ImageExternalBuffer to differiate ImageBuffer.
Currently we only support tiling_optimal mode as
vulkan driver doesn't provide tiling information.

Change-Id: I7e3524cdde53e4df9f728894bcebf4bd3f58d4d9
2023-10-05 09:58:17 -04:00
Anusha GodavarthySurya e63c280d4d SWDEV-422207 - Capture AQL Packets for graph Kernel nodes during graph Inst. And enqueue AQL packet during launch
Change-Id: I1e5f7f9e2a70bd500d190193cb6ba0867f5a63e7
2023-10-05 00:34:29 -04:00
German Andryeyev 596b496c16 SWDEV-424249 - Check if HwEvent is available
Allocate marker only if HW event doesn't exist for the last command.

Change-Id: I3e7284202365a9c75313fb5403f0c1908ab51d1e
2023-10-02 11:27:16 -04:00
German Andryeyev fbea58ba11 SWDEV-423317 - Enable GPU wait for hip sync calls
hipStreamSynchronize and hipDeviceSynchronize won't longer wait
for CPU commands in DD mode

Change-Id: I079c8bbfc34ddc6d3e2d74c92a34665877e512a5
2023-09-22 13:04:27 -04:00
Ajay 2bae1b1387 SWDEV-421102 - make clr compatible with c++20
Change-Id: Ia692817232caa3ee97dc0b2139645a0474b582e1
2023-09-18 11:28:29 -04:00
German 7be3a5e33e SWDEV-407533 - [ABI Break]Remove Wavelimiter
Change-Id: I6a2f6fb5a0c3acea93fa0200a69679783e76f5bd
2023-09-07 09:58:41 -04:00