Commit Graph

2151 Commits

Author SHA1 Message Date
Marko Arandjelovic 382f435359 SWDEV-478520 - Prevent segfaults in hipTexRefSetAddress
Change-Id: I9a57ccb81c574e35e7ebf6d71512f9249413bc3e


[ROCm/clr commit: ddc5744c19]
2024-08-29 05:05:37 -04:00
Anusha GodavarthySurya fc014587f8 SWDEV-477324 - Graph Capture memcpy D2D
Change-Id: Ifaa4d78854c03b3150233142df187c9bbf731cab


[ROCm/clr commit: e98179d924]
2024-08-28 23:36:51 -04:00
Tao Sang eaa7fd41cf SWDEV-474989 - Fix issues of texture tests
Change-Id: Ie1d874742b804f82ceda68864fa54f5d59c092b8


[ROCm/clr commit: 4b211f7272]
2024-08-27 11:29:43 -04:00
Ioannis Assiouras a00f071579 SWDEV-470372 - Added hipExtHostAlloc API
This change adds a new HIP API `hipExtHostAlloc` which preserves
the functionality of `hipHostMalloc`.

Change-Id: I13504c6fc13465ddd7aed329795bb4f2fef1baff


[ROCm/clr commit: 2c84211b58]
2024-08-27 08:26:03 -04:00
Vladana Stojiljkovic e8b3e9e5b6 SWDEV-478207 - Return hipSuccess on the end of hipTexRefGetMaxAnisotropy
Change-Id: I0c4d6d13a178af8449853c87e62a1868eb17f87d


[ROCm/clr commit: f5e6e27fe1]
2024-08-27 05:30:36 -04:00
kjayapra-amd 2af78c954b SWDEV-478097 - Check for parents size in case of VA Mem object.
Change-Id: Icfdeabeb178c0dcc8c3a4bc48eec40067985794e


[ROCm/clr commit: d7b097c994]
2024-08-22 14:18:51 -04:00
Sourabh Betigeri d1d6c448c9 SWDEV-462192 SWDEV-459056 - Fixes corruption
SPT is destroyed with hipDeviceReset(). If a
stream is created right after reset, the same
object id could be reused. Later SPT destructor
incorrectly verifies that the stream is valid
referring to the reused object id causing the
corruption.

Change-Id: I3b1f7ffdf8bab874dca7b8fde22318162997b8f6


[ROCm/clr commit: f6a68b3c2e]
2024-08-21 11:33:44 -04:00
Ioannis Assiouras b5acdd6fdc SWDEV-470612 - Added fixes in optimized multistream path for graph execution
This change adds fixes in optimized multistream path for childGraph uses cases.

1) For childgraph nodes, rely on runNodes() only to process
   the childgraph and skip calls to createCommand and enqueueCommands.
   This ensures that the start/end markers are enqueued correctly
   with respect to the childGraph commands.
   In addition, the runNodes() for the childgraph should be called after
   the dependency walkthrough to make sure that the subgraph is executed once.

2) Nodes with no outgoing edges should be marked
   as a leafs regardless of which stream they are assigned to.
   This is to ensure that marker dependencies from nodes
   that run on non-zero stream to subgraph leafs that run on zero stream
   are still set up correctly.

Change-Id: I4a5f4f3b0e0d01e515cdcb045b46c2798f291255


[ROCm/clr commit: 464b99373b]
2024-08-21 10:11:24 -04:00
Anusha GodavarthySurya c2a4062392 SWDEV-470612 - Add stream id to DOT print when DEBUG_HIP_GRAPH_DOT_PRINT is enabled
Change-Id: Iec3630ba6fb2206925653ea939770bb9820d7c52


[ROCm/clr commit: 19bf971134]
2024-08-21 00:37:41 -04:00
kjayapra-amd 457e46551d SWDEV-439234 - set access for vmm memory on graph/mempool path.
Change-Id: Idfb740dcfe6c7fe0f18231de3074a81d06e6886e


[ROCm/clr commit: e72d5a4443]
2024-08-19 13:16:30 -04:00
kjayapra-amd 30609c2e65 SWDEV-465509 - Save the handle type during import function.
Change-Id: If069abb6cd474a7b071617757041402b53575414


