Commit Graph

366 Commits

Author SHA1 Message Date
Bartosz Dunajski 91940d2a79 fix: initial support for single temporary allocations list
Related-To: NEO-14641

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2025-05-21 13:16:15 +02:00
Maciej Bielski 0f8ee57f98 feature: add NEO_LOCAL_MEMORY_ALLOCATION_MODE
Allow the application to force storageInfo.localOnly and get the
out-of-memory returned if not possible.

This is a windows-only feature supported on discrete platforms.

Related-To: NEO-13428
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2025-05-20 14:15:17 +02:00
John Falkowski 468c62086e refactor: Gate shared system mem caps with KMD cap
If KMD not capable then set sharedSystemAllocCapabilities=0

Related-To: NEO-12988

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2025-05-19 11:08:19 +02:00
Compute-Runtime-Validation 0a096f1d50 Revert "fix: propagate error createInternalHandle wddm"
This reverts commit eeddd779f0.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2025-05-16 02:41:16 +02:00
Dominik Dabek eeddd779f0 fix: propagate error createInternalHandle wddm
Unify with linux implementation, return -1 on error and 0 on success.

Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-05-15 15:52:37 +02:00
Michal Mrozek 6f4a397cfc refactor: remove not required parameter
Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2025-05-08 23:13:06 +02:00
Compute-Runtime-Validation 7167f45199 Revert "refactor: Gate shared system mem caps with KMD cap"
This reverts commit 8e59ac7576.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2025-05-08 11:26:52 +02:00
Michal Mrozek afdc04975f refactor: remove ftrSvm variable
- it is true on all platforms.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2025-05-07 16:16:42 +02:00
Michal Mrozek c3eec70a97 refactor: remove not needed hw info member
- it is false on all platforms.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2025-05-07 14:17:49 +02:00
John Falkowski 8e59ac7576 refactor: Gate shared system mem caps with KMD cap
Enabled only by setting EnableSharedSystemUsmSupport=1 flag

Related-To: NEO-12988

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2025-05-07 06:38:01 +02:00
Dominik Dabek 6afefa1e31 performance: usm device pool, compression handling
Use device compression defaults when allocating pool.
Ignore compression hints when allocating from pool.

Also remove unused late initialization methods.

Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-05-06 16:30:58 +02:00
Compute-Runtime-Validation d477935ab9 Revert "refactor: Gate shared system mem caps with KMD cap"
This reverts commit f38fae3b18.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2025-05-06 12:43:16 +02:00
John Falkowski f38fae3b18 refactor: Gate shared system mem caps with KMD cap
Related-To: NEO-12988

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2025-05-06 07:28:59 +02:00
Dominik Dabek 75e313ce28 feature: prepare for l0 usm device pooling
Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-04-28 14:55:03 +02:00
Oskar Hubert Weber 1816c8eac4 fix: avoid joining thread in deferred deleter
Join thread in DllMain (which we are not aware of)
can result in hang occurring in DeferredDeleter, if the library is
freed before FreeLibraryAndExitThread call from within the worker thread,
the thread gets stuck, thus the main thread is stuck on worker->join().

Related-To: NEO-14121

Signed-off-by: Oskar Hubert Weber <oskar.hubert.weber@intel.com>
2025-04-17 16:17:42 +02:00
Chandio, Bibrak Qamar bed2ad1ac0 feature: memAdise for System Allocator
Related-To: NEO-13715

Implements basic functionality for zeCommandListAppendMemoryAdvise for
system allocator

Signed-off-by: Chandio, Bibrak Qamar <bibrak.qamar.chandio@intel.com>
2025-04-16 07:11:14 +02:00
Lukasz Jobczyk f7939735da refactor: Adjust USM cleaner to ULLS light
Related-To: NEO-13922

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2025-04-15 14:05:02 +02:00
Lukasz Jobczyk 1b5519a880 fix: Adjust standard heaps when on 57 bit address space
Resolves: GSD-10871

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2025-04-09 12:51:03 +02:00
Dominik Dabek bd516b3552 fix: usm reuse, clean from largest
When trimming old allocations in usm reuse start from largest
allocations.
This will reduce memory usage more quickly once max hold time is hit.

