Commit Graph

265 Commits

Author SHA1 Message Date
Jaroslaw Warchulski 3e1aa33924 refactor: cleanup headers
Related-To: NEO-5548
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2025-04-14 14:59:40 +02:00
Dominik Dabek c76edaba4e fix: enable usm reuse limit based on memory usage
Related-To: NEO-14160, NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-03-27 15:14:08 +01:00
Dominik Dabek 915d657420 fix: flag to limit usm reuse based on memory usage
Host usm and device usm for igfx checks system memory usage.
Device usm for dgfx checks local memory usage.

If used memory is above limit threshold:
- no new allocations will be saved for reuse
- cleaner will use shorter hold time of 2 seconds
- cleaner will free all eligible allocations, regardless of async
deleter thread having work

Motivation: in case of gfx memory being full, making resident new
allocations will require evictions which leads to massive slowdown on
enqueue calls.
This change aims to minimize cases where extra memory usage from usm
reuse mechanism leads to above situation.

Related-To: NEO-6893, NEO-14160

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-03-27 10:25:19 +01:00
Dominik Dabek 6e998fc3c1 fix: move host usm reuse max size to mem manager
Intialize value on memory manager creation.

Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-03-24 08:53:30 +01:00
Maciej Bielski 971b7c27a2 fix: enable usm compression on linux
Related-To: NEO-12056
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2025-02-04 13:09:04 +01:00
Mateusz Hoppe 19a0a27862 refactor: adjust unit tests to work with secondary engines
Related-To: NEO-12952, NEO-13789


Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2025-01-22 13:31:43 +01:00
Lukasz Jobczyk 2dd9940f60 Revert "fix: count active modules for enabling per-dispatch private memory"
This reverts commit a483b361f9.

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2025-01-15 15:03:37 +01:00
Wenbin Lu a483b361f9 fix: count active modules for enabling per-dispatch private memory
Related-To: NEO-13086

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2025-01-10 15:03:34 +01:00
Jack Myers 7f9fadc314 fix: regression caused by tbx fault mngr
Addresses regressions from the reverted merge
of the tbx fault manager for host memory.

Recursive locking of mutex caused deadlock.

To fix, separate tbx fault data from base
cpu fault data, allowing separate mutexes
for each, eliminating recursive locks on
the same mutex.

By separating, we also help ensure that tbx-related
changes don't affect the original cpu fault manager code
paths.

As an added safe guard preventing critical regressions
and avoiding another auto-revert, the tbx fault manager
is hidden behind a new debug flag which is disabled by default.

Related-To: NEO-12268
Signed-off-by: Jack Myers <jack.myers@intel.com>
2025-01-09 07:48:53 +01:00
Compute-Runtime-Validation 124e755b9d Revert "fix: regression caused by tbx fault mngr"
This reverts commit 9a14fe2478.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-12-19 17:35:03 +01:00
Jack Myers 9a14fe2478 fix: regression caused by tbx fault mngr
Addresses regressions from the reverted merge
of the tbx fault manager for host memory.

This fixes attempts by the tbx fault manager
to protect/unprotect host buffer memory, even
if the host ptr was not driver-allocated.

In the case of the smoke test that triggered
the critical regression, clCreateBuffer was
called with the CL_MEM_USE_HOST_PTR flag.
The subsequent `mprotect` calls on the
provided host ptr then failed.

Related-To: NEO-12268
Signed-off-by: Jack Myers <jack.myers@intel.com>
2024-12-18 23:16:36 +01:00
Compute-Runtime-Validation 6c5d9a6ed7 Revert "feature: extend TBX page fault manager from CPU implementation"
This reverts commit 51c0e80299.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-12-12 12:30:22 +01:00
Jack Myers 51c0e80299 feature: extend TBX page fault manager from CPU implementation
In TBX mode, the host could not write to host buffers after access from device
code due to the lack of a migration mechanism post-initial TBX upload.
Migration is unnecessary with real hardware, but required for TBX.

This patch introduces a new page fault manager type that extends the original
CPU fault manager, enabling automatic migration of host buffers in TBX mode.

Refactoring was necessary to avoid diamond inheritance, achieved by using a
template parameter as the base class for OS-specific fault managers.

