Commit Graph

376 Commits

Author SHA1 Message Date
German Andryeyev 9fdddb7c5d SWDEV-447691 - Correct handle type for DX12 semaphore
Change-Id: Id23882286cb2a0d0472964ffc501ab27b7dc7f00
2024-04-25 11:24:56 -04:00
Konstantin Zhuravlyov 5a715ed160 Switch luxmark to lightning compiler for all ASICs
Change-Id: Idcd37628a2167f0bd2db2a83132a1862cbd051b0
2024-04-23 10:00:39 -04:00
German Andryeyev 7448113cfc SWDEV-440746 - Remove obsolete code
The "optimized" version of memcpy is outdated and
was used in win32 only.

Change-Id: I7f2e0e9051e37cec95438266824b5b0025c324c6
2024-04-22 09:56:42 -04:00
Rakesh Roy fb217fa9e0 SWDEV-453180 - Add UUID support for HIP_VISIBLE_DEVICES on Windows
- UUID needs to be specified in the format GPU-<body>, <body> encodes UUID as a 16 chars
- Convert set UUID in HIP_VISIBLE_DEVICES to device index internally
- Then use existing device index logic for HIP_VISIBLE_DEVICES

Change-Id: I654f492a49cd4d7a9b7339360ab558165240caa5
2024-04-20 02:39:19 -04:00
Ioannis Assiouras bf74ef4025 SWDEV-451594 - Implement Readback and Avoid HDP Flush workaround for device kernel args
Change-Id: I6d41a089a17f55306e7ff402588a1e831b20a7a7
2024-04-19 09:29:20 -04:00
German Andryeyev 62559a6e5a SWDEV-440746 - Fix the hostcall buffer creation
Avoid a deadlock on the host call buffer creation. Since the buffer will be
allocated in the queue thread, then use direct device memory allocation
skipping the global context lock.

Change-Id: I09b55ee03bb42ab5d320c152b52a8c842c5fdcc1
2024-04-17 12:37:23 -04:00
pghafari 5ddca5854c SWDEV-455699 - removing HW_REG_TRAPSTS for gfx12
Change-Id: I5f8b030eefdb37d3d51da3e135e5aa0f18ad9018
2024-04-16 19:46:21 -04:00
kjayapra-amd d52d16c8e6 SWDEV-413997 - Fixing multiple device cases.
Change-Id: I10ad3fbfca887e92cd81f68392fa1acf753cbd2b
2024-04-13 06:14:03 -04:00
German Andryeyev 7de7da4016 SWDEV-455254 - Reduce blit kernels signature
Remove offset from blit kernels, since it can be applied in setup.

Change-Id: I06b585068d68a0ee8e125ddf46a36fccb372f30d
2024-04-12 14:45:55 -04:00
taosang2 35c80dd482 SWDEV-424956 - Fix half vector printf issue
Refactor PrintfDbg::outputArgument() to remove potential risk.
Fix half vector printf issue on all devices.
Fix FEAT-56794 as well.

Change-Id: Iae39359d2128588def2e43d77fe58e868b8e71ff
2024-04-12 14:25:44 -04:00
Jaydeep Patel d52168b46d SWDEV-436754 - Use glbctx instead so that ref count increments for multi devices and chunk decommit gets delayed.
Change-Id: Ia4b0d5fbfa8f198776e52d14de8b22c6942f740d
2024-04-12 00:04:34 -04:00
Sourabh Betigeri dbac2976e4 SWDEV-451964 - Limit gpu single allocation percentage for gfx940 only
Change-Id: Iadcdadd734e7aeeb23742e426353defa972d3ad5
2024-04-05 09:43:42 -04:00
cadolphe bc80802c1a SWDEV-446726 - Disable large bar for 32 bit windows
When large bar is enabled, persistent memory leads to overallocation for 32 bit architecture.

