Commit Graph

141 Commits

Author SHA1 Message Date
Jatin Chaudhary 4b95e7bc87 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
2024-07-16 11:00:29 -04:00
Anusha GodavarthySurya bf4d10ff61 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
2024-05-28 06:28:17 +00:00
German Andryeyev f296159f62 SWDEV-353281 - Change pool type for graphs
Under ROCr physical allocations don't have initial VA and require extra
flag in ROCclr. Add an option to have a mempool of physical allocations.

Change-Id: I4d062fe0dd8113d4eaf6e8b51749ed56d8701d1e
2024-03-25 10:21:05 -04:00
Ioannis Assiouras be2bdabb76 SWDEV-430437,SWDEV-434702 - Split the streamset per device
Change-Id: If1bcca45825c9899462bb95ed6f637f5af806cc8
2024-03-18 19:08:52 -04:00
jiabaxie 14bcbcc25b SWDEV-450204 - hipGetProcAddress check for null corrected
Change-Id: Ic34b0d561d3d70f3411a60924a64c3b89954394f
2024-03-13 16:44:08 -04:00
German Andryeyev 17d0c166d2 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
2024-03-05 12:53:09 -05:00
German Andryeyev d808ae6782 SWDEV-311271 - Update mempool errors
Add extra validations for negative tests.

Change-Id: I7b2879b8840b5d1b6c5cb0d919a651cd868b7529
2024-02-28 17:13:49 -05:00
German Andryeyev 4f6b0da028 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
2024-02-13 17:16:06 -05:00
jiabaxie 0479cdb3dd SWDEV-437702 - implement hipGetProcAddress
This should be used in place of dlsym or GetProcAddress (linux and windows respectively)

Change-Id: I5501b538e03892e8e5a2282678d848fcaf21d911
2024-02-08 11:26:02 -05:00
kjayapra-amd 7d5b4a8f7a SWDEV-437832 - Changes to update host unified memory and iommuv2 flags.
Change-Id: I88998cf57c21fc446fa28e250f826c607923670b
2024-02-07 06:27:47 -05:00
Satyanvesh Dittakavi a6841e3f43 SWDEV-400448 - SWDEV-392872 - Optimize to add lock only if its null stream
Change-Id: Ia905109a295614e8ce4e2bd24261c86ba8138178
2024-02-07 04:51:54 -05:00
Satyanvesh Dittakavi 8d265838cb SWDEV-400448 - SWDEV-392872 - Add lock to NullStream
Fetching null stream's logic has changed earlier from amd::HostQueue
to hip::Stream. This seem to cause some timing difference between
checking for null stream and creating it due to which issues are
observed in multithreaded applications using default stream.

Change-Id: Ie02365dec537275d23a1d225de9811e2fd3a9c55
2024-02-05 02:58:23 -05:00
Anusha GodavarthySurya e9957151f3 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
2024-02-05 05:08:11 +00:00
kjayapra-amd b366a7c992 SWDEV-437832 - Adding device property to check if the device is accelerator.
Change-Id: I8349e99c03422c268bbb60a8c143bd492d9cec09
2024-02-05 05:08:11 +00:00
German Andryeyev 3fa4e31180 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
2023-12-19 13:47:04 -05:00
Anusha GodavarthySurya 3e72b8d1e1 SWDEV-436405 - Add hipGetDevicePropertiesR0000 and hipChooseDeviceR0000 to hip dispatch table
Change-Id: I5b373ac030502eb88477d20a1d216bc48369b51d
2023-12-15 06:26:52 -05:00
Jatin Chaudhary d5e596c975 SWDEV-434226 - populate correct output in mempool supported handle type query
Change-Id: Iabbf9c0b54d9978671e3492f13660917499a03fa
2023-12-13 04:40:41 -05:00
Jatin Chaudhary db909b2a1e SWDEV-430619 - copy uuid via memcpy
If uuid is copied via strncpy it will stop at first null character. We
  need to copy all 16 bytes which might have a null on windows.

Change-Id: I8667919cb251133eec3333a23768c356879727e8
2023-12-12 04:09:05 -05:00
Rahul Garg afc28b091e SWDEV-427855 - hipamd change for profiler and TF fix
This reverts commit 57cb840058.

