Commit Graph

73 Commits

Author SHA1 Message Date
Dominik Dabek
cdfe2ce8ad Feature: Flag for device usm allocation reusing
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>
2022-06-13 20:02:52 +02:00
Artur Harasimiuk
819e0f5515 style: configure readability-identifier-naming.LocalVariableCase
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2022-05-16 12:39:44 +02:00
Dominik Dabek
8d1ad5a4f3 Refactor: use stack vector for root device indices
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>
2022-04-14 14:05:42 +02:00
Compute-Runtime-Validation
7a3976ad64 Revert "Force 64KB page size for cpu alignment in dual storage allocation"
This reverts commit 7ff6a5c1fa.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-04-07 00:45:07 +02:00
Kamil Diedrich
7ff6a5c1fa Force 64KB page size for cpu alignment in dual storage allocation
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>
2022-04-06 15:28:17 +02:00
Jaime Arteaga
c0e2251ceb Skip adding allocations to remote devices if not allocated there
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>
2022-03-16 23:58:07 +01:00
Jaime Arteaga
a010fb3634 Dont close shared handle on imported allocations
Related-To: LOCI-2272

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2022-03-06 04:35:47 +01:00
Lukasz Jobczyk
0634aa3f1b Create resource with given address
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-02-24 17:06:19 +01:00
Lukasz Jobczyk
c405fb5c2c Use shared mutex for unified memory manager
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-02-23 19:00:38 +01:00
Bartosz Dunajski
4b0d986876 Move AllocationType enum out of GraphicsAllocation class
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-02-04 17:49:09 +01:00
Milczarek, Slawomir
2be98a1e62 Create kmd migrated allocation with initial placement
Implements ZE_HOST_MEM_ALLOC_FLAG_BIAS_INITIAL_PLACEMENT
for zeMemAllocShared with KMD migrated allocation.

Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
2022-02-01 15:42:10 +01:00
Dominik Dabek
a5067d6b0b Remove duplicate check in residency container
Remove find in SVMAllocsManager
addInternalAllocationsToResidencyContainer,
not needed, CSR resolves duplicates at makeResident calls