Change-Id: Iae39359d8128588de02e42d77fe58e868b8e71fd
2024-04-03 15:36:41 -04:00
cadolphe 411960a131 SWDEV-451687 - Fix alloc message values in AMD_LOG_LEVEL for 32 bit
Change-Id: Icbe67024297c92bf59139b6a2ccd2ba3674f60b1
2024-04-01 13:32:20 -04:00
German Andryeyev 2f3ad43c4a SWDEV-449922 - Remove a global lock for queues on wait
The new logic has a lock for PAL call and doesn't require the lock for queues.

Change-Id: I61b67c3c4abd2ede44809de1d6beed756766032e
2024-03-28 18:17:46 -04:00
German Andryeyev 95e3958748 SWDEV-449922 - Remove per queue residency update
alwaysResident setting doesn't require per queue residency tracking.
Thus, the logic can be skipped to avoid the lock of queues.

Change-Id: Ib5cff5b79d3ecb8c2f2eb2565cf069f9a69438b0
2024-03-28 16:16:37 -04:00
Saleel Kudchadker c157bfb202 SWDEV-301667 - Create TS for each node recorded in graph
- Create a vector to allow multiple TS to be stored in Command.
- This would mean we dont wait for entire batch in Accumulate command
to finish when we exhaust signals.
- Reduce the number of signals created at init to 64. This min value
may still need to be tuned but the KFD allows max of 4094 interrupt
signals per device.
- Store kernel names whenever they are available and not just when
profiling. If we dynamically enable profiling like for Torch, a crash
can happen if hipGraphInstantiate wasnt included in Torch profile scope
beacuse we previously entered kernel names only when profiler is
attached.

Change-Id: I34e7881a25bbc763f82fdeb3408a8ea58e1ec006
2024-03-26 14:47:24 -04:00
German Andryeyev 1239309c90 SWDEV-449558 - Update barrier's logic
PAL optimized the logic for the barriers, which caused failures with CP DMA on Navi4x.
Change barrier's code to match the most recent PAL optimizations.

Change-Id: I55eeab20f51eb8e920bcbb4b55fbe3c7f77fd3fa
2024-03-18 10:52:32 -04:00
pghafari c13864abed SWDEV-430356 - updated VArange to use SVM
Change-Id: Ice3582732dd6f43af6d566e5420234a581a1c194
2024-03-13 11:47:36 -04:00
Saleel Kudchadker f1adecd186 SWDEV-301667 - Use right macros and level for logging
- Sometimes we want to mask out kernel names, use right level for kernel
logging

Change-Id: Ideae9647c57b86ae390ff2f4131f6d8c6df5c086
2024-03-12 19:00:03 -04:00
kjayapra-amd f5ca620baa SWDEV-423835 - Fixing kernel launch issues on Virtual Memory Management path.
Change-Id: I9f5e8a3d83af3809b2c50b21a10697e26113dd23
2024-03-12 17:22:07 -04:00
Vikram 6f390f5af9 SWDEV-424956 - Fix OpenCL printf bug while printing vectors of half type
OpenCL printf handling did not process vector of half precision floats properly
 (mainly because compiler packs 2 halfs into a dword and runtime failed to extract the
 individual parts).

 This patch fixes the issue.

Change-Id: Ia1f15ccfb5db52b71c43cfd588dd38f551ee5277
2024-03-04 03:53:18 -05:00
cadolphe 47e3ed545d Revert "SWDEV-374668 - Observed one subtest failure in ocltst32"
This reverts commit 60d413a5b9.

Change-Id: I42d6248204107f741a462101f9608e01a7ba91d5
2024-03-02 14:05:44 -05:00
Ajay e643406caa SWDEV-347670 - StreamWait and StreamWrite on Windows
__amd_streamOpsWrite blitkernel in device-libs has only 3 args.
so getting rid of the 4th unused arg (sizeBytes)

