Commit Graph

3161 Commits

Author SHA1 Message Date
Lukasz Jobczyk
4e19807783 Add ClientNotRegistered constexpr definition
Related-To: NEO-7422, NEO-7458

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-15 14:49:11 +01:00
Filip Hazubski
4b7782d2ab refactor: Do not use api version when calculating driver version
Previous design allowed driver version to be no greater than 16-bit.
New design allows driver version to use (almost) whole 32-bit size limit.

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2023-02-15 14:16:32 +01:00
Warchulski, Jaroslaw
89ddfbb83c Cleanup includes 54
Cleaned up files:
level_zero/tools/test/unit_tests/sources/sysman/windows/mock_sysman_fixture.h
shared/test/common/os_interface/windows/wddm_fixture.h
shared/test/unit_test/command_stream/compute_mode_tests.h
shared/test/unit_test/encoders/walker_partition_fixture_xehp_and_later.h
shared/test/unit_test/fixtures/preemption_fixture.h
shared/test/unit_test/helpers/blit_commands_helper_tests.inl
shared/test/unit_test/helpers/simd_helper_tests.inl

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-15 13:59:56 +01:00
Fabian Zwolinski
bd2204af5e Check for nullptr before gpuAllocation dereference
There is a possibility that getGraphicsAllocation returns nullptr, so
accessing storageInfo would cause a Segmentation fault.
This change prevents that by simply nullptr checking.

Related-To: LOCI-4032
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-02-15 13:42:29 +01:00
Maciej Bielski
9882e992ac Revert "refactor(l0): follow-up cleanup after adding LargeGRF fix"
This reverts commit 871a3bd11d.
This is due do Elmo regression.

Related-To: NEO-7684, HSD-18027378546

Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2023-02-15 13:38:33 +01:00
Warchulski, Jaroslaw
8c17313c8b Cleanup includes 53
Cleaned up files:
opencl/source/mem_obj/image.inl
shared/offline_compiler/source/decoder/zebin_manipulator.h
shared/source/aub_mem_dump/aub_alloc_dump.h
shared/source/compiler_interface/intermediate_representations.h
shared/source/helpers/blit_commands_helper_base.inl
shared/source/utilities/debug_file_reader.h
shared/source/utilities/software_tags.h
shared/source/xe_hpc_core/hw_cmds_pvc.h

Related-To: NEO-5548

Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-15 13:21:14 +01:00
Jaime Arteaga
07598fb5e0 feature: Affinity mask plus ReturnSubDevicesAsApiDevices
When using ReturnSubDevicesAsApiDevices=1 to have
sub-devices-as-root-devices, then the driver should read the values
passed in the mask as those corresponding to the physical
sub-devices.

For instance, in a dual system with multi-tile device, we would have:

card 0, tile 0
card 0, tile 1
card 1, tile 0
card 1, tile 1

With:
ReturnSubDevicesAsApiDevices=0
ZE_AFFINITY_MASK=0,1

Then all tiles in card 0 and card 1 need to be exposed.

With:
ReturnSubDevicesAsApiDevices=1
ZE_AFFINITY_MASK=0,3

Then card 0 tile 0, and card 1 tile 1 need to be exposed.

Related-To: NEO-7137

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2023-02-15 12:28:46 +01:00
Lukasz Jobczyk
275bed2a31 Register csr's client at first submit
Related-To: NEO-7422, NEO-7458

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-15 11:31:59 +01:00
Zbigniew Zdanowicz
2b06aa1129 Drop support flags of always supported properties
- stateless mocs is present in all state base address commands
- select GPGPU pipeline is present in all pipeline select commands

Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-15 10:11:02 +01:00
Spruit, Neil R
44ec497b1a feature: Allow for Allocating a base address in the heap and grow an allocation
Related-To: LOCI-3871

- Enabled allocation of specified base address in the targeted heap.
- Enabled virtual memory reservations to grow by allocating at the start
of the heap vs the end of the heap.

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2023-02-15 08:13:38 +01:00
Zbigniew Zdanowicz
6308c1b210 Correct state compute mode transitions on platforms with disabled tracking
Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-14 21:56:23 +01:00
Zbigniew Zdanowicz
6b1c5b7eb8 Update state properties only affected by kernel data
Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-14 14:56:47 +01:00
Bellekallu Rajkiran
1c63753ebe feature(sysman): Support for reset event upon repair
Related-To: LOCI-3720

Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
2023-02-14 08:12:22 +01:00
Jaime Arteaga
dcea913fbc feature: Add support for host IPC allocations
Add support for importing and exporting host allocations.

Related-To: LOCI-3771

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2023-02-14 00:50:44 +01:00
Zbigniew Zdanowicz
98b60ba148 Change state tracking interfaces to split properties update
Related-To: NEO-5055

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-13 18:36:21 +01:00
Maciej Plewka
429be6b4cb 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-13 15:27:49 +01:00
Wrobel, Patryk
4c58eda90d Ensure that BO handle is closed only once
When one process had exported and then opened IPC handle
of memory, then close function was called twice for the
same BO handle. It caused debugBreak() and aborted
an application.

This change allows multiple separate BOs to share one
handle. The last shared handle owner calls close() function.

Related-To: NEO-7200
Signed-off-by: Wrobel, Patryk <patryk.wrobel@intel.com>
2023-02-13 14:42:49 +01:00
Lukasz Jobczyk
7eb91e3b04 Split the L0 BCS split into D2H and H2D
-use separate pair of engines for D2H and H2D transfers

Related-To: NEO-7716

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-13 14:17:39 +01:00
Lukasz Jobczyk
7ad78a28ff Fix profiling in BCS split
-program profiling start after event waitlist

