Commit Graph

82 Commits

Author SHA1 Message Date
sdashmiz 2889266aeb SWDEV-429053 - Add check for StreamLegacy
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I402185a3b81935aaa1c8c4963407b8de21c72d8a


[ROCm/clr commit: 627ccfa502]
2024-05-28 06:31:10 +00:00
Anusha GodavarthySurya 085703c225 SWDEV-460770 - Handle Graph Exec release
Handle GraphExec instance is destroyed before async launch completes
GraphExec instance is destroyed after async launch completes
GraphExec instance is destroyed without a launch

Change-Id: I45a7c82295fea916c7559bd8f796df710513aea1


[ROCm/clr commit: bf4d10ff61]
2024-05-28 06:28:17 +00: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
Anusha GodavarthySurya ae296c8fad SWDEV-443567 - SWDEV-436126 - Fix Prohibited and Unhandled Operations during capture
=> hipDeviceSynchronize is not allowed during capture.
=> hipEventSynchronize during capture should return hipErrorCapturedEvent error
=> hipEventQuery during capture should return hipErrorCapturedEvent error
hipStreamSynchronize, hipEventSynchronize, hipStreamWaitEvent, hipStreamQuery
For Side Stream(Stream that is not currently under capture):
=> If current thread is capturing in relaxed mode, calls are allowed
=> If any stream in current/concurrent thread is capturing in global mode, calls are not allowed
=> If any stream in current thread is capturing in ThreadLocal mode, calls are not allowed
For Stream that is currently under capture
=> calls are not allowed
=> Any call that is not allowed during capture invalidates the capture sequence
=> It is invalid to call synchronous APIs during capture. Synchronous APIs,
such as hipMemcpy(), enqueue work to the legacy stream and synchronize it before returning.

Change-Id: I201c6e63e1a5d93fd416a3b520264c0fdbe31237


[ROCm/clr commit: 19b4660cbb]
2024-03-28 22:10:31 -04:00
Ioannis Assiouras 8b875d0248 SWDEV-430437,SWDEV-434702 - Split the streamset per device
Change-Id: If1bcca45825c9899462bb95ed6f637f5af806cc8


[ROCm/clr commit: be2bdabb76]
2024-03-18 19:08:52 -04:00
German Andryeyev 4bb028a49d SWDEV-311271 - Add dependency tracking for streams
Mempool has capability to track dependency between streams for
faster memory reuse. Enable that capability.

Change-Id: I28266a7e38d0fc4c5d027b9542d3719653840821


[ROCm/clr commit: 17d0c166d2]
2024-03-05 12:53:09 -05:00
German Andryeyev e26e82d58e SWDEV-311271 - Update mempool errors
Add extra validations for negative tests.

Change-Id: I7b2879b8840b5d1b6c5cb0d919a651cd868b7529


[ROCm/clr commit: d808ae6782]
2024-02-28 17:13:49 -05:00
German Andryeyev c9bace9b71 SWDEV-311271 - Fix Windows mempool management
Windows path still uses multi threading implementation. Hence, in graphs
all nodes are executed in a queue thread and that requires to manage
mempool in the queue thread. However, the spec allows to destory memory,
allocated in a graph, outside of the graph's execution. That may cause
mempool management to go out of sync.

Change-Id: I0ffb2244b3cb720455ed44d1b3e2487fa8959a77


[ROCm/clr commit: 4f6b0da028]
2024-02-13 17:16:06 -05:00
Anusha GodavarthySurya 3dc533e1e1 SWDEV-439628 - hipGraphExecKernelNodeSetParams to update graph kernel node params with graph performance optimizations.
During hipGraphExecKernelNodeSetParams kernel function can also be updated.
Hence size required for kernel parameters differs from what is allocated during graphInstantiation.
So, create new 128KB kernel pool and allocate kernel args from the pool.
If the pool is full create new 128KB pool. Release kernel pools when graph exec object is destroyed.

Change-Id: I9567946d63400c79cbfd4c5439c654c92557ceae


[ROCm/clr commit: e9957151f3]
2024-02-05 05:08:11 +00:00
German Andryeyev 3a4261966c SWDEV-311271 - Release freed memory from MemPools
Runtime has to release extra memory, held by the pools,
in synchronization points for event, stream or device.

Change-Id: Id533a5e1d137812aa72bdfe101b4b333c6a43d66


