Commit Graph

260 Commits

Author SHA1 Message Date
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
Jaydeep Patel 198b7b412d SWDEV-417317 - Bypass agent init for HIP.
Change-Id: I3396cf7c1feced03d29f5e5ff3c77474f4f7e1ec
2023-09-06 00:40:54 -04:00
German ad56c20cd0 SWDEV-418038 - Remove opengl32.lib from linking in runtime
Change-Id: If9416742cd8dc6a35adaccce802d65888e808ef2
2023-08-30 14:07:28 -04:00
Saleel Kudchadker 1ec0ba3537 SWDEV-301667 - Use large signal pool
Use large signal pool if profiler is connected or profiling forced
enabled. This is needed to mitigate signal creation overhead when
profiling as signals are attached to every packet and deeper batch may
show overhead of signal allocation.

Change-Id: I8034b8a20b55328b87d593bf044f59672f9653e8
2023-08-24 19:17:05 -04:00
Tao Sang d433df4761 SWDEV-417727 - Fix hipSignalExternalSemaphoresAsync()
This reverts commit 44a3935cda.

Implement the right way to make ExternalSemaphores be signalled
only after prior works on the stream have been finished.

Change-Id: I9d5974e05d5f229170b928db4566c14e40e3cbaa
2023-08-23 22:31:27 -04:00
taosang2 44a3935cda SWDEV-417727 - Fix hipSignalExternalSemaphoresAsync()
Let ExternalSemaphores be signalled only after prior works on the
stream have been finished.

Change-Id: I856917db905f68f55fdf484f5267f7fe8ea3117f
2023-08-23 14:58:37 -04:00
German 9bd592e2ff SWDEV-415115 - Fix memory commit in SVM on large bar systems
Skip memory commit for linux only.

Change-Id: I6304607f7c5516c76e59afa6da57de5b088f6a8c
2023-08-18 11:25:28 -04:00
Jaydeep Patel 289535e805 SWDEV-412393 - Force alloc memory to avoid another hsa image creation.
Change-Id: Ia3cd99eb736231e6dfe013ebae6c41fd4cc657bc
2023-08-17 05:18:43 +00:00
German Andryeyev b49e8e78e1 SWDEV-409815 - Fix image view cache issue
Add a view bit to avoid original resource destruction when parent
dependency doesn't exist with the image view cache

Change-Id: I8277afd575af8f29951c5d1a9f7d94d784251657
2023-07-25 12:30:04 -04:00
Ioannis Assiouras cb7776ef07 SWDEV-412496 - treat USE_PROF_API to always be true
Change-Id: I77cfac409215a33d11228a0f2da9ffba63c3d73a
2023-07-21 04:42:57 -04:00
Anusha GodavarthySurya b0e6f99ad7 SWDEV-392732 - Initial commit for graph doorbell optimization(AQL Buffering)
Change-Id: I451725006c54c249dc530c55d2af2a31594bf49b
2023-07-16 07:56:00 -04:00
Todd tiantuo Li 8434feed16 SWDEV-333557 - 1.Add support for IPC memory to enable hipIpcGetMemHandle() and hipIpcOpenMemHandle() in PAL path. Set interprocess flag for device allocations in HIP PAL. 2.Fix PAL IPC path with ResourceCache and SubAllocation 3.Minor fixes for IpcBuffer constructor and IpcAttach 4.Remove redundant checks that may go wrong
Change-Id: Ie9d99847c7c2c7b3b2aaefaaf60d23bf71b68635
2023-07-12 17:49:32 -04:00
German Andryeyev 6b89980fb2 SWDEV-409815 - Fix image view cache issue
Make sure parent_ field is cleared for the internal image views.
The internal image views don't require dependencies tracking.
The issue appeard only when Navi10 pitch workaround was enabled.

Change-Id: I376d212750085a9391f8c32fc2979dcb5d93c89c
2023-07-11 11:22:29 -04:00
Rakesh Roy 8c1232124e SWDEV-405329 - Fix cuMask issue for WGP mode
- Enable CUs adjacent pairwise for WGP mode
- In HostQueue::terminate() do not segfault if virtual device hasn't been created

Change-Id: I94402ff333308af5824878086cc238b3993d534d
2023-06-30 01:09:01 -04:00
Matt Arsenault e9750de215 SWDEV-1 - Fix -Wfinal-dtor-non-final-class
rocclr/platform/external_memory.hpp:93:30: warning: class with destructor marked 'final' cannot be inherited from [-Wfinal-dtor-non-final-class]
   93 |     virtual ~ExternalImage() final {}

Change-Id: I56d760fa6c08544100e3bc03d35129bd16d8a428
2023-06-23 09:06:56 -04:00
taosang2 f03c11491b SWDEV-368553 – Add missing mipmap Apis
Add missing mipmap Apis’ implementation.
Fix some bugs of mimpmap apis.
Use hipmipmappedArray to differentiate cuda
and driver apis on Nvidia.
Change-Id: I6079d9f3b2ddf4e42b9a6f7f3902322cfca02cfd
2023-06-22 17:24:21 -04:00
German 9aa6f25f1c SWDEV-311270 - Clean-up IPC path in ROCclr
- Make IPC interfaces generic between devices and rely on the IPC buffer
for attach/detach logic