Resolves: NEO-7723

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-13 12:22:00 +01:00
Warchulski, Jaroslaw
5ec9de90ee Cleanup includes 52
Cleaned up files:
level_zero/core/source/driver/driver.h
level_zero/tools/source/sysman/fabric_port/windows/os_fabric_port_imp.h
level_zero/tools/source/sysman/pci/os_pci.h
shared/source/debug_settings/debug_settings_manager.h
shared/source/gmm_helper/page_table_mngr.h
shared/source/gmm_helper/windows/gmm_memory_base.h
shared/source/kernel/kernel_arg_metadata.h
shared/test/common/libult/linux/drm_mock.h
shared/test/unit_test/fixtures/command_container_fixture.h
shared/test/unit_test/fixtures/product_config_fixture.h
shared/test/unit_test/helpers/simd_helper_tests_pvc_and_later.inl
shared/test/unit_test/os_interface/hw_info_config_tests.h

Related-To: NEO-5548

Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-13 11:39:34 +01:00
Lukasz Jobczyk
073de9db62 Do not track split internal events as a barrier
Related-To: NEO-7723, NEO-7716

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-13 11:19:00 +01:00
Lukasz Jobczyk
e6181d7933 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-02-13 10:55:57 +01:00
Mayank Raghuwanshi
07d3353b1f Add support for sysman zesFabricPortGetFabricErrorCounters API
Related-To: LOCI-3398

Signed-off-by: Mayank Raghuwanshi <mayank.raghuwanshi@intel.com>
2023-02-13 06:50:23 +01:00
Warchulski, Jaroslaw
48ed9f9c92 Cleanup includes 51
Cleaned up files:

shared/source/gen12lp/hw_cmds_base.h

Related-To: NEO-5548

Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-10 21:54:48 +01:00
Warchulski, Jaroslaw
b224ec947e Cleanup includes 50
Cleaned up files:
shared/source/helpers/hw_info.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-10 20:26:13 +01:00
Warchulski, Jaroslaw
64f735481d Cleanup includes 48
Cleaned up files:
shared/source/command_container/command_encoder.inl
shared/source/os_interface/hw_info_config.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-10 17:23:02 +01:00
Warchulski, Jaroslaw
a2e6a8284b Cleanup includes 47
Cleaned up files:
level_zero/tools/source/debug/windows/debug_session.h
level_zero/tools/source/sysman/memory/windows/os_memory_imp.h
level_zero/tools/source/sysman/windows/kmd_sys_manager.h
opencl/test/unit_test/aub_tests/command_stream/copy_engine_aub_tests_xehp_and
shared/source/command_container/command_encoder.inl
shared/source/command_stream/command_stream_receiver_hw_xehp_and_later.inl
shared/source/helpers/blit_commands_helper_base.inl
shared/test/unit_test/image/image_surface_state_fixture.h
shared/test/unit_test/os_interface/windows/os_interface_win_tests.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-02-10 17:07:30 +01:00
Kacper Nowak
7790e208fd 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).
- Correction: in CTNI path, do not add related symbol if surface has not
been allocated.

Related-To: NEO-7196
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2023-02-10 16:17:16 +01:00
Fabian Zwolinski
c0664896ad Refactor preferCopyThroughLockedPtr method
Use getTransferType, getTransferThreshold in
preferCopyThroughLockedPtr to make the decision clear for which
Transfer Types is CpuMemCopy enabled.

Related-To: NEO-7564
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-02-10 13:42:37 +01:00
Kamil Kopryk
d8d1b7f331 Initialize status variable
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-10 11:01:47 +01:00
Kamil Kopryk
2887f2d936 refactor: fix typo - specified
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2023-02-10 10:28:32 +01:00
Fabian Zwolinski
2843a78bc6 Separate Device and Shared transfer types
This PR gives us the ability to distinguish shared allocation from
device allocation.

Related-To: NEO-7564
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-02-10 10:09:27 +01:00
Lukasz Jobczyk
45a3e90cb1 Check if BCS is available when initializing split
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-02-10 09:33:21 +01:00
Jaime Arteaga
b8c1c0f600 Revert "Fix: Remove allocation from sharedMakeResidentAllocations on free"
This reverts commit fd16fee707.

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2023-02-10 00:02:54 +01:00
Jaime Arteaga
f3a8944027 Revert "Enable LUID Extension by Default"
This reverts commit 8b4fe7093d.

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2023-02-09 23:58:28 +01:00
Zbigniew Zdanowicz
1740e1e747 Limit properties update for immediate command list to used in flush task
Related-To: NEO-7701

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-09 17:45:43 +01:00
Zbigniew Zdanowicz
783df81a44 Unify flush task getter implementation of product and core helpers
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-02-09 16:42:35 +01:00
Compute-Runtime-Validation
526297fa8f Revert "Reuse builtin module and init selected builtin on device init"
This reverts commit 3be46ef645.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-02-09 15:40:38 +01:00
Compute-Runtime-Validation
143299a7a0 Revert "Flush printf from kernel during event synchronize"
This reverts commit c908f5a0b3.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-02-09 15:35:12 +01:00
Maciej Bielski
871a3bd11d refactor(l0): follow-up cleanup after adding LargeGRF fix
Fixup for 2778043d67

Related-To: NEO-7684

Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
2023-02-09 15:33:57 +01:00
Neil R Spruit
188f64adfd Fix IPC Event pools allocated for single device used on multidevice
Related-To: LOCI-3860

- Fixed IPC Event pools that are allocated for a single device such that
when opened thru IPC only that device handle can be used by the process
which opened the IPC event pool.

- IPC Event handle includes numDevices as a field to determine if the
root device index is the only index allowed for this event pool.

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2023-02-09 15:16:52 +01:00
Lukasz Jobczyk
3be46ef645 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-02-08 17:04:42 +01:00
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