[ROCm/clr commit: 3fa4e31180]
2023-12-19 13:47:04 -05:00
Ioannis Assiouras ab411c8f34 SWDEV-434702 - get the nullstream in constant time in iHipWaitActiveStreams
Change-Id: Ib92cc4d2ca1b725cf30b24cdd711c873fd513d95


[ROCm/clr commit: 8bdda90071]
2023-12-03 19:05:18 -05:00
Anusha GodavarthySurya 3bdedf0cc7 SWDEV-351966 - Dispatch table for hip runtime
Change-Id: Ie4a44fa8cf1ff9c152146070bbbf6b0636d4e325


[ROCm/clr commit: 5e21f0c6bd]
2023-11-22 01:11:19 -05:00
sdashmiz fcfa0d0733 SWDEV-332969 - [ABI Break]Substitute hipArray* with hipArray_t
- hipArray will be an internal struct from rocm6.0

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Icf97fe96b87be8532098cd7f9ceaad099f99c9b9


[ROCm/clr commit: c089ef4a2b]
2023-10-12 12:09:19 -04:00
Anusha GodavarthySurya 661b3381da SWDEV-408701 - Avoid adding duplicates when no node is captured in cross stream
Change-Id: Iccbddaf9db73238aa938f8b3e8ec410f4a86d524


[ROCm/clr commit: c7e4e9c2f4]
2023-10-09 13:15:47 -04:00
German Andryeyev 2d492a201b 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


[ROCm/clr commit: fbea58ba11]
2023-09-22 13:04:27 -04:00
Sourabh Betigeri 5d160eb7ee SWDEV-326798 - [ABI Break] Fixes null stream sync behavior
Change-Id: I84ad21f61779145c198dc68bf0fe02a57d34bf64


[ROCm/clr commit: 3f88fe850b]
2023-09-21 11:57:58 -04:00
Anusha GodavarthySurya d8022cd081 SWDEV-407568 - Move graph implementation to hip namespace
Change-Id: I7023f202a7e3eb25b17db6d3e361205594ae81a5


[ROCm/clr commit: fd97dde1e6]
2023-07-26 06:52:45 +00:00
sdashmiz 4dd4970313 SWDEV-408586 - set device active when malloc is called
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Ib930d997b7d544d8b6fb42d2fea01fa8a4418e98


[ROCm/clr commit: 173de06658]
2023-07-13 11:39:58 -04:00
Anusha GodavarthySurya 729779a3b3 SWDEV-399098 - Change hip_init lock to use std::call_once
Updating hip_init lock to use std::call_once fixed Performance
drops in TF benchmarks for FP16

Change-Id: Ib1125ac66806b232057ba183e296ea4d0642d08d


[ROCm/clr commit: 2f83719d12]
2023-06-01 02:04:29 -04:00
sdashmiz 9a3d3aef8c SWDEV-360031 - Event record clean up
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Ic7b5edd501c5f61b2bce87252ac040cbc4083006


[ROCm/clr commit: 1e9dfdfe99]
2023-05-29 11:42:16 -04:00
Ioannis Assiouras 7adb0089c6 SWDEV-397356: Move HIP_API_PRINT after HIP_INIT so that the begin function call gets printed
Change-Id: I99b655596741c19bc483647794ae8b4f6e6f2843


[ROCm/clr commit: d88f0358b0]
2023-05-04 18:46:21 -04:00
German ca2d9bfbff SWDEV-353281 - Don't add the same stream into the list
Change-Id: I7f41de68b669dc759bdb11657dd897ad57e368fc


[ROCm/clr commit: 31697779bb]
2023-04-25 10:21:55 -04:00
Jaydeep Patel 06bc6d9980 SWDEV-391178 - Extern monitor to avoid copy in multithreading.
Defining monitor in header cause copy and hence it's moved to cpp.

Change-Id: Ib07bbde2808d9cb2af9349076f777e8a5b28d210


[ROCm/clr commit: e8eb1772f2]
2023-04-19 00:58:49 -04:00
German 56dedad98b SWDEV-380703 - sync all streams individually
Avoid syncing blocking streams with the default stream,
since that introduces extra command dependencies and
doesn't allow to destroy memory after last submission

Change-Id: I618e9bd2091c4cf9157125612d8c4759030c5a80