[ROCm/clr commit: 8ddb023512]
2024-08-16 10:55:36 -04:00
Ioannis Assiouras 1110a2f345 SWDEV-470372 - Un-deprecate hipHostAlloc, comply with cuda and introduce hipHostAlloc flags
Change-Id: I8165342825dfe07b6e9edc492d0166d0a03be62d


[ROCm/clr commit: 1e4c60f286]
2024-08-15 18:25:22 -04:00
Ioannis Assiouras 3cc948278e SWDEV-449052 - Fix hipMemcpyParam2D when source or destination pitch is set to zero
When source or destination pitch is set to zero in hip_Memcpy2D struct
it should default to WidthInBytes + [src/dst]XInBytes

Change-Id: Id57b53cab40ba72ced231258da9356554c4868c3


[ROCm/clr commit: 7a1e818c82]
2024-08-14 04:46:41 -04:00
Satyanvesh Dittakavi 6bd51db0b1 SWDEV-475185 - Handle device id for hipStreamLegacy
Change-Id: Ib56e6edb77a923f3f9738df64cb9d9ef0b4ba564


[ROCm/clr commit: aa6d07518f]
2024-08-12 09:59:17 -04:00
Jaydeep Patel c1f83df84c SWDEV-474937 - Fix race condition between main and work thread on windows.
Change-Id: I4d6b9de41d0e5a39094eb3babe47dffde72e0587


[ROCm/clr commit: 912de7ab44]
2024-08-07 14:29:14 -04:00
Jaydeep Patel 12eea11370 SWDEV-457316 - Release graph exec before stream gets deleted.
Releasing graph exec after wait completes and before delete hip::stream obj
during stream destroy.

Change-Id: I1d68aa8d844f7d3af330c6d09c44af07f8553551


[ROCm/clr commit: 8e80429b87]
2024-08-06 00:39:37 -04:00
Jaydeep Patel 82474ca1db SWDEV-465220 - Validate stream on which Kernel is planned to be launched.
Change-Id: I34c679bd888c275584c11ad3e8346d4d542976f9


[ROCm/clr commit: b0047d690a]
2024-08-06 00:31:22 -04:00
Jaydeep Patel 2aafd5a30c SWDEV-457316 - Multiple graph exec can be for given stream.
Change-Id: I0f1b184eb63e0432119d62f094637d375a3d4e55


[ROCm/clr commit: d954eb64db]
2024-08-06 00:31:04 -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
Julia Jiang 6fa0563ed6 SWDEV-436608 - Un-deprecate hipHostAlloc()
Change-Id: I71393e6f536ba84b4e172acf54ba4f72350e2ae8


[ROCm/clr commit: e988e5e448]
2024-08-01 11:45:20 -04:00
Marko Arandjelovic 7cd2515908 SWDEV-465204 - Fix hipModuleLaunchKernel data validation
Change-Id: I129f265a5eb79d0a13da4f12e78e06ba307b17ee


[ROCm/clr commit: be5f097e8e]
2024-08-01 05:09:23 -04:00
Vladana Stojiljkovic 91800f18ea SWDEV-465142 - Copy memAllocNodePtrs_ when cloning graph
Change-Id: I5a0907e59397e71b44db59c44b551b74a6e59ba0


[ROCm/clr commit: d62c1dea72]
2024-08-01 11:05:06 +02:00
Vladana Stojiljkovic 6fcb2c655f SWDEV-475127 - Check if hipBindTextureToArray parameters are null before dereferencing them
Change-Id: Id0173faff0a385d1665194c9033083ef9b2c48b5


[ROCm/clr commit: d7b07b94a0]
2024-08-01 05:01:55 -04:00
Marko Arandjelovic 92ddb8e242 SWDEV-475114 - Prevent segfaults in hipBindTexture
Change-Id: I050f36a5c74a5d4542155040ccce043fee6b73ad


[ROCm/clr commit: b3153a5f41]
2024-07-31 16:57:57 -04:00
Marko Arandjelovic 662ba4701c SWDEV-461791 make memcpy synchronous for D2D if src&dst ptrs have SYNC_MEMOPS attribute
Change-Id: I603081d21e5eb3c73111845e350d8fa2ba5a7733


