Commit Graph

204 Commits

Author SHA1 Message Date
Saleel Kudchadker f138e0d113 SWDEV-443760 - Enable device kern args
- Implement workaround to ensure HDP writes are done by writing and
reading the HDP MMIO register.
- Implement the same workaround for graphs, we no longer need sentinel
write/readback

Change-Id: I0d3027b46a1f61131ec62e3c8c669ff5184fa6b2
2024-02-20 02:03:14 -05:00
Saleel Kudchadker 81b8598af9 SWDEV-301667 - Cleanup code and better log
Change-Id: Ie2345264e84026156a9f81b421eed3cf4aeeeffc
2024-02-19 05:42:47 -05:00
Saleel Kudchadker 0567c3b720 SWDEV-301667 - Better log
Display queue base pointer in the log. This can be co-related with AQL
packets

Change-Id: I544f9b6db6ae01c85e57e4b3f0b3fffefcd7c2ed
2024-02-05 05:08:11 +00:00
Saleel Kudchadker 9a6ddae7b2 SWDEV-301667 - Reset profiler correlation_id_
- The correlation_id had random junk values which we were inserting in
the dispatch AQL packet even when no profiler was attached but if we had
a valid timestamp.
- Also make sure we dont even write the reserved2 field in the AQL
packet if no profiler attached.

Change-Id: Icdb7493198c1bb5e2d786a97e027288660854cd7
2024-02-05 05:08:11 +00:00
cadolphe 243b86dd23 SWDEV-368741 - Check for uninstalled hsa-amd-aqlprofile to avoid Segmentation Fault
Change-Id: I0c0c7a2ea7c35237332ddd7c2461e4d9ff8e2f1c
2024-02-05 05:08:11 +00:00
Alex Xie 5e1de3cc26 SWDEV-433820 - Optimize queue initialization (ROCM)
Change-Id: I0619a9f66ae3d64a0f3fc36384f46adb302e725d
2024-02-05 05:08:11 +00:00
Ioannis Assiouras 28743d8dbd SWDEV-432599 - Added null checks for rocMemory ptrs in copyMemory
Change-Id: I8ccda2c915dad22c4ea67556dfaab9ba47770069
2024-01-18 15:48:30 -05:00
Saleel Kudchadker d6b4892600 SWDEV-439242 - Fix perf regression
This issue is due to the fact that we set fence_dirty_ flag for every
kernel launch. Whenever any next HIP API is caused, the stream logic
assumes fence is dirty and queues a marker, when its not needed.

Change-Id: I10a49ee951daa92221aa6be75e2334849579a45d
2024-01-10 11:45:02 -05:00
ksankisa f554a075c7 SWDEV-404921 - Add dynamic LDS size hidden kernel argument
Change-Id: If99019058e4bfdc988ef5fc4cef001b772380453
2024-01-06 08:46:55 +05:30
Anusha GodavarthySurya 748c6b3520 SWDEV-422207 - Fix simple graph test when DEBUG_CLR_GRAPH_PACKET_CAPTURE flag is enabled
- For new AccumulateCommand we enqueue nop barrier packet. So during stream sync we need system flush.

Change-Id: I0b97b626bcdae582ef95e7c95030d78df1fa5a54
2023-12-20 22:50:36 -05:00
Jatin Chaudhary 12461dbd6a SWDEV-431399 - use x86 intrinsics only x86 platforms
This was highlighted by github issue:
https://github.com/ROCm-Developer-Tools/clr/issues/32
On RISC-V platforms this header might not be present.

Change-Id: I5f0959a7b281c760802e76541d50693d1a3902be
2023-12-12 19:10:50 -05:00
Jaydeep Patel eecbc2e436 SWDEV-431879 - Introduce IsHandlerPending back.
It seems that due to removal of vdev()->isHandlerPending(),
Marker queued to ensure finish is not enqueued and that cause
hung at waiting event for kernel enqueue command.

Change-Id: I364abb2dcb4897b11a7eb61b5d85013b69292792
2023-11-23 08:45:19 -05:00
German Andryeyev f1dc81f427 SWDEV-432174 - Change the fillBuffer kernel
- Add the new fillBuffer kernel, which allows to launch a limited
number of workgroups for memory fill operation
- Switch fill memory to 16 bytes write by default
- Allow to limit the workgroups with DEBUG_CLR_LIMIT_BLIT_WG

