Commit Graph

3119 Commits

Author SHA1 Message Date
Maciej Bielski
2778043d67 fix(l0): check for largeGRF when computing maxWorkGroupSize
Sizing context (PVC):
When using LargeGRF (a.k.a GRF256) there are only 4 HW threads per EU
(instead of default 8). Together with SIMD16 that means that there can
be max 64 work-items per EU. With 8 EU per subslice this gives 512
work-items on a single subslice. For correct intra-WG synchronization
all its WIs must be executed on the same subslice (to access the same
SLM, where the synchronization primitives are stored). Thus, with SIMD16
and LargeGRF the work-group size must not exceed 512 (PVC example).

So far `maxWorkGroupSize` is taken solely from a DeviceInfo structure
both in `ModuleTranslationUnit::processUnpackedBinary()` and
`ModuleImp::initialize()`. This method does not take kernel parameters
(LargeGRF) into account. It allows to submit a kernel using LargeGRF
with SIMD16 with the work-group size set to 1024. That leads to a hang.

Fix the `.maxWorkGroupSize` computation so that it takes the kernel
parameters into consideration.

Add new (for discrete platforms >= XeHP) and adapt existing tests, fix
cosmetics by the way.

Similar check for OCL:
https://github.com/intel/compute-runtime/blob/master/opencl/source/comma
nd_queue/enqueue_kernel.h#L130

Related-To: NEO-7684
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2023-02-08 11:20:52 +01:00
Spruit, Neil R
6d95965c94 Return Build Failure given native binary unpack failed
Related-To: LOCI-3956

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2023-02-07 22:03:28 +01:00
Zhang, Winston
c908f5a0b3 Flush printf from kernel during event synchronize
During event synchronize in commandlist, now the printf buffer
should get flushed out when host synchronize is called.

Related-To: LOCI-3681

Signed-off-by: Zhang, Winston <winston.zhang@intel.com>
2023-02-07 21:52:31 +01:00
Lukasz Jobczyk
1d675fc145 Add tests for split handling barrier
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-07 17:44:51 +01:00
Lukasz Jobczyk
222992000a Handle barrier correctly in L0 split
Resolves: NEO-7696

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-07 13:31:22 +01:00
Zbigniew Zdanowicz
f2be0ebfc4 Allocate and consume shared heaps atomically
Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-07 12:52:54 +01:00
Fabian Zwolinski
ee6eb70f1a Create method to deduce transfer threshold
Related-To: NEO-7564
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-02-07 10:32:24 +01:00
Kulkarni, Ashwin Kumar
bf481e6103 Add Stub Sysman APIs for Level zero specification 1.5
Related-To: LOCI-3841

Signed-off-by: Kulkarni, Ashwin Kumar <ashwin.kumar.kulkarni@intel.com>
2023-02-07 08:17:09 +01:00
Jitendra Sharma
c6ae892c1c Add new sysman directory inside level_zero
In order to support latest spec, where sysman's initialization
could happen independent of core's initialization, add a new sysman
directory inside level_zero.

Related-To: LOCI-3887

Signed-off-by: Jitendra Sharma <jitendra.sharma@intel.com>
2023-02-07 05:29:01 +01:00
Zbigniew Zdanowicz
83000acf99 Add event number to immediate command list buffer size estimation
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-06 15:51:05 +01:00
Lukasz Jobczyk
9f574b6fba Introduce barrier tracking mechanism
Related-To: NEO-7696

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-06 14:29:23 +01:00
Dunajski, Bartosz
6ebdc51fae Dynamic queue size limit in RelaxedOrdering mode
Related-To: NEO-7458

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-02-06 12:02:02 +01:00
Dunajski, Bartosz
756a9a9aaa Fix BCS split events handling in RelaxedOrdering mode
Related-To: NEO-7458

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-02-06 11:00:58 +01:00
Zbigniew Zdanowicz
7e0401d280 Add improvements to heap estimation in level zero command lists
- add estimation parameter for interface descriptor data count
- add to the heap estimation alignment parameter for dynamic and surface heaps
- extend encode interface and implementations to allow child heaps

Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-03 20:26:27 +01:00
Mayank Raghuwanshi
5a833e2c08 Add support for RAS CSC HW errors
Related-To: LOCI-3699