[ROCm/clr commit: 1e88d2c52f]
2023-04-05 16:37:49 +00:00
Christophe Paquot e1b8ba3750 SWDEV-301667 - Optimize lock for graph global capture mode
Remove unneeded lock and add smaller scope

Change-Id: I03a437057d54ce2d72c07a080bb872693b7f3f6c


[ROCm/clr commit: 6e86d29a58]
2023-04-05 10:58:14 +00:00
Sourabh Betigeri 21d9eb467d SWDEV-387810 - Fixes to verify if the current stream matches the capture stream
- invalid to synchronize or query the execution status of a capturing stream but non-capturing streams can.

- If any local thread has an ongoing or concurrent capture sequence initiated with hipStreamCaptureModeGlobal, it is prohibited from unsafe calls

Change-Id: Ifa641e807216d3b7c3e8c2fb1be2f7a50bd641df


[ROCm/clr commit: 7809d2846b]
2023-04-05 10:53:33 +00:00
Jaydeep Patel 37769589f3 SWDEV-383056 - Don't sync with dst device for hipMemcpyAsync.
Change-Id: I28530e6bd870d617507592576295fc9e7eed1475


[ROCm/clr commit: 57fa5938fe]
2023-02-28 23:21:01 -05:00
Sourabh Betigeri 02a3fcff26 SWDEV-326798 - Revert "SWDEV-326798 - Changes in stream sync behavior"
This reverts commit 1932e88970.

Reason for revert: HIP tests on windows fails

Change-Id: I795ed19d76a41e2fd9971414cefa5bd3be45d4bc


[ROCm/clr commit: 08c8972d97]
2023-02-28 02:28:12 -05:00
Sourabh Betigeri 1932e88970 SWDEV-326798 - Changes in stream sync behavior
Change-Id: If6d0b3876a9bf197c7e49273eaa5ca5bfae46d0b


[ROCm/clr commit: 51adec2730]
2023-02-27 16:48:14 -05:00
Ioannis Assiouras ea7d5037b9 SWDEV-381402 - Remove unused getNullStream() from device. Make stream destructor private.
Change-Id: Idde30a8bfe97a525bd9f9fb50698a5cb14b798fc


[ROCm/clr commit: 06927fd3c1]
2023-02-24 10:42:46 +00:00
German Andryeyev 2e0fd95d74 SWDEV-353281 - Add support for MemPool in graphs
Implement hipDeviceGetGraphMemAttribute, hipDeviceSetGraphMemAttribute
and hipDeviceGraphMemTrim

Change-Id: I4f8fc1250ce1e8b7636d43d59ba7343158e45088


[ROCm/clr commit: 314bdba632]
2023-02-23 12:49:53 -05:00
Ioannis Assiouras 2633e62801 SWDEV-381402 - Derive hip::Stream from amd::HostQueue
Change-Id: I6c1aca5eb350c32d974ae4ffcc725705355956d8


[ROCm/clr commit: e3633dc8f4]
2023-02-21 18:12:03 -05:00
Ioannis Assiouras 5007a5f15d SWDEV-381402 - convert host_device to host_context of type amd::Context*
Change-Id: Ic1cb9a3fa64e16699fad7e9ec6679f1d34b14bef


[ROCm/clr commit: 8b87ccb8cc]
2023-02-16 17:49:12 -05:00
pghafari 24b7348137 SWDEV-377571 - adding scopelock for hipDeviceReset
Change-Id: I3dd95a40d6abff721a4774f26e99d1162bafdfa1


[ROCm/clr commit: 03f62b90ef]
2023-02-07 11:29:20 -05:00
Ajay GunaShekar 01fe2ea09e SWDEV-372757 - Don't destroy null queue in MT
This reverts commit 3afbe3a155.

Reason for revert: patch does not fix all stream hangs. So another patch was merged which fixes all issues.

Change-Id: I332d1ea29c23747b46b7667fe3e34e0ceefd2b23


[ROCm/clr commit: 1f4176062b]
2023-01-25 23:41:16 -05:00
Anusha GodavarthySurya f681854310 SWDEV-376407 - Track manual nodes added during capture
Change-Id: Ic44f842c303eed0eff08b6ee5922976d96a52c71


[ROCm/clr commit: d422ad0ec1]
2023-01-18 03:27:41 -05:00
sdashmiz 42a08627ef SWDEV-360031 - check for stream capture finish.
- stream capture should be done before any sync APIs.

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I3d65f67ee68777be71f97f48d460ccaefdd4e1af