[ROCm/clr commit: 7d0ff387e9]
2024-07-30 11:46:55 -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
Saleel Kudchadker abfe135e4f SWDEV-475341 - Fix stream resolution for graphs launches
This issue was happening because of incorrect usage of getStream call,
if we get the null stream first and then typecast it, and call on
getStream again, we lose the advantage of simply passing "nullptr" to
indicate NULL stream. Thus we enter the waitActiveStream call and add
barriers to sync across streams.

Change-Id: I94dc4e3ec927295b9e1ab6dee4b37d7d3e00b0cc


[ROCm/clr commit: cda4b7db1c]
2024-07-25 19:38:23 -04:00
German Andryeyev fffd8d8190 SWDEV-470612 - Avoid copying a vector on the stack
Change-Id: Ia5fc7d1f77d2519dedeedb2c82c26efebb03d1d3


[ROCm/clr commit: c6b8d69158]
2024-07-25 10:09:19 -04:00
taosang2 f33637b1c6 SWDEV-474091 – Fix sporadic crash in streamcallback test
Also in the scope of SWDEV-467540.
Fix sporadic crash in Unit_hipStreamAddCallback_MultipleThreads by
deferring release() of block_command.
The test will invoke 1000 threads on the same stream thus there
is a chance to free block_command too early in original code.
By deferring release() of block_command we can make sure block_command
is always valid during calling block_command->notifyCmdQueue().

Change-Id: I31555ee18e6958e34b89f04181867fa4e932a38c


[ROCm/clr commit: e3ef19e22a]
2024-07-23 10:24:10 -04:00
kjayapra-amd 30a4b9e316 SWDEV-460948 - Remove dflock, since kernel arguments are part of command now.
Change-Id: I6b5a229307b41bd24ffa0bc172c64ad1154df474


[ROCm/clr commit: 9c03f85f46]
2024-07-22 16:02:01 -04:00
Anusha GodavarthySurya da132a2e28 SWDEV-468424 - Fix kernelArg mgr release and clear commands after capture
Creation of ReferenceCountedObject will increase reference count by 1.
Clear the commands from Node after capture so that they wont be reference later.

Change-Id: I1cc4085939cf65218ec2aa2e25ab6d737f7cacd3


[ROCm/clr commit: 6ae5d6896c]
2024-07-22 05:16:12 +00: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
Jatin Chaudhary 2418a0aa68 SWDEV-467414 - add sharedMemPerBlockOptin = sharedMemPerBlock
On some platforms user can ask for extended shared memory for a
particular kernel in some cases. This feature does not exist on HIP at
the moment. So we are setting it to sharedMemPerBlock which is the
maximum user can expect for their kernels.

Change-Id: I81005cf0d1c9fb941e77d34fb8385241ffe5bdd0


[ROCm/clr commit: 4b95e7bc87]
2024-07-16 11:00:29 -04:00
kjayapra-amd 573dfa21e1 SWDEV-460113 - Remove the ufd print.
Change-Id: If0d64ea4b6662493784c040aa1ceffafc8efa1c3


[ROCm/clr commit: a5664fc93f]
2024-07-16 10:39:16 -04:00
kjayapra-amd a064de92b8 SWDEV-464828 - Initial implementation of VMM IPC on PAL/Windows.
Change-Id: I3d5e148fad9105704db6724b00df06bef4fc9d2f


[ROCm/clr commit: e7a7feb273]
2024-07-16 10:38:35 -04:00
Anusha GodavarthySurya b6d82323e9 SWDEV-468424 - Refactor kernel arg
For refactoring of childGraph to have its own graphExec,
kernelArgs needs to be separated from the graphExec object.
All the childNodes part of graph should share same kernelArg pool.
Otherwise we endup creating multiple device kernel arg memory chucks
for single graphExec.

Change-Id: I4029a46ebc1fa112d87df64ab1fecbf288fabe5e


[ROCm/clr commit: 35079e834e]
2024-07-16 08:38:44 -04:00
Marko Arandjelovic 2e7581a69a SWDEV-441296 - Allign hipTexObjectCreate error handling to CUDA
Change-Id: I9ff01c22f14344e0e82e473104d6930e9fa5ff77


[ROCm/clr commit: 7d3c0c5e10]
2024-07-15 15:51:41 -04:00
Julia Jiang 3c7ae28776 SWDEV-472710 - Adding gitattributes and remove trailing spaces
Change-Id: Ic8ad2071745f0ffe6a2e120bfebb6d90bf270f87


