Commit Graph

95 Commits

Author SHA1 Message Date
Saleel Kudchadker 058b2702db SWDEV-301667 - Logging refactor
- Remove newline from logging as log function internally inserts a new
line

Change-Id: I25eb2242a1f1e87cf811bcc373d1d485b2e027a8
2023-12-07 12:12:57 -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
sdashmiz 9b567e1799 SWDEV-417075 - add hipDrvAddMemCpyNode
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Ie631d7b1788f10171a29d463759a3cba3b2b2007

SWDEV-417075 - add hipDrvGraphAddMemcpyNode

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I6bab3310919643e119cd0004276907e223641cfb
2023-10-31 09:55:42 -04:00
Anusha GodavarthySurya 38d2c56784 SWDEV-422207 - Handle nonkernel nodes for graph opt
- Support graph with different types of nodes with single
branch when DEBUG_CLR_GRAPH_PACKET_CAPTURE flag is enabled

Change-Id: I149a8629769cd0d5849ffefb04f1352668a685b6
2023-10-24 18:36:06 +00:00
Saleel Kudchadker 5662d4037c SWDEV-408180 - Address possible cornercases
- Address corner cases that can arise with the new
hipMemcpyDeviceToDeviceNoCU enum
- Better log

Change-Id: I6035b901f8d616741054b7a5ff4f67956329ac57
2023-10-23 16:54:08 -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
Satyanvesh Dittakavi f16d336e32 SWDEV-375607 - Fix hipGraphExecUpdate behavior
Addresses the below scenarios like parameters mismatch
in memcopy node, difference in the count of nodes, difference
in the dependencies of the nodes.

Change-Id: I31c6516fb27cc1007809f1b50306fdb0c2356ccc
2023-09-21 11:17:49 -04:00
Ioannis Assiouras 315082e554 SWDEV-419996 - Allow both kernelParams and extra arguments to be set to null
When kernel function expects no parameters no error should be returned
if both kernelParams and extra arguments are set to null.

Change-Id: I5941bcc400b6fb380e623bdae0233ae3e4f73815
2023-09-07 12:57:46 -04:00
Saleel Kudchadker e1e5d071ba SWDEV-301667 - Port optimization to save extra packet to graphs
Change-Id: Ibaf64a4efe070c42620e6e153c1862a4a0b15664
2023-08-23 16:58:21 -04:00
Anusha GodavarthySurya f76a40c26d SWDEV-415772, SWDEV-414682 - Fix childgraph node execution
Change-Id: If9ffc08d98a57b8daa5f131f72ef1bf2317f29e1
2023-08-18 00:45:00 -04:00
Anusha GodavarthySurya fd97dde1e6 SWDEV-407568 - Move graph implementation to hip namespace
Change-Id: I7023f202a7e3eb25b17db6d3e361205594ae81a5
2023-07-26 06:52:45 +00: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
Jaydeep Patel a8164d3e12 SWDEV-401781 - Auto Clean removes from map so check before remove while submit mem alloc node command.
Change-Id: Id004f75b307c2c769dee556c3d18e781830bcae1
2023-06-29 02:29:01 -04:00
sdashmiz cc85289739 SWDEV-403063 - Clean up hip graph
- Replace dynamic allocation with embedded struct in hip graph

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Idfe3f7393fa50d6e510d4c88f779408f96d3accb
2023-06-15 12:17:09 -04:00
sdashmiz 8578da8a3d SWDEV-367877 - Detect cycle in graph
- detect cycle when graph is instantiated

- remove level calculation from add/remove node

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

graph-cycle-corrections

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I8a3cec9a5a503aac6ea1e85ff3dd2b972790fb1d
2023-05-18 09:44:39 -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
Jaydeep Patel b6aa27d4a3 SWDEV-389647 - SWDEV-388950 - Check device id same while set params.
GraphMemcpyNodeSetParamsFrom/ToSymbol APIs neew to check device id for
original src/dst is same as what is passed in while set.