Related-To: NEO-6893, NEO-14429

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-04-04 14:57:15 +02:00
Dominik Dabek 3703ff550c fix: use real size when putting into usm reuse
Real allocation size should be used to properly apply limits and allow
more usm reuse hits.

Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-04-04 09:44:32 +02:00
Dominik Dabek be27367020 performance: usm reuse, avoid looking up svmData
Save svmData on putting into reuse, instead of searching each time.
Change UNRECOVERABLE_IF to DEBUG_BREAK_IF.

Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-04-03 15:50:49 +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
John Falkowski a72b22c2ce test: Implement clang tidy fix for prefecth_manager_tests.cpp
Related-To: NEO-12989

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2025-03-14 19:01:15 +01:00
John Falkowski 4d281cf51d feature: Implement appendMemoryPrefetch for Shared System USM allocations
Related-To: NEO-12989

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2025-03-13 06:26:38 +01:00
Compute-Runtime-Validation fa2e3adad3 Revert "feature: Implement appendMemoryPrefetch for Shared System USM Allocat...
This reverts commit 97799b3faf.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2025-03-12 05:55:32 +01:00
John Falkowski 97799b3faf feature: Implement appendMemoryPrefetch for Shared System USM Allocations
Related-To: NEO-12989

Signed-off-by: John Falkowski <john.falkowski@intel.com>
2025-03-11 09:12:48 +01:00
Dominik Dabek 2170f5ca88 refactor: usm reuse to unique ptr
Change usm allocation cache in usm manager to unique ptr

Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-03-07 15:14:58 +01:00
Lukasz Jobczyk 356d89d608 performance: Disable USM cleaner for ULLS light
Realted-To: NEO-13922

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2025-02-14 12:38:16 +01:00
Jaroslaw Warchulski 9732653019 performance: reuse usm allocations with similar requested size
Resolves: NEO-14009
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2025-02-11 10:50:27 +01:00
Chandio, Bibrak Qamar 7149743162 fix: Set vmbind user fence when makeMemoryResident
Related-To: NEO-11977, GSD-10293

Signed-off-by: Chandio, Bibrak Qamar <bibrak.qamar.chandio@intel.com>
2025-02-10 14:20:09 +01:00
Dominik Dabek e2d317aaee performance: tweak usm reuse cleaner
Cleaner thread will run every 15ms instead of 2s.
Allocations will be held for at least 10s.
If deferred deleter has elements to release, will skip cleaning cache.
Will clean only 1 allocation per cache, per cleaning run.

Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-02-10 12:18:13 +01:00
Jaroslaw Warchulski f07fa90483 fix: set correct allocation size in freeSVMAlloc
Resolves: GSD-10621
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2025-02-05 20:10:43 +01:00
Compute-Runtime-Validation d23249b061 Revert "fix: Set vmbind user fence when makeMemoryResident"
This reverts commit 80dc4fb43a.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2025-01-31 11:36:29 +01:00
Chandio, Bibrak Qamar 80dc4fb43a fix: Set vmbind user fence when makeMemoryResident
Related-To: NEO-11977, GSD-10293

Signed-off-by: Chandio, Bibrak Qamar <bibrak.qamar.chandio@intel.com>
2025-01-28 22:04:37 +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
Dominik Dabek 3f646839ca fix: usm reuse cleaning unused allocations
mechanism for freeing allocations saved for reuse that have not been
used in a given time

Related-To: NEO-13425

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-01-21 14:23:19 +01:00
Dominik Dabek 474b91aa36 fix: move device usm reuse max size to device
Related-To: NEO-6893

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2025-01-20 18:05:37 +01:00
Kamil Kopryk 99a7b5a4fb refactor: remove not needed volatile
Related-To: NEO-10767
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2025-01-16 00:43:10 +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
Dominik Dabek 5b429dd415 fix: usm reuse, check for in use before returning
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-12-20 18:24:18 +01:00
Compute-Runtime-Validation 484210d656 Revert "fix: limit usm device reuse based on used memory"
This reverts commit 1252b10ba9.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2024-12-05 23:17:51 +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
Dominik Dabek 1252b10ba9 fix: limit usm device reuse based on used memory
Calculate available memory for usm device reuse based as (total device
memory - used memory) * fraction for reuse.

Use sys mem allocs for devices without local memory.

Related-To: NEO-12902

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-12-04 08:11:23 +01:00
Mateusz Jablonski 2039b1c41b refactor: remove not needed code
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2024-11-28 16:16:30 +01:00
Dominik Dabek e55aa958b7 fix: track usm reuse usage in multiple contexts
Add tracking of memory used for usm reuse mechanism when multiple cl
contexts are used.
Tracking for device added to NEO::Device, for host added to
NEO::MemoryManager.

This fixes usm reuse using x% of memory per each context instead of
globally.

Related-To: NEO-13308

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-11-26 16:00:45 +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
Dominik Dabek 471615926f fix: adjust limiting device usm reuse
if limiting, disable device usm reuse (set max size to 0)

do not reserve vector for allocation infos if reuse is disabled

Related-To: NEO-12924

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2024-11-15 14:37:27 +01:00