[ROCm/clr commit: dd30e0e893]
2024-07-15 12:39:56 -04:00
sdashmiz ba07492b20 SWDEV-421021 - Add APIs cuMemcpyNodeGet/Set params
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I24bc0da56aad34c9d5876a3d83b59515f11dc3ea


[ROCm/clr commit: 57e79802cd]
2024-07-10 12:53:01 -04:00
Ioannis Assiouras 376da06e2f SWDEV-469825 - Modified the kernel argument readback to use a pointer to volatile
This change modifies the readback mechanism to use a pointer to volatile
instead of a volatile pointer. This ensures that the compiler does not
optimize away the read operation.

Change-Id: I79ff925d615aa8cc4f950e8ff4b7e608fcb179a4


[ROCm/clr commit: ea50d2c0c2]
2024-07-09 17:28:47 -04:00
sdashmiz 0678768fd3 SWDEV-429053 - Add more check for hipStreamLegacy
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Iaf802372b160b09e5e8451074af1731e4f1d410a


[ROCm/clr commit: 7257f56c60]
2024-07-08 13:55:54 -04:00
Jaydeep Patel 130b72302a SWDEV-457316 - Return invalid val from add mem free node if corresponding mem alloc node is missing.
Change-Id: Ib0c346a439fc38ebfd106bcbdf75bd10bfd2f090


[ROCm/clr commit: cf0320a0b9]
2024-07-04 13:09:46 -04:00
Saleel Kudchadker ff12be080d SWDEV-465602 - Fix random segfault
- Introduce a lock when checking isUserObjectValid. We need a lock
here as one can remove the userObject T2, leading to buffer overflow
when checking ranges in T1.

Change-Id: I058144b8cc463c90ab6bf5cf96bf937897742917


[ROCm/clr commit: 6ac67afdd5]
2024-07-03 18:57:23 -04:00
Jaydeep Patel e08f11ca8e SWDEV-465088 - Bypass memcpy kind check for H2H memcpy if XNACK is enabled.
Change-Id: I3e9b23dfb1aedeaf5ea0f26668caddb277ead809


[ROCm/clr commit: 7d7db316b3]
2024-07-01 01:03:42 -04:00
Anusha GodavarthySurya af6dd5d865 SWDEV-469331 - Fix issue of graph sync.
If graph has multiple branches, End command is enqueued on launch stream which
makes sure all the internal parallel streams are finsihed.

When node is removed from the graph, indegree and outdegree are not getting update correctly for parent, child nodes and
resulting in endNode not having deps on parallel commands. Resulting in graph sync issues.

Change-Id: I33cc2f21220e1c017d88099b29b542e05b683f73


[ROCm/clr commit: 9ad7e79e50]
2024-06-28 02:11:44 -04:00
Ioannis Assiouras c407812add SWDEV-468381 - Fixed use of vaddr_sub_obj in GraphMemFreeNode
Resolved an issue where a freed virtual buffer was incorrectly
added to the global mapping causing an assertion error during
teardown process.

Change-Id: I4801157a28603ce9be1ca0131982b700ff884f7a


[ROCm/clr commit: 1c6b92627d]
2024-06-27 16:20:47 -04:00
Saleel Kudchadker 17a46aa40b SWDEV-465602 - Refactor kernel arg pool allocation for graphs
- Allocate additional argument space to accomodate for kernel node
param updates

Change-Id: I2d4ea8bddd716f1191f3cbea807920d0248f8c4e


[ROCm/clr commit: 17313ec99d]
2024-06-25 18:28:03 -04:00
Rahul Manocha 0784937e1e [SWDEV-468553] - Add stream validation checks for memcpy APIs
Change-Id: Ic4495d10c8b2d2ac90f7093a08209d9cb373d2a6


[ROCm/clr commit: f309d49b32]
2024-06-24 12:47:31 -04:00
Ioannis Assiouras f07198d7e5 SWDEV-469138 - Added fix for find_package(LLVM)
Changed find_package call to prioritize the package that is
found under the rocm installation over other system locations

Change-Id: Ice93c94bbb9cdebd467d3e88bb2e4bfb7a1e76d9


[ROCm/clr commit: 6b9e89fe0c]
2024-06-20 11:03:08 -04:00