With flag enabled, when app calls freeSVMAlloc on device usm allocation,
don't free it immediately but save it,
and try to use it on subsequent allocations.
This allocation cache will be trimmed if an allocation fails.
Related-To: NEO-6893
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
Stack vector will not cause dynamic allocations in most circumstances
ie. number of root device indices not more than 16
Related-To: NEO-6837
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
There is no need to force 2MB alignment for CPU allocation in dual
storage usage. Additionaly for WSL this will allow to avoid usage of
malloc in driver path.
Relates-To: NEO-6620
Signed-off-by: Kamil Diedrich <kamil.diedrich@intel.com>
When making graphics allocations resident in multi-GPU scenarios,
we should make them resident only if there's an allocation for that
device. So return appropriate null pointer and skip it.
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
Make them resident directly instead of populating residency container
Remove finds, not needed, CSR resolves duplicates at makeResident calls
Observed gain is 32x for 10k indirect allocations.
Co-authored-by: Michal Mrozek <michal.mrozek@intel.com>
Co-authored-by: Dominik Dabek <dominik.dabek@intel.com>
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
extract api agnostic validators to shared
remove not needed opencl includes from neo shared
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
zeMemGetAllocProperties() specifies an ID for the allocation can be
retrieved by the application. This can be used by applications to
identify the allocation throughout the application lifetime.
We were currently returning as id the same allocation address. This
patch fixes it to return a true unique identifier for the allocation.
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
When a shared-allocation is created in a multi-device system and
no device is passed during the call, then the allocation needs to be
associated with all the devices. For now, that means we default to
creating the shared-allocation in the host, with no device-backing
memory, so all devices can access it.
However, if a device is passed, then the shared-allocation is
expected to be accessed only by that device, and there is no need
to allocate it solely in the host.
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
Dates corrected in copyright headers to reflect original publication date
(2018 for OpenCL, 2020 for Level Zero).
Signed-off-by: lgotszal <lukasz.gotszald@intel.com>
Make sure UNCACHED flags are translated into setting the MOCS index
for uncaching L3.
Related-To: NEO-5500
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
store reference to std of root device indices and device bitfields
store NEO::Device in USM properties
Related-To: NEO-3691
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>