Change-Id: If0b610808223dce9115562bb5e9b31c8eaa2df22
2023-04-25 13:24:26 -04:00
Jaydeep Patel 2576153acd SWDEV-388943,SWDEV-388954 - Corrected validations for memcpy kind.
Change-Id: I8338111ac46e4eba279d53969d12df3a23552049
2023-04-19 01:00:50 -04:00
Jaydeep Patel 7215451db9 SWDEV-388958 - SWDEV-388929 - Kind can be hipMemcpyDefault for H2D and D2D and srcMemory can be allocated using hipHostMalloc for H2D.
Change-Id: I187ff850ebb890b357ee03500105b71468508ea2
2023-04-19 01:00:28 -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
Ajay c603d5004a SWDEV-384184 - hipGraphKernelNodeSetAttribute negative scenarios
Hardcoding check for accessPolicyMaxWindowSize
since its returned from Hardware thats not available yet

Change-Id: I3a09fc9ace3027c7d5533bbbc7da5e18f43591ec
2023-04-05 16:37:04 +00:00
Jaydeep Patel 17553de9b7 SWDEV-388942 - hipGraphMemsetNodeSetParams & hipGraphExecMemsetNodeSetParams differs in validation as per cuda.
Change-Id: Ie013aa5e94e8c468d949797890fb6b629e97a323
2023-04-05 10:54:22 +00:00
Jaydeep Patel ec227d560a SWDEV-388926 - Original and new memory should be from same device for hipGraphExecMemsetNodeSetParams.
Change-Id: I32bd56db0b80d748e3ae0737a38ea975738bdab7
2023-04-05 10:54:10 +00:00
sdashmiz f6c36be185 SWDEV-386685 - return proper error
- if graph is already instantiated there cant be a second instance in
  case nodes are free or alloc

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I51e2ca8ade24799da96ed126a26c5ea3bad6f452
2023-04-05 10:53:51 +00:00
sdashmiz ae631aaa32 SWDEV-377862 - kind does not show on dotprint
- for to/from symbols nodes the correct kind is not showing

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Idf203976b71fcca67b2dd989de0daba4d0554b6d
2023-03-10 16:39:07 -05:00
Sourabh Betigeri ec8ab9b29c SWDEV-385089 - Fixes hipGraphLaunch functionality accounting for the existence of MemFree node or already freed memory when the same graph is launched multiple times
Change-Id: I49beb49ad4e6db4a2dd5b8c8cc8ed11ff0e4e132
2023-03-09 21:10:13 -05:00
Ioannis Assiouras 58e05898d1 SWDEV-386926 - Added check for correct node type in hipGraphMem[Alloc/Free]NodeGetParams
Change-Id: Ic8446210a683d1329391288d0ed99d835c5aa140
2023-03-09 20:05:28 -05:00
Saleel Kudchadker 8028d327e9 SWDEV-345213 - Use the right accessor
- Use correct accessor to fetch memory objects. This checks the svm map
and arena maps

Change-Id: I84515330bb530cfe2b39abf30e1e659938f06806
2023-03-06 19:35:40 -05:00
sdashmiz a69db9b426 SWDEV-382838 - inetrmittent failure
- test fails intermittently because object is not cleared correctly

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I88daf3dc08bb83d6d3f047ff48a63c8f856fb0bf
2023-02-27 16:23:04 -05: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
sdashmiz e34be4fbee SWDEV-377862 - wrong format for memcpy1d
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Ide6d252083b1812b0ad9cd182b1435e3e59b3aa1
2023-02-14 09:47:04 -05:00
Sourabh Betigeri 191b468d89 SWDEV-375194 - Fixes graph dot file descriptions to include labelId matching CUDA
Change-Id: Ia0e6b77e38678b13457f86755ed8f3b852c9b7a1
2023-02-13 19:43:12 -05:00
Sourabh Betigeri 4cbf9a4a16 SWDEV-375202 - Fixes print formatting for flags in hipGraphDebugPrint() to match CUDA
Change-Id: I2d85fc38d2c65bc12534109883fe00802e77e62d
2023-02-09 13:07:57 -05:00
German Andryeyev 0fe03b6494 SWDEV-353281 - Switch Graph to operate with stream
MemPool was designed to use hip::Stream, but graph implementation uses
amd::HostQueue. Hence switch graph to hip::Stream management.