Related-To: NEO-12268
Signed-off-by: Jack Myers <jack.myers@intel.com>
2024-12-11 09:09:50 +01:00
Fabian Zwoliński d2ce3badfc fix: bindlessHeapsHelper handle unavailable external heap
This PR handles the situation in which a component
has reserved a front window space for itself in the external heap,
so that the Compute Runtime cannot access this area.

In such a situation, we perform the following steps:
1. reserve 4GB chunk in heapStandard
2. split our chunk into 2 parts: heapFrontWindow, heapRegular
3. from this point on, map all linearStream allocations in reserved 4GB
chunk

Patch applies to Windows and WSL.
Patch only applies when the bindless global allocator is enabled.

Related-To: HSD-16025889919
Signed-off-by: Fabian Zwoliński <fabian.zwolinski@intel.com>
2024-12-05 14:18:01 +01:00
Wenbin Lu 2ba80ce114 feature: support physical host memory
Related-To: NEO-11981

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2024-11-20 08:19:52 +01:00
Lukasz Jobczyk 5b3d244e97 refactor: Add AIL for hostptrs drain
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2024-11-19 15:13:30 +01:00
Lukasz Jobczyk 7f3896d05f performance: Ensure hostptrs removed before creating new one
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2024-11-12 13:55:15 +01:00
Bartosz Dunajski 7f5e6b4124 Revert "fix: Enable 64k pages for TSB allocation"
This reverts commit eed69f45ed.

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2024-10-28 16:02:34 +01:00
Maciej Bielski 45e78fea76 fix: use productHelper in getPatIndexInfoString() on Windows
Fix the PAT-index reporting in logger as currently on Windows reported
values are simply wrong.

The changed logic dependends on `RootDeviceEnvironment` and in order to
avoid introducing such dependencies into logger.[ch] the
`logAllocation()` is no longer a member of `FileLogger` but
a free-function instead (and a separate .cpp file). This is important
because the source files `logger.[ch]` are also used by ocloc library
and there is no point to contaminate ocloc code structure with
unnecessary dependencies.

Related-To: NEO-9421
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2024-10-22 19:27:13 +02:00
Wenbin Lu a8a40d2afd feature: support SVM heap in reserveVirtualMem
Related-To: NEO-11981

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2024-10-22 16:47:14 +02:00
Bartosz Dunajski eed69f45ed fix: Enable 64k pages for TSB allocation
Related-To: HSD-18040274716

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2024-10-22 15:12:42 +02:00
Lukasz Jobczyk 8a647f6a39 Revert "performance: Ensure hostptrs removed before creating new one"
This reverts commit 5b2f2f3d83.

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2024-10-21 10:36:06 +02:00
Mateusz Hoppe 5ae2552b4b fix: track shifted contextIds in bitset in bindlessHeapsHelper
- bitset is 64 bit in size, context ids may go beyond that limit
when multiple devices are available
- this change subtracts contextId of first context for a given root
device - tracked state dirty contexts ids are now zero-based

Resolves: GSD-10025

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2024-10-09 10:32:29 +02:00
Lukasz Jobczyk 5b2f2f3d83 performance: Ensure hostptrs removed before creating new one
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2024-10-08 13:04:56 +02:00
Compute-Runtime-Validation 60afb83b3b Revert "performance: Ensure hostptrs removed before creating new one"
This reverts commit a890ed5648.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-10-08 07:45:55 +02:00
Dominik Dabek 3685852ce0 Revert "performance: device usm sets localOnly...
Required"

This reverts commit a479afdbc8.