Change-Id: Ibad1822f2d42b2fc71bcfc1917c31409c0623e8e
2023-11-16 14:25:55 -04: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
Saleel Kudchadker 5c591b5877 SWDEV-301667 - Support device kernel args for PCIE
Change-Id: I5e51602bea5a68734227fd62e11ab68eb1ad81c1
2023-11-15 14:37:41 -05:00
Saleel Kudchadker c3bd229f4f SWDEV-422207 - Optimize graph end detection
- Do not use extra barrier to detect graph end. If its a kernel node we
can use a completion signal for the last packet. Saves roughly 6us for
Phantom testcase per graph launch.

Change-Id: I5e0c2479d9964fbeda86ed97533f6718f49a7f91
2023-11-10 11:57:02 -05:00
Saleel Kudchadker f5c6fc4dfa SWDEV-422207 - Report TS for Accumulate command
Change-Id: Iba193a6068c1a2d25c2136643faee2c1e2591a07
2023-11-07 18:19:40 +00:00
Saleel Kudchadker 40f41f4d0b SWDEV-422207 - Track commands for capture
- Track all captured commands under a new AccumulateCommand
- Add begin() and end() methods to capture commands
- Explicit TS object now passed to certain methods because
profilingBegin() and profilingEnd() now happen separately and thus can
run into threading issues

Change-Id: I171106bdcad72b057836cb2f3fc398db3533119f
2023-11-03 05:09:04 +00:00
Saleel Kudchadker 1338ff37e8 SWDEV-301667 - Cleanup unused paths
- Refactor code and cleanup logic for callback saving for event records

Change-Id: I5c56aa8e9c968a5bca70fb07ad1796da318e9e89
2023-11-02 11:43:41 -04:00
Saleel Kudchadker 182f6e2e6d SWDEV-422207 - Fix profiling check
Change-Id: Ia6ca28f0b593ea1680732684dd10f40c0043c973
2023-10-25 05:37:55 +00: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 de2b06a7a7 SWDEV-301667 - Reset addSystemScope_
If we submit a systemScope Barrier, we should reset this flag as there
is no need for dispatch AQL again to flush caches/HDP

Change-Id: I55710feb4ba6650852e785b5cadfa64c6b9ce14e
2023-10-23 16:53:47 -04:00
Ioannis Assiouras 2d8c65eedf SWDEV-427493 - Fixed segfault after accessing deleted timestamp
Change-Id: I478008f03e2bb4d9ac1f0865605edbf9f8254fea
2023-10-17 15:24:07 -04:00
kjayapra-amd 3ef829939a SWDEV-413997 - Initial VMM changes for ROCm path.
Change-Id: I4405fd7b53182eb4c4622835c811c0dc08461537
2023-10-16 11:29:16 -04:00
Saleel Kudchadker bf8baeecb3 SWDEV-301667 - Track last used SDMA engine per queue
- Track last SDMA engine per queue, this results in better scheduling
- Reset last SDMA engine upon batch completion. That ensures we dont get
blocked if the same engine is used by another concurrent copy

Change-Id: Id53111980da7ee41d5c932fb44e4aab5b1e065a3
2023-10-10 12:13:11 -04:00
kjayapra-amd 6a8bc3c718 SWDEV-419688 - Do not run GWS init kernel for targets > gfx12 and MI300.
Change-Id: I8e7441268978be71ab8a5a33e7f8bcf69660e500
(cherry picked from commit 36d37ef614909c0f215512aac0c133408d787080)
2023-10-05 14:57:56 -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
Jaydeep Patel d18ae85833 SWDEV-415914 - Use settings from device's setting object.
Change-Id: I4b0cbab361e9e2d5b8164066ec37de1fa212e783
2023-09-14 19:16:50 +00:00
Saleel Kudchadker 42c9cd0320 SWDEV-301667 - Balance AQL packet scopes
- Acquire and Release scopes for AQL need to be balanced. These were
missing on the AMD_OPT_FLUSH=0 path.

Change-Id: Ibf4132eb96800f155d7b664359c790d68a353e60
2023-09-06 13:26:39 -04:00
Saleel Kudchadker 1ec0ba3537 SWDEV-301667 - Use large signal pool
Use large signal pool if profiler is connected or profiling forced
enabled. This is needed to mitigate signal creation overhead when
profiling as signals are attached to every packet and deeper batch may
show overhead of signal allocation.