Change-Id: I81cc1107f8b424bf58558c93a2495a1b878aef91
2024-02-26 22:45:10 -05:00
German Andryeyev e2d2fad56c SWDEV-440746 - Fix a crash during RGP capture
With multiple HIP streams it's possible to have a race condition when
one thread stops the traces, but another still performs submisisons.
That may cause a crash on the barrier callback.

Change-Id: Ic56f8277fcfd2c2142a4821d927b938b9f313add
2024-02-22 23:53:35 -05:00
Jaydeep Patel 4177b4b675 SWDEV-359287 - uniform_work_group_size is interger type is 1 for true and 0 for false.
Change-Id: Iac5584c3cdd3bf78e3f1e89033b9ce7e07afefca
2024-02-22 22:37:31 -05:00
German Andryeyev 8f9a20738e SWDEV-404889 - Don't report trap handler
Trap handler shouldn't be reported for debugger and RGP

Change-Id: I149dacfed49584503c1874120d5f552fdec323a7
2024-02-22 14:49:54 -05:00
Ioannis Assiouras 1f6d416684 SWDEV-446399 - Fixed segfault in hipMemSetAccess
Change-Id: Ia1200d9bee03e8abade211287505f081e635ceec
2024-02-20 18:51:05 -05:00
German Andryeyev bfa469ddc4 SWDEV-445692 - Query OS for free memory
Latest VidMM can provide free memory available on the system.
Use PAL interface to report free memory on the system instead
of per process.

Change-Id: I0e78b9d340299c16829177a8c5182d21cc353384
2024-02-13 09:53:36 -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
Anusha GodavarthySurya ae0368d12d SWDEV-422207 - Enable DEBUG_CLR_GRAPH_PACKET_CAPTURE environiment variable
Change-Id: I9bf72b9c1a56980352109bd4d42b54ecb2d1b8f9
2024-02-05 05:08:11 +00:00
German Andryeyev dcd2fcff16 SWDEV-404889 - Switch to FreezeExecutable()
Debugger support requires FreezeExecutable() call inside the loader interface.

Change-Id: Iff01840a5980500d8d51da8d73c3f24b2960c44a
2024-02-05 05:08:11 +00:00
Ioannis Assiouras 5d322c027a SWDEV-441201,SWDEV-441727 - Move BlitProgram creation after trap handler build
Change-Id: I89199ccc4bdf79940dc6693e07c03115c52bf613
2024-02-05 05:08:11 +00:00
Jaydeepkumar Patel 77be355fd9 Revert "SWDEV-359287 - uniform_work_group_size is interger type is 1 for true and 0 for false. Lighting kernel's init sets uniform work group flag and hence not need to set it from options."
This reverts commit ea25e65834.

Reason for revert: Waiting for staging results before finally merging it.

Change-Id: Iaabb510325f50147f368108e98531291217627c0
2024-01-18 01:29:31 -05:00
Jaydeep Patel ea25e65834 SWDEV-359287 - uniform_work_group_size is interger type is 1 for true and 0 for false. Lighting kernel's init sets uniform work group flag and hence not need to set it from options.
Change-Id: I8d3a9a6ed1c3bddaaa86f7cdc242a45e6a1d09f6
2024-01-17 04:42:52 -05:00
German 13c6f56ca9 SWDEV-440746 - Enable hipExtAnyOrderLaunch extension for PAL
Extension allows to execute the kernels without a wait barrier and L1
invalidation.

Change-Id: I96c485204303f54a0240b93134f4560673e4bd17
2024-01-16 15:20:39 -05:00
German eaa61fc740 SWDEV-301667 - Fix HSAIL compilation path for Blit
Recently some unused compiler options for HSAIL path were removed,
 but it affected blit kernels compilation. Hence, remove those options.
Also delete assert for device to device copy in SDMA path for now.

Change-Id: Ib5d7f063af2ab4a3fc5d73d426e39c391b1011ac
2024-01-09 17:51:30 -05:00
German dec1158d04 SWDEV-438532 - Enable wave limit for HSAIL
Luxmark still uses HSAIL path and one subtest can benefit from the wave limit.