Change-Id: Id3c18d122030329b7ee532bbb6317de9dd6a0bbe
2023-06-20 15:18:21 -04:00
sdashmiz 38a67df312 SWDEV-403638 - Fix warnings
- disable deprecated function use warning
- disalbe size_t to .type' warning
- disable conversion from 'type1' to 'type2' warning

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I64161fd37cf56de3d132102103267ae8da40193a
2023-06-15 12:17:22 -04:00
German 1a0c3e4dc4 SWDEV-311270 - Add IPC support for memory pools
Initial implementation for hipMemPoolExportToShareableHandle,
hipMemPoolImportFromShareableHandle,
hipMemPoolExportPointer and hipMemPoolImportPointer

Change-Id: I0ebdc48e9163b394ded560adca6c38bbc5aee7d1
2023-06-15 11:36:52 -04:00
German 04b696abee SWDEV-353281 - VM support in mempool for graphs
The change enables VM support in graphs on Windows. That allows
to avoid caching of all allocations at the cost of map/unmap
overhead during memory create/destroy.

Change-Id: I792be00fba099e5e5d3cd44a963e1dfd6976a86d
2023-05-05 15:31:26 -04:00
German 7ef2da5aba SWDEV-353281 - Move VirtualMem map update to memobj
- The implementation in mempool graphs requires refcounting VA object.
That requires release() to update the map only on the actual destruction.
- Add GPU event tracking for paging operation. Otherwise, runtime
may not always flush IB.

Change-Id: Idf99ffb894321a38e04b490116a7ca435635918d
2023-04-28 17:22:11 -04:00
German Andryeyev 3e5803c4c0 SWDEV-381627 - Move cl_vk_amd.hpp into rocclr
Rename VK interop to ExternalMemory object, since it should handle
DX interops also

Change-Id: I536ec46d3e53ece35234a2e29030393ad411b96d
2023-04-26 15:25:01 -04:00
victzhan 636983de49 SWDEV-387117 - Support negative miplevel for clCreateFromGLTexture()
Change-Id: Ieaa340196e6844b2d18cdcc2278f913fc7c7bbb8
2023-04-19 12:46:45 -04:00
Saleel Kudchadker 20ca8b8116 SWDEV-384557 - Leverage SDMA engine status query
Change-Id: I5f386f2965de24a229ea43b6c4da82099692f91f
2023-04-05 07:50:53 +00:00
taosang2 82d2213cfa SWDEV-380903 - Add program lock
Create seperate locks for program and HSAIL

Change-Id: I7c826ed9c2f2d839d359e5158f578830655616fd
2023-04-05 07:50:16 +00:00
Ajay 88736010fb SWDEV-381627 - adding cl interop files to vdi
Change-Id: Ic40363587a2bc56f977a148eba386dfb73d6286e
2023-04-05 07:48:49 +00:00
Ruili Ji 25fe45bb2a SWDEV-383856 - Remove mmap function for SVM buffer
For large bar platform, it's not necessary to mmap
memory allocated on VRAM to cpu again

Change-Id: I0701680476829d4058b3e7b643e8df657d0c6168
Signed-off-by: Ruili Ji <ruiliji2@amd.com>
2023-04-05 07:47:30 +00:00
Ioannis Assiouras 2e9f6fb49b SWDEV-385050 - Fixed possible invalid queue access from kernelCommand::releaseResources
Change-Id: I7c5d99987cb7ab4fa0aa634f2bb6a4d60331b3af
2023-02-23 16:39:27 +00:00
Saleel Kudchadker 3e603d986a SWDEV-364604 - Add ROCclr support for hipEventDisableSystemFence
Change-Id: I6127b432a8759359359a1890fda85bc401be6a56
2023-02-21 19:07:35 -05:00
German 28daf98f1f SWDEV-382397 - Move VirtualGPU destruction back to the thread exit
OS can terminate unfinished queue thread from default stream at any
time. Potentially leaving the queue lock in a bad state and causing a
deadlock if runtime destroys VirtualGPU later from the host thread.

Change-Id: I247f102ee84e6b4dba947504933395071945c85d
2023-02-17 10:05:49 -05:00
kjayapra-amd 6b873b8a86 SWDEV-376697 - Use PCIE fine grain memory pool when hipDeviceMallocUncached flag is used.
Change-Id: I7234d456ef2df42b0b9b9e0d2647ee9bded565f9
2023-02-16 14:05:50 -05:00
German ad33a021cb SWDEV-352197 - Destroy virtual device in thread destructor
Windows kills threads on exit without any notification. However,
runtime can still destroy VirtualGPU object from the host thread with
HostQueue destruction.
This change also forces RGP trace transfer on the last capture without
any delays.

Change-Id: I768e87e99e1d23a021e63c12f36e450817743759
2023-01-31 10:53:48 -05:00
German 53a10c9039 SWDEV-377991 - Remove liquidflash support
Change-Id: Iba6455e5c0210c3223a06fec332404cd9f489154
2023-01-20 09:57:06 -05:00