Signed-off-by: Mayank Raghuwanshi <mayank.raghuwanshi@intel.com>
2023-02-03 18:36:12 +01:00
Lukasz Jobczyk
43ff955199 Revert "Reuse builtin module and init selected builtin on device init"
This reverts commit bdc3499585b954c674b24c5bf21aeefd68f6fee2.

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-03 13:53:59 +01:00
Mateusz Jablonski
24c5352350 refactor: remove redundant including of compiler_cache.h
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2023-02-03 11:16:31 +01:00
Kamil Kopryk
cab4b956eb refactor: rename compiler product helper files
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-03 09:03:24 +01:00
Compute-Runtime-Validation
d0c0c60205 Revert "feat(zebin): Add support for ELF section type SHT_NOBITS"
This reverts commit fa03aa9a40.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-02-03 03:44:02 +01:00
Compute-Runtime-Validation
606a900080 Revert "Disable EUFusion for odd work groups with DPAS on DG2"
This reverts commit 017d66a469.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-02-03 02:45:21 +01:00
Bellekallu Rajkiran
47486ca55a Add support for memory health information
Get Memory health information from igsc.

Related-To: LOCI-3395

Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
2023-02-02 21:50:36 +01:00
Jaime Arteaga
51d767daea refactor: Add IPC memory data
Refactor structure and add field to pass USM memory type.

To maintain backwards compatibility with current applications,
pass 0 as type for device allocations, and 1 for host
allocations.

Related-To: LOCI-3771

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2023-02-02 20:20:31 +01:00
Kacper Nowak
fa03aa9a40 feat(zebin): Add support for ELF section type SHT_NOBITS
This commit adds support for parsing SHT_NOBITS zebin's ELF sections
(containing global/constant zero-initialized data).

Related-To: NEO-7196
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2023-02-02 14:54:51 +01:00
Zbigniew Zdanowicz
5097ef4825 Change dispatch kernel interface to provide already prepared heap objects
Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-02 14:08:43 +01:00
Maciej Plewka
017d66a469 Disable EUFusion for odd work groups with DPAS on DG2
Related-To: NEO-7495, HSD-14017007475

Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2023-02-02 13:57:42 +01:00
Kamil Kopryk
ac63175a0f Add extra check for nullptr function pointer
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-02 12:21:23 +01:00
Lukasz Jobczyk
b2c26dde65 Check if storage registry exists
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-02 11:54:27 +01:00
Kamil Kopryk
524d945e8c refactor: rename l0 hw_helpers dir to gfx_core_helpers
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-02 11:15:56 +01:00
Dominik Dabek
8da362afae fix(l0): do not memcpy on cpu if need unlock ptr
Do not use cpu memory copy on windows if need to unlock locked ptr.

Related-To: NEO-7553

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2023-02-02 10:41:39 +01:00
Kamil Kopryk
2484c7ceb2 refactor: rename hw_helper files to gfx_core_helper files
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-01 19:37:51 +01:00
Kamil Kopryk
104126ddd7 Move ProductHelper ownership to RootDeviceEnvironment
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-01 08:29:46 +01:00
Aravind Gopalakrishnan
d7a78db328 debug: Add debug key for custom event timeout
- This helps to investigate tests using debug key

Related-To: LOCI-3673

Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
2023-01-31 21:58:39 +01:00
Yates, Brandon
f53d9103ad Fix(L0Debug): Fix thread creation on dg2 128EU
Not enough EUThread objects were being created
resulting in a crash during breeakpoint
processing