Change-Id: Ia319389de45e4c3c6043d17473279a6f27a13140
2023-02-06 10:11:55 -05:00
Jaydeep Patel f9e27bcdd4 SWDEV-377804 - Initial commit to support hipGraphInstantiateFlagAutoFreeOnLaunch
Change-Id: I7a35becb6c98a6ff70264e141317d98be7457a37
2023-02-01 11:51:39 -05:00
sdashmiz 34d087da93 SWDEV-361623 - correct remove edge behaviour
- remove node dependency before checking parents
- reduce edge level acording to new value of node

Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: Id4bff1684f7e0b42beeebc4d2e009bfdb507fb5f
2023-01-31 12:48:59 -05:00
Jaydeep Patel 70bfc6145b SWDEV-379125 - Check only if there is attr set for graph kernel node.
Change-Id: I8768b33ad27e75eb753d99d682edf60b31b240df
2023-01-24 09:51:12 +00:00
Anusha GodavarthySurya d422ad0ec1 SWDEV-376407 - Track manual nodes added during capture
Change-Id: Ic44f842c303eed0eff08b6ee5922976d96a52c71
2023-01-18 03:27:41 -05:00
sdashmiz 52bf09aac6 SWDEV-374374 - memset memory mapping should not change
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I4cc3b1ac5a59fe5c9ae060f4d5d189dc63ca450c
2023-01-17 14:41:24 -05:00
Jaydeep Patel fdecc1b351 SWDEV-375366 - SWDEV-375351 - Handle HtoH case for graph mem cpy impl.
Change-Id: I5a8c3c3c22db045f714b0443b8d70a8c6b4a8cea
2023-01-16 11:37:57 -05:00
German Andryeyev eef47ca24a SWDEV-353281 - Initial support of memalloc in graph
Add memory allocation support in graph. Current implementation uses
cache from mempool  to hold the allocations which belong to the graph.
Also the resource tracking is disabled at this moment because mempool
operates with hip::Stream objects, but graph has execution with
amd::HostQueue objects.

Change-Id: I54fe3250126d24f5a26ada975f37d429bb4ef17b
2023-01-13 13:06:59 -05:00
Jiabao Xie 03200953e5 SWDEV-374375 - moving nullptr check into hipGraphNode::isValidNode
Change-Id: Ic9264521d6f0b36ffc948ca9feeaa70eb6e98eb6
2023-01-09 16:27:38 -05:00
Jaydeep Patel f2b0542442 SWDEV-374370 - Propogate element size to blit kernel.
Change-Id: I8a3355c62947265be34e6a2befd26f86b3dc6cd2
2023-01-01 23:54:09 -05:00
Anusha GodavarthySurya 0fcc5557bd SWDEV-325711 - Node can be enabled/disabled only for kernel, memcpy and memset nodes
Change-Id: Id9c19a14655732d61fccee9c3d1ffa0614123468
2022-12-13 05:08:38 +00:00
Anusha GodavarthySurya 5bcfb07c85 SWDEV-372521 - Fix copy of unused kernel attributes
Change-Id: Ib93f27d68cedac2182ba6dac0c234cc71c2c4229
2022-12-13 03:44:10 +00:00
pghafari 5acc2cdcc2 SWDEV-368166 - hipGraphAddMemcpyNode1D paramcheck
adding parameter check for hipGraphAddMemcpyNode1D

Change-Id: I94dc944bd55ea04b8e9288a27c8f58dd3720161b
2022-12-07 18:29:11 -05:00
Anusha GodavarthySurya 16b31b0c54 SWDEV-325711 - Correct formatting
Change-Id: Ie26159e0bb3315cf7c3de1eb682f23ef343df0f2
2022-11-30 05:15:01 +00:00
Anusha GodavarthySurya 3a9621574c SWDEV-325711 - Added implementation for graph API hipGraphKernelNodeCopyAttributes
Change-Id: I576d0e81c69097fe881556f6d022bb7c7ca3287b
2022-11-29 02:53:14 +00:00
Anusha GodavarthySurya 1ab46fe7ae SWDEV-325711 - Added implementation for graph APIs GetEnabled & SetEnabled
Change-Id: I15a165b3dc548d00b7f5458e1b322b192b8c0d76
2022-11-28 21:50:36 -05:00