Change-Id: I16c94e09cd6e2afd6341cb76bf2e9ab7b7713214
2024-01-09 17:00:50 -05:00
German 49037b9762 SWDEV-439241 - Keep direct map for MGPU
Single OCL context with multiple devices should use direct map
even with persistent memory, because cache coherency layer.

Change-Id: I02a48830440203a1dea176acd4dff4452b70f133
2024-01-08 18:14:15 -05:00
German 85c15d720d SWDEV-438958 - Calculate persistent memory stored in the cache
- Make sure persistent memory from resource cache is properly adjusted
in free memory calculation.

Change-Id: I74ef68975ccde4694fb1cb904617c418e85dfc9f
2024-01-08 10:11:52 -05:00
ksankisa f554a075c7 SWDEV-404921 - Add dynamic LDS size hidden kernel argument
Change-Id: If99019058e4bfdc988ef5fc4cef001b772380453
2024-01-06 08:46:55 +05:30
German 7d661bc7df SWDEV-404889 - Enable debugger interface in PAL
Add GPU_DEBUG_ENABLE to control ttpm behavior. If enabled,
then HW will collect more debug info at some perf cost

Change-Id: Icee0686b903a7b1bd483710b9d611877cd43c6aa
2024-01-02 11:51:42 -05:00
German cfc07c88ee SWDEV-436796 - Enable device memory for kernel arguments
Extra CPU read back will be performed before every submission to make sure
previous writes over PCIE reached GPU. HDP flush is done by CP.

Change-Id: I402d28ca26c8cee4a3920feb3599af8c285d0889
2023-12-15 13:11:50 -05:00
German c8b3253a24 SWDEV-432575 - Disable direct map for persistent memory
Persistent memory should use direct access for write map and
indirect for read map.

Change-Id: I9fc84836d60088b24012ed25f7ef8c16e33796a3
2023-12-15 10:59:01 -05:00
Jaydeep Patel 9551d48e7f SWDEV-411343 - Import VK buffer memory exported by name.
Change-Id: Idc7c840fcd6bf758ecc29ffd6558d24e5bd0a25b
2023-12-14 22:16:11 -05:00
kjayapra-amd ec010e4d2d SWDEV-413997 - Fixing MGPU cases on PAL side by passing Global Context to virtual alloc.
Change-Id: I6614058d1456d199d710b12acd95160a79aa48c8
2023-12-14 11:34:32 -05:00
German Andryeyev fb3dfcf889 SWDEV-436859 - Enable pitch for COPY_HOST_PTR
Original logic didn't use pitch because, abstraction layer had
a sysmem copy without pitch. Since extra sysmem copy was
disabled, the code has to accept pitch values from the app.

Change-Id: Ia9fba7b33ddff4e9109b4e63d0d6afa52f501c8f
2023-12-13 16:50:16 -05:00
German b3171d08e6 SWDEV-434241 - Replace size_t with uint64_t
The kernel accepts uint64_t, but with 32bit OCL build size_t was 32 bit

Change-Id: I6fe37d2e5e69c7bd62d7b1bd4cace758758b3482
2023-12-08 16:56:29 -05:00
German Andryeyev 44761fe89b SWDEV-434298 - Add destination offset
The end pointer in copy buffer requires destination offset

Change-Id: I01f2967144f741761fd2ce3244fd8d04564d986f
2023-11-29 16:33:29 -05:00
German Andryeyev ed4e1fec98 SWDEV-434298 - Change copy buffer kernel
The new copy kernel can limit the number of launched workgoups.
It can copy in chunks of 16 bytes or 4 bytes.
Workgoup size is increased to 512 or 1024

Change-Id: Ic3fefa2d5bda6afebd1acc4d41ad310b138af6df
2023-11-28 16:56:30 -05:00