Commit Graph

188 Commits

Author SHA1 Message Date
SaleelK 149dc17c90 clr: Optimize doorbell ring (#1030)
*Lay foundation to batch packets efficiently for graphs
*Dynamically copy packets with max threshold set with
DEBUG_HIP_GRAPH_BATCH_SIZE, if not stagger packet copy with pow2
*Default threshold for DEBUG_HIP_GRAPH_BATCH_SIZE is 256
*If TS are not collected for a signal for reuse, create a new signal.
This can potentially increase signal footprint if the handler doesn't run
fast enough.
2025-09-18 15:02:10 -07:00
systems-assistant[bot] c85200fc42 SWDEV-541096 - add hipEventWaitDefault and hipEventWaitExternal flags (#507)
Co-authored-by: Li, Todd tiantuo <Toddtiantuo.Li@amd.com>
2025-09-11 14:50:55 -07:00
Godavarthy Surya, Anusha 1be5c9870a SWDEV-524745 - Part-I Add multi device support for hip graph. Update nodes with DevId. (#812)
- The graph nodes have been updated to capture the device ID from the capture stream or the current device when explicitly added.
- Update the device ID for the memcpy node, ensuring that the device where the memory is allocated is taken into account for H2D and D2H pinned operations.

Co-authored-by: Anusha GodavarthySurya <Anusha.GodavarthySurya@amd.com>
2025-09-10 11:35:25 +05:30
systems-assistant[bot] 75602772aa SWDEV-538606 - Handle updateStreams from multiple threads (#505) 2025-09-10 11:24:52 +05:30
SaleelK c4537e8050 SWDEV-553126 - Improve logging (#835)
* Ability to mask COPY api usage in logs
* Show total graph nodes in logs
* Add another log level for detailed debug
2025-09-04 10:08:41 -07:00
Ioannis Assiouras 1017532916 SWDEV-546631 - Fix hipLaunchHostFunction in stream capture for windows (#654) 2025-08-28 07:51:50 +01:00
systems-assistant[bot] ded5b86e83 SWDEV-540609 - capture of MIOpen OCL kernels needs remainder globalWorkSize (#431)
Co-authored-by: Rakesh Roy <rakesh.roy@amd.com>
2025-08-26 16:11:31 -04:00
Danylo Lytovchenko 2ff2316227 Adjust clang format to the new versions, revert broken macro layout (#714) 2025-08-22 17:23:22 +02:00
Danylo Lytovchenko f7338717ae SWDEV-470698 - fix formatting, add format check workflow (#657) 2025-08-20 19:58:06 +05:30
Xie, Jiabao(Jimbo) 42a97a2c16 SWDEV-477219 - fix using external api calls on hipEventRecordWithFlags (#650)
Co-authored-by: Jimbo Xie <jiabaxie@amd.com>

[ROCm/clr commit: e8128f975f]
2025-08-15 13:40:52 -07:00
Dittakavi, Satyanvesh 263a0bc57d SWDEV-540272 - copy params 3D struct should be populated even for memcpy 1D graph node (#702)
SWDEV-540272 - copy params 3D struct should be populated even for 1D graph node

[ROCm/clr commit: b50d70564e]
2025-08-12 16:21:53 +05:30
Assiouras, Ioannis b443903ad8 SWDEV-533754 - Fixed mem leak in capturing gpu packets (#365)
[ROCm/clr commit: f094d16157]
2025-08-04 14:58:04 +01:00
Betigeri, Sourabh 52363f797e SWDEV-540629 - Update the current device ID (#699)
[ROCm/clr commit: 0313e20706]
2025-07-15 21:40:26 +05:30
Assiouras, Ioannis 3ea732b38a SWDEV-508965 - [6.4 Preview] Remove HIP_MEMSET_NODE_PARAMS struct (#121) (#364)
[ROCm/clr commit: 968f5599a8]
2025-05-21 21:16:42 +05:30
Jayaprakash, Karthik cde2a250ec SWDEV-493805 - Cleaning up launch parameters arguments. (#241)
[ROCm/clr commit: fa55557f46]
2025-05-06 15:06:13 -04:00
Godavarthy Surya, Anusha e4a499f22e SWDEV-522841 - Graph nodes must be created/launched on device where they are captured/created (#108)
[ROCm/clr commit: 2538d7f02b]
2025-04-29 22:20:39 +05:30
Godavarthy Surya, Anusha ff69bcc903 SWDEV-469422 - Avoid using of hipStream_t in internal methods (#69)
Change-Id: Ifd5362f371c846a88241927383cb95cf046548ef

[ROCm/clr commit: fb92683d86]
2025-04-28 15:09:11 +05:30
Godavarthy Surya, Anusha 0eb2e5e8f2 SWDEV-469422 - hipGraphNodeDOTAttribute change std::string members to const char* (#70)
Compiler creates global variables for every unique string

Change-Id: I4cf8dd3e763d16740096e345da67a7ef72f61515

[ROCm/clr commit: bbcb1f9c70]
2025-04-28 14:57:36 +05:30
Godavarthy Surya, Anusha 35a15ca3b2 Revert "SWDEV-492049 - Remove the handle of Phy Mem from Memobj" (#72)
This reverts commit dabe311bd8.

[ROCm/clr commit: 2259a8c01c]
2025-03-19 21:16:51 +05:30
Ioannis Assiouras efd1f3f012 SWDEV-509788 - Code cleanups in Event class
Change-Id: I4163ce6c1dabeaab92de13b51b6a46b7be83e2bd


[ROCm/clr commit: e9b33af45a]
2025-02-27 17:16:50 -05:00
Anusha GodavarthySurya c6bea0ea59 SWDEV-469422 - hipgraph remove static typecast to parent
Change-Id: I339250cfd26a7c04543722a82301acbb41c7d5d7


[ROCm/clr commit: 199e464402]
2025-02-14 11:09:32 -05:00
Ioannis Assiouras a349b23474 SWDEV-514686 - Fixed hipEventSynchronize/hipStreamWaitEvent for IPC events
Resolved an issue where hipEventSynchronize and hipStreamWaitEvent APIs
did not function correctly for events created with the hipEventInterprocess flag.
The bug caused the event to be incorrectly marked as "recorded,"
leading to these APIs failing to wait for the event as expected.

Change-Id: Ic9fdfaab2393beb93d6e0b83661545e902a63499


[ROCm/clr commit: 1cdfbfd270]
2025-02-11 18:43:06 -05:00
Anusha GodavarthySurya 5535f15104 SWDEV-469422 - hipGraph move to classes from structs
Change-Id: I0f9c8ef1161c0c92ebe0cce6844b2feacfee83f5


[ROCm/clr commit: 32e5b00c30]
2025-02-05 00:33:41 -05:00
Ioannis Assiouras 8169855390 SWDEV-510319 - Fixed random segfaults in graph tests
This change fixes random segfaults in graph tests that
are seen after the change make internal callbacks non-blocking.
The callback thread that decreases the GraphExec ref count
may now run after the runtime shutdown. This can cause a segfault
because the hip::device that is accessed in GraphExec destructor
is already destroyed during runtime shutdown. This patch ensures
that the hip::device object  stays alive until after the
callback thread completes.

Change-Id: I75a6ac01f27a0b2250bbd10ed389ebfb322927af


[ROCm/clr commit: 21c223f8df]
2025-01-25 09:54:15 -05:00
Jaydeep Patel 1d7b7cde76 SWDEV-457316 - Use phy memory obj stored in user data instead of querying from memObjs.
Change-Id: Id837eb00195d88b50904441f01cf8153fa752ecd


[ROCm/clr commit: b4df9fb6ec]
2025-01-21 22:05:14 -05:00
Vladana Stojiljkovic 4b786b5207 SWDEV-498061 - Add capture support for hipModuleLaunchCooperativeKernel
Change-Id: I5ed188e046c680c2785b3952391f59ed1d0c21b8


[ROCm/clr commit: 30cb2d0e67]
2025-01-16 10:54:30 -05:00
Marko Arandjelovic cf8eeabfe2 SWDEV-489619 - Fix memcpy tests with capture stream enabled
- Added missing validation as graph node should not be created
 if parameters are invalid
 - Fix conversion of input params to graphNode params

Change-Id: I37ab04942b5fb2eb07386850cb7dbbf26f9ca967


[ROCm/clr commit: db8527f655]
2025-01-16 10:31:04 -05:00
Rahul Manocha 0a9315f5e0 SWDEV-497288 - Add validation checks to hipGraphExecNodeSetParams
Change-Id: If8cde47bc8e62414333768e01064298d8a3d80ee


[ROCm/clr commit: 2b32d9aada]
2025-01-13 16:49:45 -05:00
Anusha GodavarthySurya 08c92f4793 SWDEV-480209 - Make internal callbacks non-blocking
Change-Id: Ic918d08f341abfd9a7c167d09f9c723cdc43157f


[ROCm/clr commit: 683a942364]
2025-01-10 02:16:11 -05:00
Anusha GodavarthySurya 4288640f69 SWDEV-469422 - Derive GraphExec from Graph and ChildGraphNode from GraphExec
Change-Id: I54d67a1665355579bc249d8ff4f9806e9ee14588


[ROCm/clr commit: 13e2e797c0]
2024-12-16 00:43:57 -05:00
Sourabh Betigeri 750313dfed SWDEV-421020 - Adds hipGraphAddBatchMemOp, SetGetParams and execSetParams APIs
Change-Id: Ieccecfe6173cc68fd3c01f86c99f7cc09fe194a3


[ROCm/clr commit: f1c05e9026]
2024-12-13 06:23:39 +00:00
Anusha GodavarthySurya acfcd1098f SWDEV-469422 - Refacor childgraph node
Remove static functions in graph

Change-Id: I4df94915f81f250acaea60398aea32ef0ed658e2


[ROCm/clr commit: 28cbf2bc4f]
2024-12-12 12:38:24 -05:00
Branislav Brzak cf25aaddcf SWDEV-490860 - Include signal_is_required in dot file dumps
Change-Id: Iec4b433b11fbecb71a4ce68beb7d6f681d25b8e6


[ROCm/clr commit: f2dba978f5]
2024-12-05 04:51:59 -05:00
Shane Xiao dabe311bd8 SWDEV-492049 - Remove the handle of Phy Mem from Memobj
The hipGraph will use VMM by default when allocating memory.
However, the handle of Phy mem has been added to Memobj by default.
Since the Memobj will track the whole address range from handle to
handle + size, this needs the system to reserve the whole address
range. If the system range have not reserved by the system, then it
will have the potential issue that clr finds the Memobj incorrectly.

This patch removes the handle from the Memobj to fix this potential
issue.

Change-Id: I2da38e6b2d11d0d48e1afe66c46899500c290624


[ROCm/clr commit: 231b2410a0]
2024-12-04 19:39:52 -05:00
Anusha GodavarthySurya a3c4a5a19c SWDEV-469422 - Cleanup graph code remove parallellists and nodewaitlists
Change-Id: I00c7b2894333bd13d47b913d3fcdd6e1ffcb741f


[ROCm/clr commit: c47f9dda58]
2024-11-30 04:40:51 -05:00
Vladana Stojiljkovic 3e8d5599d4 SWDEV-494612- Add capture support for hipLaunchCooperativeKernel
Change-Id: I6b3c6af55c60cffd43ce6f47b75998f750b75703


[ROCm/clr commit: b75b0d9a53]
2024-11-29 08:17:41 -05:00
Anusha GodavarthySurya ac927dd94e SWDEV-489084 - Update max streams for graph
Change-Id: I6d0992b2e80ebf3184911593a4f3574327b2e9c3


[ROCm/clr commit: fb7ad8361c]
2024-11-29 08:16:16 -05:00
Rahul Manocha 234f7bd197 SWDEV-497288 - Fix Segfault when kernel param is nullptr
1) for case where kernelParam_.func = nullptr, the validation
fails in setParam call and memory is not alloced for kernelParams
2) destructor path segfaults trying to free the kernelParams memory.
3) copy of params is done after function validation is successful.

Change-Id: I6338e0c89f259632e4115f0508e2f240bc207fd9


[ROCm/clr commit: 1ac9286b5a]
2024-11-26 11:34:41 -05:00
Rahul Manocha 5b40eefdac SWDEV-490864 - Optimize Alloc Node detection in graph
Change-Id: I6ac32f9abd0b44864071a0a9396463cb13f6941f


[ROCm/clr commit: 314d4a2c22]
2024-11-01 11:45:49 -04:00
Vladana Stojiljkovic d655fa8c66 SWDEV-489571 - Fix ihipGraphAddMemsetNode to allow memset of 3d portions of an array
* When hipMemset3dAsync is captured, a 3d extent can set be as a parameter (depth > 1). That worked on nvidia, but on amd wrong portion of array was filled because when creating Memset3D command, extent dimensions were used to create pitchedPtr, instead of original array width and height.
* Also, when capturing hipMemset3dAsync, nvidia allows any of the extent dimension to be 0, and in that case, no work should be done.

Change-Id: I46a605bf9ae801cd3348e98d528c21263a8eefce


[ROCm/clr commit: ec60bb1aed]
2024-10-31 10:29:54 -04:00
Anusha GodavarthySurya 1a472b9703 SWDEV-480209 - Handle GraphExec object release
=> GraphExec instance is destroyed before async launch completes,
destroy after all pending graph launches
=> Remove GraphExec destroy during next sync point(hipStreamSync,
hipDeviceSync etc..)

Change-Id: I4df682aae5787fd6e5240a7be936ce50361345d0


[ROCm/clr commit: f9f995c6d0]
2024-10-22 12:30:46 -04:00
Jaydeep Patel b31bf885a3 SWDEV-482692, SWDEV-485802, SWDEV-485489 - Handle refcounts owned by graph for user objects.
Change-Id: Ic739ab1ec5d3dc3143e3ae70f9591922bc0e3d9f


[ROCm/clr commit: e74ac6f580]
2024-10-08 03:44:44 -04:00
Branislav Brzak 491d3828dd SWDEV-482130 - Fix release of virtual mem obj
Change-Id: I893a8353aa1a25d00e36c8e601caf31cc0fc1f22


[ROCm/clr commit: 43fcac1739]
2024-10-08 01:37:39 -04:00
Anusha GodavarthySurya c0ceb1cf12 SWDEV-477324 - Capture Memcpy1D pinned H2D D2H
Change-Id: I1f4744f20a9caeed005ec68da44e5fde737e09f7


[ROCm/clr commit: 742b0210d3]
2024-09-30 01:01:30 -04:00
Vladana Stojiljkovic 887b11894b SWDEV-482086 - Fix hipGraphInstantiate leak
* In a scenario where kernel is launched with hipExtLaunchKernelGGL and stop event is used, hipGraphInstantiate leaks. Since stop event is used, profiling is enabled and Timestamp (ReferencedCountedObject) is created, but it doesn't get released.
* The idea behind this solution is that profiling should be disabled when command is captured, hence the timestamp should not be created. Because information about capturing isn't available when kernel command is created, packet capturing state is used to determine whether to create a timestamp or not.

Change-Id: Ia23adac4592ded4fb5e236acf99e12e729f63692


[ROCm/clr commit: da5f1a6146]
2024-09-29 11:36:53 -04:00
Rahul Manocha c4cab41cc2 SWDEV-479575 - Add marker to parent graph dependencies in childgraph node
1) Child Graph nodes need to have parent graph dependencies in waitlist.
2) Marker is placed on base stream with parent graph waitlist

Change-Id: Iec65a0171ea387be05b0733abcc708fb630e4be4


[ROCm/clr commit: 4d1ded9eaf]
2024-09-18 15:12:50 -04:00
Jaydeep Patel 7b2cd9111c SWDEV-478049 - Clear packets list as it is being added back later during submitKernelInternal while setting params for graph node.
Change-Id: I7451ffda93d94eeda5e1be05bb87558ae86d2a19


[ROCm/clr commit: 2494992695]
2024-09-16 23:10:32 -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
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