- simplify API to expose and use only single root device. Disallow
returning subdevices. This is experimental mode.
Related-To: NEO-14559
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This enables NEO's NEOReadDebugKeys and PrintDebugMessages in ocloc
in the same scenarios as in NEO OCL/L0 RT
Note :
* NEOReadDebugKeys=1 should not be prefixed with NEO_OCLOC_
* PrintDebugMessages=1 should be prefixed with NEO_OCLOC_
(to distinguish from OCL/L0 RT usage), so the full env
is NEO_OCLOC_PrintDebugMessages=1
Related-To: NEO-14473
Signed-off-by: Chodor, Jaroslaw <jaroslaw.chodor@intel.com>
This allows for using debug variables in ocloc with
a few by-design limitations :
* debug var needs to be prefixed with NEO_OCLOC_
(when setting-up at runtime as environment variable
or using .config file)
* debug var needs to be tagged with S_OCLOC scope
(at compile time, in debug_variable .inl files)
Related-To: NEO-14473
Signed-off-by: Chodor, Jaroslaw <jaroslaw.chodor@intel.com>
The patch applies to Level Zero.
Only allocations < 2MB will be fetched from the pool.
Allocations are shared and reused within a given device.
Additionally, I added a new debug flag to control the allocator:
EnableTimestampPoolAllocator
Related-To: NEO-12287
Signed-off-by: Fabian Zwoliński <fabian.zwolinski@intel.com>
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>
A change related to the tbx fault manager
incorrectly removed a switch case from
`AubHelper::isOneTimeAubWritableAllocationType`.
This fixes that and refactors some APIs to prevent
similar mistakes from happening again by cleaning
up logic.
Addresses show stopper for pre-si pytorch workflows.
Resolves: NEO-14399
Signed-off-by: Jack Myers <jack.myers@intel.com>
If flag "LogUsmReuse" is set, usm reuse will log operations to csv file.
Each line will contain: timestamp, host/device, operation type,
allocation size, true/false whether operation succeeded.
This data can then be used to produce graphs and help in analyzing
usm reuse in a particular workload.
Related-To: NEO-6893
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
- Updated `isAllocTbxFaultable` to exclude `gpuTimestampDeviceBuffer` from being
faultable.
- Replaced `SpinLock` with `RecursiveSpinLock` in `CpuPageFaultManager` and
`TbxPageFaultManager` to allow recursive locking.
- Added unit tests to verify the correct handling of `gpuTimestampDeviceBuffer`
in `TbxCommandStreamTests`.
Related-To: NEO-13748
Signed-off-by: Jack Myers <jack.myers@intel.com>
- Add primary dispatch capability for immediate command list
- turn off usage of parent linear stream for copy engine
Related-To: NEO-10356
Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
- Updated `isAllocTbxFaultable` to exclude `gpuTimestampDeviceBuffer` from being
faultable.
- Replaced `SpinLock` with `RecursiveSpinLock` in `CpuPageFaultManager` and
`TbxPageFaultManager` to allow recursive locking.
- Added unit tests to verify the correct handling of `gpuTimestampDeviceBuffer`
in `TbxCommandStreamTests`.
Related-To: NEO-13748
Signed-off-by: Jack Myers <jack.myers@intel.com>