This change caches the most used MOCS values:
* getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST);
* getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
* getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
inside gmmHelper class during initialization to avoid repeated
calls of virtual functions, branches and/or gmm lib access.
and adds more readably corresponding getters:
* getL1EnabledMOCS
* getL3EnabledMOCS
* getUncachedMOCS
If force all resources uncached is called,
these 3 cached mocs values are reinitialized
It also changes the order of gmmHelper members, to avoid
not needed padding after addressWidth
and simplifies logic in getMocsIndex function
for xehp and later products.
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
When is2MBLocalMemAlignmentEnabled returns true,
increase pool size for builtins from 64k to 2MB.
Additionally, set appropriate alignment for kernel ISA heap allocations.
Additionally, configure isaAllocationPageSize based on productHelper
Related-To: NEO-12287
Signed-off-by: Fabian Zwoliński <fabian.zwolinski@intel.com>
Refactor buffer pool allocator to support configurable
SmallBuffersParams based on product helper capabilities.
This patch enables setting custom pool
parameters instead of using fixed static values.
For devices with 2MB local memory alignment enabled
(is2MBLocalMemAlignmentEnabled),
use larger pool configuration:
- Pool size: 16MB (up from 2MB)
- Threshold: 2MB (up from 1MB)
- Alignment: 64KB (unchanged)
- Starting offset: 64KB (unchanged)
This improves memory utilization for devices supporting larger memory
alignments
while maintaining original parameters for other devices.
Key changes:
- Moved params from static template to instance member
- Added SmallBuffersParams struct with default/large configs
- Added constructor and setter methods for params configuration
Related-To: NEO-12287
Signed-off-by: Fabian Zwoliński <fabian.zwolinski@intel.com>
This commit enabled the use of the array image type with array size 1
from Xe2.
Additinally, it removes two incorrect unit tests, as array size of 0 is not
correct with the OpenCL specification.
Related-To: NEO-13976
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Moved global functions to the ImageSurfaceStateHelper class,
with declarations in the header file and definitions in the base .inl
file.
This change reduces compilation time by:
- removing unnecessary includes from the header file
- adding explicit template instantiations, which are faster than
implicit template instantiations.
Additionally, the image_skl_and_later.inl file has been removed as it
is no longer needed, and its implementation has been moved to the base .inl
Related-To: NEO-12149
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Track amount of created buffer pools per device. Do not allocate extra
pools if limit is reached. New contexts will have pooling disabled if
limit is reached on device.
Related-To: NEO-13461
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
Performs minor renaming (mostly capitalization) in order to align with
specification.
Renames L1_CACHE_POLICY to L1_CACHE_CONTROL.
Related-To: NEO-13147
Signed-off-by: Vysochyn, Illia <illia.vysochyn@intel.com>
When debug flag ForceZeroCopyForUseHostPtr is set, add
CL_MEM_FORCE_HOST_MEMORY_INTEL flag to buffers created with
CL_MEM_USE_HOST_PTR.
This makes the buffers use zero copy.
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>