Change-Id: Id69e47a1afd336ae1edb9c8e173be27e7b9dcc8d
2023-12-05 20:33:48 -05:00
Anusha GodavarthySurya 5e21f0c6bd SWDEV-351966 - Dispatch table for hip runtime
Change-Id: Ie4a44fa8cf1ff9c152146070bbbf6b0636d4e325
2023-11-22 01:11:19 -05:00
Rahul Garg 57cb840058 SWDEV-427855 - Revert "SWDEV-427855 - hipamd change for profiler and TF fix"
This reverts commit 3b9963c499.

Reason for revert: <Need rocprofiler changes to avoid PSDB failures>

Change-Id: I856b7ea30744f1b7bb099b6adbce2155201be539
2023-11-16 00:20:54 -05:00
jiabaxie 3b9963c499 SWDEV-427855 - hipamd change for profiler and TF fix
Change-Id: If32eb0ee152f3f46741a8277689363181c8753e8
2023-11-15 23:36:52 -05:00
German 694fe4bedb SWDEV-427689 - Report LUID in Windows
Pass LUID infromation from PAL to HIP device properties.
NodeMask is calculated based on the order of devices in PAL

Change-Id: Ic53707b68b16f392e5284a0105bf1f3941b46653
2023-10-18 15:07:39 -04:00
Jatin Chaudhary 56f3b2563c SWDEV-306642 - Move the deprecated function/struct to hip_device_deprecated.cpp
Change-Id: Id1f8db09271c537a200bc090ba1feaacfb023b88
2023-10-16 21:42:18 +01:00
Jatin Chaudhary 2989840511 SWDEV-306642 - [ABI Break] Add texture/surface/device capabilities device struct entries
- alias hipGetDeviceProperties to hipGetDevicePropertiesR0600
- alias hipDeviceProp_t to hipDeviceProp_tR0600
- remove gcnArch from new device property struct
- add new requested struct members

Change-Id: If3f5dbef3d608487d9f6f419285f4bf577ea9bf0
2023-10-12 11:16:18 -04:00
Maneesh Gupta 8c89d16572 Revert "SWDEV-264166 - [ABI Break] goodbye gcnArch, hello gcnArchName"
This reverts commit f136a576f5.

Change-Id: Ia7b9ca115be4f9591b195194eed967fc6c330012
2023-07-31 21:41:12 -04:00
Jatin Chaudhary f136a576f5 SWDEV-264166 - [ABI Break] goodbye gcnArch, hello gcnArchName
Change-Id: I4b31284243a801f92f0be9468c25db7d027d9a13
2023-07-25 02:51:29 -04:00
pghafari fb82b292c2 SWDEV-399734, SWDEV-399733 - update maxGridDim for y and z
Change-Id: Id5b1dd2491798dd20a0672362f445ab4de164f6d
2023-05-17 19:03:04 -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
pghafari 31b362bf6e SWDEV-369567 - dimension check update
Change-Id: I31deb5070d4852db7dd6d37f9a514965f387698e
2023-05-02 08:04:04 -04:00
sdashmiz 261ce9837c SWDEV-387508 - do not treat uuid as string
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I4de88330650eba4e4259686cdb5fb089b17aa8e4
2023-04-25 09:52:12 -04:00
German 1e88d2c52f 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
2023-04-05 16:37:49 +00:00
Sourabh Betigeri 08c8972d97 SWDEV-326798 - Revert "SWDEV-326798 - Changes in stream sync behavior"
This reverts commit 51adec2730.

Reason for revert: HIP tests on windows fails

Change-Id: I795ed19d76a41e2fd9971414cefa5bd3be45d4bc
2023-02-28 02:28:12 -05:00
Sourabh Betigeri 51adec2730 SWDEV-326798 - Changes in stream sync behavior
Change-Id: If6d0b3876a9bf197c7e49273eaa5ca5bfae46d0b
2023-02-27 16:48:14 -05:00
Ioannis Assiouras 06927fd3c1 SWDEV-381402 - Remove unused getNullStream() from device. Make stream destructor private.
Change-Id: Idde30a8bfe97a525bd9f9fb50698a5cb14b798fc
2023-02-24 10:42:46 +00:00
German Andryeyev 314bdba632 SWDEV-353281 - Add support for MemPool in graphs
Implement hipDeviceGetGraphMemAttribute, hipDeviceSetGraphMemAttribute
and hipDeviceGraphMemTrim