[ROCm/clr commit: be966acb0c]
2023-01-16 13:09:24 -05:00
Ajay 433f99686b SWDEV-369556 - Unit_hipMemGetAddressRange_Negative cases
- return value for invalid device ptr
- offset greater than size

Change-Id: I8bcf878c3c1c0a29836ea664bfb9048e1114b74e


[ROCm/clr commit: c6a7ce66bb]
2023-01-10 06:57:54 -05:00
German 3afbe3a155 SWDEV-372757 - Don't destroy null queue in MT
Skip destruction of the null queue for MT. Windows can destroy worker
thread on exit during the stream destruction, causing a race condition.

Change-Id: I3e4bc3ab2b477d38c0aec1fc59e6f1af0f8f6b0f


[ROCm/clr commit: f39655c0c8]
2023-01-09 00:03:09 -05:00
German Andryeyev d8f1606489 SWDEV-360031 - Erase destroyed stream from capture
Parallel streams can be destroyed during capture. Make sure runtime
removes the destoryed streams from the list of parallel captured streams

Change-Id: I46b6cbb951e8711f0bf02f2826c3b890b2541ffe


[ROCm/clr commit: 38ad6234f9]
2023-01-03 13:34:07 -05:00
pghafari b0bc6d6c7e SWDEV-356549 - del Null strm in destroyAllStreams
Change-Id: Ie04172ee39e6333247d07791dffda753a8b9ef41


[ROCm/clr commit: a643c199de]
2022-12-29 15:45:54 -05:00
Ioannis Assiouras be16c31b60 SWDEV-374402 - Added check for invalid events in hipExtLaunchKernel
Change-Id: I8dfd69aa1ef38971a72b98c723d2099347a66d11


[ROCm/clr commit: b83271b4ca]
2022-12-21 12:37:12 -05:00
Ioannis Assiouras f3c412b183 SWDEV-369548 - Disallow opening an ipc mem handle in the originating process.
Change-Id: Icce5e41a220566141bd7d92b7199d477f60bed8e


[ROCm/clr commit: 30e740023b]
2022-12-14 04:52:21 -05:00
sdashmiz bafdaa4f31 SWDEV-365587 - reuse the id from capturing stream
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I65f5be3fcc4cffcf3eb5762fd0b43fd051c145c2


[ROCm/clr commit: b665b9a6e8]
2022-11-24 10:35:14 -05:00
sdashmiz dc97f3719e SWDEV-366974 - add proper error
- Null stream correct error when blocing stream is being captured

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I0d902a4f4ef02736a6db60ba7bffa7c20011bc84


[ROCm/clr commit: c5e7b56463]
2022-11-21 10:39:21 -05:00
Rakesh Roy f149b21399 SWDEV-351969 - TLS Optimization
- Aggregate all TLS(Thread Local Storage) variables into a single class
- This is to improve cache accesses per thread

Change-Id: Ic8361eaeae290fff00254684e309471958365eb9


[ROCm/clr commit: 8b391ef18c]
2022-10-09 22:08:14 -04:00
Saleel Kudchadker 79e1355f3a SWDEV-301667 - Pretty print logs
Change-Id: Ide95a5f8d35d81d4a9eb658f40ae2e82ffa3d97f


[ROCm/clr commit: 1ea4d588ef]
2022-08-30 12:32:11 -04:00
Anusha Godavarthy Surya 020a8dcede SWDEV-344166 - Updated HIP APIs to return hipErrorNoDevice when there are no devices in the system
Change-Id: I636828ff39d3b404f89bcc6e2cb7348d92c897ff


[ROCm/clr commit: 0e2b348ef4]
2022-07-22 06:59:19 -04:00
Sarbojit Sarkar 86481e460d SWDEV-333073 - HIP_INIT_API to handle no return case
Change-Id: I78d43e88cc196047a4cb5d6fcf756339c0e46e80


[ROCm/clr commit: 1074b22c48]
2022-06-24 12:53:18 -04:00
Jaydeep 147485a9aa SWDEV-336548 - Check for valid hipArray pointer in hipFreeArray
Change-Id: Icf0d47eeca7b5dd390a6a9c53b622b3680688ca4


[ROCm/clr commit: 1032581ded]
2022-06-18 00:56:33 -04:00