Co-authored-by: Michal Mrozek <michal.mrozek@intel.com>

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2022-01-26 17:09:31 +01:00
Jaime Arteaga
dbf0f90186 Return pageSize in getMemAllocProperties
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2022-01-25 18:26:13 +01:00
Michal Mrozek
6df17f5a30 [3/n] Optimize indirect allocations handling.
Add new debug variable to trigger new mode.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-01-25 16:40:56 +01:00
Michal Mrozek
52d636394c [1/n] Improve indirect allocations handling.
Add new functions that would treat all indirect allocations as single pack.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-01-25 06:27:33 +01:00
Michal Mrozek
151aaf7678 Fix alignment for host allocations.
- it is 4k not 64k.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-01-24 13:24:03 +01:00
Compute-Runtime-Validation
6082865eb4 Revert "Optimize Level Zero indirect allocations handling."
This reverts commit 3ecbc55ba9.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-01-20 11:41:13 +01:00
Michal Mrozek
3ecbc55ba9 Optimize Level Zero indirect allocations handling.
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>
2022-01-19 13:08:35 +01:00
Bartosz Dunajski
e040c8c6bb Initial compression support for L0 Device allocations
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-12-16 15:55:13 +01:00
Bartosz Dunajski
dfdd3c597a Remove redundant BUFFER_COMPRESSED allocation type
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-12-07 13:35:49 +01:00
Bartosz Dunajski
9481d8a88b Compression refactor [2/n]
Dont use allocation type for compression preference

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-12-03 08:47:46 +01:00
Mateusz Jablonski
b1df167632 Move enable_product.inl to shared
extract api agnostic validators to shared
remove not needed opencl includes from neo shared


Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-10-12 22:02:16 +02:00
Michal Mrozek
06561a06b6 Restore 2MB size & alignment for CPU SVM.
Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2021-10-11 23:16:42 +02:00
Michal Mrozek
c8e79b7447 Change shared allocations required alignment to 64KB.
Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2021-10-08 13:08:11 +02:00
Mateusz Jablonski
48f01f28f5 Move core part of MemoryPropertiesHelpers to shared
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-10-07 23:14:38 +02:00
Jaime Arteaga
522d2550ee Add allocation ID to be retrieved by L0 getMemAllocProperties
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>
2021-09-15 19:22:50 +02:00
Rafal Maziejuk
bbfbf19a02 Move allowStatelessCompression from HwHelper to HwInfoConfig
Signed-off-by: Rafal Maziejuk <rafal.maziejuk@intel.com>
Related-To: NEO-4541
2021-09-09 11:37:47 +02:00
Kamil Diedrich
4390590831 Add shareable allocation for Windows
Signed-off-by: Kamil Diedrich <kamil.diedrich@intel.com>
2021-08-26 13:43:55 +02:00
Milczarek, Slawomir
eb14d8458b Add helper function to enable stateless compression
Related-To: NEO-5107

Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
2021-08-02 14:34:33 +02:00
Jaime Arteaga
b057935c7c Associate shared-allocations with device in multi-device systems
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>
2021-07-29 20:28:27 +02:00
Bartosz Dunajski
c7a936d1f4 Add memory banks to Simulated CSR
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-07-05 12:19:58 +02:00
Zbigniew Zdanowicz
ea214dd26b Select lowest subdevice when USM memory is allocated in not multicontext
Related-To: NEO-5498

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2021-06-21 18:45:11 +02:00
Bartosz Dunajski
8667f3eafa Remove incorrect check for Shared USM creation
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-06-07 14:48:33 +02:00
lgotszal
3bd4bca911 Copyright header update
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>
2021-05-17 20:38:19 +02:00
Jaime Arteaga
ddca333045 Improve support for L0 uncached device allocations
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>
2021-04-08 13:00:03 +02:00
Mateusz Jablonski
d6bbe48175 Handle SVM allocations from multi root device contexts
Related-To: NEO-5001, NEO-3691
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-03-24 11:14:39 +01:00
Krzysztof Gibala
4abe4a96b8 Add multiGraphicsAllocation to CSR
Related-To: NEO-5508
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2021-03-10 12:42:01 +01:00
Zbigniew Zdanowicz
779253c49c Add new flag to USM memory manager
Related-To: NEO-5498

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2021-03-10 11:47:34 +01:00
Zbigniew Zdanowicz
24b928303b Rename fields in AllocationProperties
Related-To: NEO-5498

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2021-03-02 18:32:37 +01:00
Slawomir Milczarek
7dad49ccf4 Add new setters and getters for cache policies
Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
2021-02-11 14:07:06 +01:00
Lukasz Jobczyk
049e77b235 Check if KMD migration is supported
Related-To: NEO-3312

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-02-04 11:49:46 +01:00
Krzysztof Gibala
c27d8c8dfd Wait for all gpuAllocation in clMemBlockingFreeINTEL call
Related-To: NEO-5422
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2021-01-20 10:28:32 +01:00
Krzysztof Gibala
ae1e5a91b4 Unlock multi device setup for shared allocation
Related-To: NEO-5422
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2021-01-15 11:08:11 +01:00
Slawomir Milczarek
068cb09c90 Add function to check for USM host allocations in SVM Allocs Manager
Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
2021-01-12 15:41:24 +01:00
Krzysztof Gibala
3385500396 Use createHostUnifiedMemoryAllocation in clHostMemAllocINTEL
Unlock multi device setup for host allocation

Related-To: NEO-5422
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2021-01-05 17:16:59 +01:00
Mateusz Jablonski
1b7d7afc07 Refactor USM properties
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>
2020-12-30 11:36:56 +01:00
Slawomir Milczarek
b2cae02f66 Add kernel fixture with stateless indirect access
Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
2020-12-15 13:23:37 +01:00
Slawomir Milczarek
ff069c1171 Enable AUB memory dumps of USM allocations
Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
2020-12-01 11:24:41 +01:00
Jaime Arteaga
6f582adf5a Only add indirect USM allocations to container once
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2020-11-06 21:46:52 +01:00
Lukasz Jobczyk
045632f355 Add new unified shared memory model
Related-To: NEO-3312

Change-Id: I640fb8d120729fa8bb2a23ff65c74c41ef27260d
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2020-11-02 19:23:40 +01:00