Change-Id: I8034b8a20b55328b87d593bf044f59672f9653e8
2023-08-24 19:17:05 -04:00
German 077311153a SWDEV-407533 - [ABI Break]Purge unused env vars
Change-Id: I627950e8ebb6299affc602754a20d442dbe42b14
2023-08-24 14:11:40 -04:00
kjayapra-amd 6f5277c701 SWDEV-408473 - Add wait time of 10 us if the waiting signal copy was < 24K.
Change-Id: I438ec9eb07e5034042a4a9a5e6e51d74daba2c83
2023-08-23 10:46:33 -04:00
Ioannis Assiouras 63af50b6e0 SWDEV-415160 - Added fix in kernel argument logging
Change-Id: Ic54d51264602c7bf0c91b5273f9519da3fbb1062
2023-08-03 21:39:41 +01:00
Anusha GodavarthySurya 0711320cb4 SWDEV-392732 - CP processes until doorbell ring
Change-Id: I3a0974435d3f95a40cea6ed326f744bcab5b4c0f
2023-07-25 13:10:31 -04:00
Saleel Kudchadker 5447cf8872 SWDEV-301667 - Disable HostBlit copy for HIP
Change-Id: I46333ff42e8c1d402ece97e3ead7b539a27c3f82
2023-07-17 17:49:11 -04: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
Saleel Kudchadker bceec9d9a2 SWDEV-301667 - Enable SDMA profiling only when queue profiling
Change-Id: I9a62a2fbaefd54638c35f4b8fce2e9ea2da7af19
2023-06-26 16:10:34 -04:00
Sourabh Betigeri 0330801846 SWDEV-406750 - Fix to avoid a warning when compiling HIP runtime
Change-Id: If1d848d334bc0121a96655781fc60b0321213398
2023-06-20 12:16:16 -04:00
Saleel Kudchadker 5436d362b1 SWDEV-301667 - Add a flag for gpuvm kernargs
HIP_FORCE_DEV_KERNARG=1 will create a device allocation for kernel arg
segment. Flag is 0 by default.

Change-Id: Iaaf5a149f3be8596568878d5d272268baf067c60
2023-05-22 11:23:48 -04:00
Alex Voicu 06df9e2efd SWDEV-301667 - Kernelarg gpuvm
Add aligned, nontemporal `memcpy` for kernarg.

Change-Id: I5d8ac76904feaf793b45ec2ea5fbd1069be20068
2023-05-22 11:21:14 -04:00
Sourabh Betigeri afa28cdf44 SWDEV-393362 - Move setData() from profilingEnd() to profilingBegin() to eliminate a possible data race
- Introduce a state variable to indicate if HwProfiling is enabled to
eliminate a possible data race of vector<> signals_.

Change-Id: Id504cc76d7fa9f7e6455587dd232b60ccbbb735b
2023-05-04 17:19:25 -04:00
Jatin Chaudhary c585aefdb7 SWDEV-376453 - Changes to fix crash seen with HIP and recent compiler change with -O0
Change-Id: I37de83b7449461ce2378741e97ff8fb8da736523
2023-05-02 17:46:38 -04:00
Saleel Kudchadker 9775c38725 SWDEV-392427 - Invalidate Barrier Value AQL header
Change-Id: Id8e04ffe44da58641361468957d397af128443bb
2023-05-01 14:06:05 -04:00
Saleel Kudchadker 20ca8b8116 SWDEV-384557 - Leverage SDMA engine status query
Change-Id: I5f386f2965de24a229ea43b6c4da82099692f91f
2023-04-05 07:50:53 +00:00
Saleel Kudchadker 3e603d986a SWDEV-364604 - Add ROCclr support for hipEventDisableSystemFence
Change-Id: I6127b432a8759359359a1890fda85bc401be6a56
2023-02-21 19:07:35 -05:00
Saleel Kudchadker 695f169ed0 SWDEV-301667 - Refactor code
Change-Id: I8f20d994d88acb14f392eaa9d5cd14620667d7f6
2023-02-13 14:58:17 -08:00
German Andryeyev 67af16bdf3 SWDEV-381633 - Use blit manager on app's queue
Heap initialization used device queue, but it shoudl be used for
cooperative launches only. Heap initialization must use the same queue
as the current dispatch.

Change-Id: I856621bf82bbdeb1c2d0fbc4970e90d09af805cb
2023-02-09 09:43:13 -05:00
German Andryeyev b23c759746 SWDEV-372790 - Copy AQL packet from runtime setup
Scheduler in device queue requires relaunching itself. Make sure
scheduler uses exactly the same AQL packet as the host launch.

Change-Id: I4eb03c4c91bf2408a6d4607731f081a2e2c2c8ae
2023-01-24 10:25:45 -05:00
German 53a10c9039 SWDEV-377991 - Remove liquidflash support
Change-Id: Iba6455e5c0210c3223a06fec332404cd9f489154
2023-01-20 09:57:06 -05:00
Anusha GodavarthySurya 89e9f9db58 SWDEV-371123 - Fix seg fault when running hashcat app
Change-Id: I0c66d881b8dfae322f58a644860ecce4fb18debd
2023-01-19 15:50:03 -05:00