Related-to: LOCI-3937

Signed-off-by: Yates, Brandon <brandon.yates@intel.com>
2023-01-31 19:48:50 +01:00
Dunajski, Bartosz
1b488224fb Enable RelaxedOrdering mode only if there are more than 2 clients
Related-To: NEO-7458

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-01-31 14:23:53 +01:00
Zbigniew Zdanowicz
34b8f08fc6 Add state base address properties tracking for command lists
Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-31 12:47:17 +01:00
Lukasz Jobczyk
2351b0f97d Disable builtin async init in aub tests
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-01-31 12:34:53 +01:00
Dunajski, Bartosz
72faa041c2 Unify L0 Queue destruction logic
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-01-31 12:21:37 +01:00
Lukasz Jobczyk
d4fe981fa9 Reuse builtin module and init selected builtin on device init
-start async thread at device initialization which initializes selected
builtins and exits
-share module across builtins using same binary

Resolves: NEO-7644

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-01-31 09:57:31 +01:00
Compute-Runtime-Validation
c726d3b3fe Revert "Reuse builtin module and init selected builtin on device init"
This reverts commit 2845414845.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-01-31 05:50:36 +01:00
Lukasz Jobczyk
2845414845 Reuse builtin module and init selected builtin on device init
-start async thread at device initialization which initializes selected
builtins and exits
-share module across builtins using same binary

Resolves: NEO-7644

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-01-30 20:40:18 +01:00
Michal Mrozek
2f847aa7bb Optimize zeMemGetAllocProperties.
- No functional changes only performance optimizations.
- add const modifiers
- add early returns
- remove not needed code
- do fast lookup for aligned pointers
- fix incorrect tests

+21% improvement in
./api_overhead_benchmark_l0 --test=GetMemoryProperties
--api=l0 --AmountOfUsmAllocations=100 --iterations=1000
+32% improvement in
./api_overhead_benchmark_l0 --test=GetMemoryProperties
--api=l0 --AmountOfUsmAllocations=1000 --iterations=1000

Related-To: NEO-7676

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2023-01-30 18:00:57 +01:00
Mayank Raghuwanshi
d7292a6b0d Add Support for sysman Performance factor on windows
Related-To: LOCI-3342

Signed-off-by: Mayank Raghuwanshi <mayank.raghuwanshi@intel.com>
2023-01-30 15:55:07 +01:00
Dunajski, Bartosz
807b7bec65 L0: Capability to set RelaxedOrdering mode per call
This is prework for future RelaxedOrdering mode optimizations

Related-To: NEO-7458

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-01-30 15:01:20 +01:00
Dunajski, Bartosz
a82f48692f Rename duplicated file names
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-01-30 11:20:28 +01:00
Lukasz Jobczyk
2abbd82195 Flush task at device init
Resolves: NEO-7642

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-01-30 10:41:42 +01:00
Kamil Kopryk
d2628babbc refactor: don't use global ProductHelper getter 20/n
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-01-30 09:29:18 +01:00
Kamil Kopryk
7b7c28cb40 refactor: don't use global ProductHelper getter 19/n
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-01-30 09:02:04 +01:00
Kamil Kopryk
004d3e3416 refactor: don't use global ProductHelper getter 18
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-01-30 08:15:39 +01:00
Spruit, Neil R
b5692c04cd Support Mapping Multiple Physical Memory with one VA and Bug Fix
- Added support for mapping any portion of a virtual allocation to a
physical mapping with a lookup function for reserved virtual addresses.
- Added support for multiple mappings linked to the same virtual
reservation.
- Fixed bug with 64 bit addresses on windows with invalid addresses
passed to the user.

Related-To: LOCI-3904, LOCI-3914, LOCI-3931

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2023-01-30 02:36:10 +01:00
Kamil Kopryk
29f54be816 refactor: don't use global ProductHelper getter 17
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-01-27 19:28:45 +01:00