Change-Id: I4f8fc1250ce1e8b7636d43d59ba7343158e45088
2023-02-23 12:49:53 -05:00
Ioannis Assiouras e3633dc8f4 SWDEV-381402 - Derive hip::Stream from amd::HostQueue
Change-Id: I6c1aca5eb350c32d974ae4ffcc725705355956d8
2023-02-21 18:12:03 -05:00
pghafari 03f62b90ef SWDEV-377571 - adding scopelock for hipDeviceReset
Change-Id: I3dd95a40d6abff721a4774f26e99d1162bafdfa1
2023-02-07 11:29:20 -05:00
pghafari a643c199de SWDEV-356549 - del Null strm in destroyAllStreams
Change-Id: Ie04172ee39e6333247d07791dffda753a8b9ef41
2022-12-29 15:45:54 -05:00
Maneesh Gupta 8f4e94d532 SWDEV-342014 - Handle partial fills in hipDeviceGetName
Change-Id: Ic9f1743c6a8439d88acc6dd1ed496013d551f6ec
2022-11-11 14:52:48 -05:00
Julia Jiang 3415f0a56e SWDEV-342013,SWDEV-342014 - Update validation on hipDeviceGet and hipDeviceGetName
Change-Id: I719da6169ce9f505449e07775cb94a5718f79ca3
2022-10-31 11:44:40 -04:00
Maneesh Gupta d328d72fab Revert "SWDEV-264166 - Remove gcnArch"
This reverts commit ab303e6440.

Reason for revert: Moved out to future release

Change-Id: I36b046c8681371baa9e0ccb69d46dad633ee5706
2022-07-27 05:22:48 -04:00
Jason Tang ab303e6440 SWDEV-264166 - Remove gcnArch
Change-Id: Ief4bdbdd5373adb73a291633067c9a8e11f05a32
2022-07-26 11:49:19 -04:00
German Andryeyev 5957ff9f7b SWDEV-311271 - Make sure memory pool can accept default stream
Add lock protection for access to the pool list.
Remove destroyed stream from the list of the safe streams

Change-Id: I1863b89bd3f5e188c161227cc790c3adaf72cc58
2022-04-18 10:34:21 -04:00
haoyuan2 cb4aabd285 SWDEV-328274 - Move DLLMain from VDI layer to HIP/OCL layers
Change-Id: Ibd3388f0981672cd209d7370f8a28b2883abdea2
2022-04-12 11:00:20 -04:00
German Andryeyev 539d264eb0 SWDEV-311271 - Initial mempool implementation
HIP_MEM_POOL_SUPPORT controls memory pool support in runtime.
Currently it's disabled by default. The initial change doesn't
include: IPC, MGPU, virtual memory alloc, suballoc, defragmentation,
internal dependencies.

Change-Id: Ibed8528ebec698b045ebb247e49c0ecd6e587ed7
2022-03-31 09:21:37 -04:00
Christophe Paquot 2ef41ff5be SWDEV-323899 - More capping of caps
Change-Id: If8ba22d01326b85455eaaee55e1e2a4b9832ebb2
2022-03-22 11:02:49 -04:00
Christophe Paquot 375b8e5e8c SWDEV-323899 - Cap deviceProps.maxTexture1DLinear to INT32_MAX
Change-Id: Iacfd4f44e5169994ff11b6303be63a15d5935955
2022-03-16 16:54:27 -04:00
Satyanvesh Dittakavi 2fd90ec7a4 SWDEV-317716 - Add hipDeviceGetUuid API
Change-Id: I320c7bc11ddd7617e0246f6faf19135ad7363e73
2022-03-16 00:23:44 -04:00
Ajay ba6d6b377d SWDEV-327299 - strncpy to memcpy to avoid overflow warning
Change-Id: I0bb5aed76e74b4580bae71b6cb1ef2c17293a126
2022-03-11 17:37:30 -05:00