Related-To: NEO-12879

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-10-07 11:59:37 +02:00
Compute-Runtime-Validation 41df1a6f47 Revert "feature: support SVM heap in reserveVirtualMem"
This reverts commit bfaeeb01d6.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-10-03 14:53:50 +02:00
Lukasz Jobczyk a890ed5648 performance: Ensure hostptrs removed before creating new one
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2024-09-19 14:34:19 +02:00
Compute-Runtime-Validation e4d2f16632 Revert "performance: Ensure hostptrs removed before creating new one"
This reverts commit ac1d203555.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-09-18 19:31:34 +02:00
Lukasz Jobczyk ac1d203555 performance: Ensure hostptrs removed before creating new one
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2024-09-18 14:23:16 +02:00
Michal Mrozek dd631610b3 refactor: move memory tracking to memory manager
- remove wddm specific code
- improve total size reported to be in decimal

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2024-09-12 17:32:38 +02:00
Michal Mrozek da59b88122 refactor: improve logging of allocations
add capability to measure total amount of allocated memory
Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2024-09-12 11:00:27 +02:00
Wenbin Lu bfaeeb01d6 feature: support SVM heap in reserveVirtualMem
Related-To: NEO-11981

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2024-09-09 23:22:04 +02:00
Mateusz Hoppe 32fb476f6d refactor: debugbreak in simulation on memcopy to multi bank allocation
- if allocation has multiple banks, memcpy cannot write different data
for multiple banks

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2024-09-04 12:27:20 +02:00
Compute-Runtime-Validation a4f68c57bb Revert "refactor: debugbreak in simulation on memcopy to multi bank allocation"
This reverts commit 1c51734642.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-09-04 05:48:55 +02:00
Mateusz Hoppe 1c51734642 refactor: debugbreak in simulation on memcopy to multi bank allocation
- if allocation has multiple banks, memcpy cannot write different data
for multiple banks

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2024-09-03 20:47:50 +02:00
Bartosz Dunajski 24cfd203ab fix: dont download tbx allocations on heapless first device submission
Related-To: HSD-18039476929

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2024-08-06 14:03:42 +02:00
Dominik Dabek e9e6cc05e3 fix: mem alloc size tracking safety
Make sure local mem alloc size atomic array is initialized with 0.
Add debug breaks to catch possible overflow on unregistering
allocations.

Related-To: NEO-11356

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-08-05 11:51:17 +02:00
Dominik Dabek 26428d5af3 feature: track used memory by allocations
Track memory used by memory allocations. System and local per device.
Will be used for heuristics in memory pooling.

Related-To: NEO-11356

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-08-02 17:54:34 +02:00
Dominik Dabek a479afdbc8 performance: device usm sets localOnlyRequired
Device USM allocations should not be allowed to migrate to host memory

Related-To: NEO-11843

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-07-19 18:58:02 +02:00
Szymon Morek b03ac6abd1 fix: disable usm compression on linux
Related-To: NEO-12047

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2024-07-16 14:59:33 +02:00
Compute-Runtime-Validation 196f0a6eee Revert "fix: pass custom alignments for WSL2 device and shared memory allocat...
This reverts commit 1c98420518.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-06-18 07:58:28 +02:00
Mateusz Hoppe b3d72ddd3d fix: write memory for resident allocations in simulation mode
- refactor and call proceesFlushResdiency() on memoryOperationsHandler
- call free() to remove allocation from resident allocations when
graphics allocation is released

Related-To: NEO-11719

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2024-06-14 18:49:01 +02:00
Maciej Plewka 32cfa3d497 fix: stop using LocalOnly flag on Xe2+ platforms
Related-To: NEO-11391
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2024-06-10 11:26:20 +02:00
Wenbin Lu 1c98420518 fix: pass custom alignments for WSL2 device and shared memory allocation
Related-To: NEO-8431

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
2024-05-24 15:52:40 +02:00
Maciej Plewka 18ea80865b refactor: Use GPU VA as id for ResidencyDebug logs
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2024-05-23 09:55:03 +02:00
Compute-Runtime-Validation 0cd45fcb2e Revert "refactor: Use GPU VA as id for ResidencyDebug logs"
This reverts commit 3a0b8825d6.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-05-22 17:28:57 +02:00
Maciej Plewka 3a0b8825d6 refactor: Use GPU VA as id for ResidencyDebug logs
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2024-05-22 15:01:36 +02:00
Mateusz Hoppe bfc3e8fcf0 fix: assign unique ContextId for secondary engines
- add secondary engines to allRegisteredEngines

Related-To: NEO-11219

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2024-05-20 13:19:20 +02:00
Maciej Bielski dc32da2507 feature: prepare StorageInfo for Drm-specific customization
Get the local memory regions count from the primary source (MemoryInfo)
and store for further use when using DrmMemoryManager.
Add a point of dispatch (virtual `createStorageInfoFromProperties`) for
further Drm-specific customizations related to StorageInfo. As the
function became virtual, move one of its callers
(`isLocalMemoryUsedForIsa()`) from the constructor of `MemoryManager` to
respective constructors of all derivative classes. This prevents
bypassing the virtual call dispatch.

Related-To: NEO-9754
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2024-05-16 12:24:48 +02:00