Commit Graph

180 Commits

Author SHA1 Message Date
Mateusz Hoppe
5956aea18d Limit header includes from level_zero device.h
- remove including debugger_l0.h from device.h
- add getL0Debugger() to shared NEO Device

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-07-06 16:41:17 +02:00
Bartosz Dunajski
76d905b1f2 Pass LogicalStateHelper to SBA helper
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-07-01 14:52:20 +02:00
Bartosz Dunajski
f2bbd63d37 Refactor SBA handling + fix unit tests
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-06-29 13:27:57 +02:00
Bartosz Dunajski
2d976098f5 Use LogicalStateHelper to program FrontEndState
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-06-27 19:42:54 +02:00
Lukasz Jobczyk
b1bdd83e13 Disable task count update from wait on regular command lists
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-06-23 19:56:56 +02:00
Bartosz Dunajski
0b5269d4ae Use LogicalStateHelper to program CSR allocation
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-06-22 21:19:57 +02:00
Bartosz Dunajski
f4485ec541 Use LogicalStateHelper for SIP programming
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-06-22 13:46:57 +02:00
John Falkowski
620bb970f4 Resubmit fix for task count hang
Signed-off-by: John Falkowski <john.falkowski@intel.com>
2022-06-07 16:28:17 +02:00
Mateusz Jablonski
747c2d3d83 Cleanup includes in cmdlist, cmdqueue, context, device, driver and module
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-06-03 02:54:41 +02:00
Mateusz Jablonski
2a4c68dc38 Remove not needed dependencies from device_imp.h
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-06-02 18:35:34 +02:00
Jaime Arteaga
359e848dbe Revert "Fix for task count hang issue"
This reverts commit 340ba8bf56.

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2022-05-25 20:34:00 +02:00
Mateusz Hoppe
66c1727398 Program SIP end WA for non-copyOnly cmd queues
Resolves: NEO-6949

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-05-23 13:51:26 +02:00
John Falkowski
340ba8bf56 Fix for task count hang issue
Signed-off-by: John Falkowski <john.falkowski@intel.com>
2022-05-18 19:35:12 +02:00
Aravind Gopalakrishnan
31b2433b2f Avoid implicit sync for async mode immediate copy queue
Related-To: LOCI-1988

Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
2022-04-27 08:50:18 +02:00
Mateusz Hoppe
5911515ed0 Refactor debugger code
- helper sets all SbaAddresses for debugger in
EncodeStateBaseAddress<GfxFamily>::setSbaAddressesForDebugger()
- change DebuggerL0::captureStateBaseAddress() to take
LinearStream
- move getSbaTrackingCommandsSize() to Debugger class

Related-To: NEO-6845

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-04-21 13:04:34 +02:00
Mateusz Jablonski
b5b8762faf refactor direct submission: Pass command stream receiver to ctor
Related-To: NEO-6643

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-04-19 23:02:55 +02:00
Patryk Wrobel
19dded25ef Detect GPU hang in remaining calls of command queue and list
This change introduces checking of waits status in
CommandQueue and CommandList classes.

Related-To: NEO-6681
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-11 13:31:44 +02:00
Zbigniew Zdanowicz
6f0f15a0b8 Save separate flush call for synchronous command queue
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-04-07 15:51:17 +02:00
Jobczyk, Lukasz
335bf2fdb2 Update flushed task count when task count write was dispatched
Signed-off-by: Jobczyk, Lukasz <lukasz.jobczyk@intel.com>
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-04-05 11:00:51 +02:00
Filip Hazubski
f09fd527f1 Remove redundant using declarations
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2022-04-04 17:10:21 +02:00
Michal Mrozek
9016772351 No dynamic allocations on hot calls [2/n]
- Prevent FULL vector copy.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-04-01 16:22:09 +02:00
Mateusz Hoppe
beff0019d1 SBA tracking for single address space
Related-To: NEO-6539


Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-04-01 15:24:11 +02:00
Mateusz Hoppe
681c09d314 Extend LinearStream with gpuBase
- added methods to set and query gpu base address

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2022-03-29 15:15:53 +02:00
Compute-Runtime-Validation
34a5c6cd28 Revert "Remove programming first SCM from the command list"
This reverts commit 9c06af79ad.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-03-28 11:15:35 +02:00
Zbigniew Zdanowicz
bb753784cc Optimize post sync operations for fence and task count update
Related-To: NEO-6242

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-03-25 10:57:10 +01:00
Lukasz Jobczyk
a230f267e1 Poll task count indefinitely on high throttle command queue
Resolves: NEO-6781

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-03-25 10:06:16 +01:00
Krzysztof Gibala
ebc006ad53 Move SBA related WAs logic from CSR to EncodeWA
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2022-03-24 12:24:56 +01:00
Filip Hazubski
9c06af79ad Remove programming first SCM from the command list
For first kernel in command list the required state described with SCM
command is stored and programmed when the command list is executed, only
if current stream state requires reprogramming.

Resolves: NEO-6728

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2022-03-21 11:24:07 +01:00
Zbigniew Zdanowicz
46f4472965 Refactor Fence class interface and implementation
Related-To: NEO-6242

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-03-21 10:35:26 +01:00
Bartosz Dunajski
c843d152ce Enable prepatcher WA for L0
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2022-03-11 15:20:32 +01:00
Filip Hazubski
3eab7009ac Move SCM related WAs logic from CSR to EncodeComputeMode
This will help with unifying the logic between APIs and GENs.

Related-To: NEO-6728

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2022-03-11 14:00:53 +01:00
Konstanty Misiak
cf1bc3a2ba Disable EU fusion based on kernel properties from compiler
Related-To: NEO-6633

Signed-off-by: Konstanty Misiak <konstanty.misiak@intel.com>
2022-02-28 18:50:38 +01:00
Patryk Wrobel
7f729b7f89 Detect GPU hang in clWaitForEvents
This change:
- moves NEO::WaitStatus to a separate file
- enables detection of GPU hang in clWaitForEvents
- adjusts most of blocking calls in CommandStreamReceiver to return WaitStatus
- adds ULTs to cover the new code

Related-To: NEO-6681
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-02-23 13:33:09 +01:00
Igor Venevtsev
60d6505932 L0 debugger - reports process ENTER/EXIT events for zeCommandQueues
- PROCESS_ENTRY - triggered by first zeCommandQueueCreate()
- PROCESS_EXIT  - triggered by last zeCommandQueueDestroy()

Resolves: NEO-6503

Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
2022-02-16 16:28:33 +01:00
Patryk Wrobel
1275c4e200 Detect GPU hang in remaining blocking calls of L0
This change introduces detection of GPU hangs in
zeEventHostSynchronize and zeFenceHostSynchronize.
Furthermore, if CommandQueueHw::executeCommandLists
uses ZE_COMMAND_QUEUE_MODE_SYNCHRONOUS and hang occurs,
the information about it is propagated to the caller.

Related-To: NEO-6681
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-02-16 14:47:29 +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
Dominik Dabek
fb1a008414 Change fences to use tag allocation
Instead of creating new allocation per fence, use the task count.
Fence synchronize will wait for task count update.

Related-To: NEO-6634

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
2022-02-02 11:56:29 +01:00
Aravind Gopalakrishnan
63a8908744 [1/n] L0 Immediate Commandlist improvements
Add indirect allocs to residency in flushTask

Related-To: LOCI-1988

Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
2022-02-01 01:39:23 +01:00
Patryk Wrobel
498cf5e871 Implement GPU hang detection
This change uses DRM_IOCTL_I915_GET_RESET_STATS to detect
GPU hangs. When such situation is encountered, then
zeCommandQueueSynchronize returns ZE_RESULT_ERROR_DEVICE_LOST.

Related-To: NEO-5313
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-01-31 13:48:17 +01:00
Michal Mrozek
3d9548cee9 [5/n] Optimize Indirect Allocations.
Enable mechanism where feasible.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-01-26 16:01:10 +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
Fabian Zwolinski
d9bf1886c2 Remove GMock from GMockMemoryManagerFailFirstAllocation, GMockMemoryManager...
Removed GMock from
- GMockMemoryManagerFailFirstAllocation
- GMockMemoryManager
- TestEventCsr
- MockKmdNotifyCsr
- MockMemoryOperationsHandlerTests
- GmockGmmMemory
- MockMemoryManagerCommandQueueSBA
- TestCmdQueueCsr

Renamed:
- GMockMemoryManagerFailFirstAllocation -> MockMemoryManagerFailFirstAllocation

Moved class body:
- GMockMemoryManager to MockMemoryManager
- GmockGmmMemory to MockGmmMemoryBase

Related-To: NEO-4914
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2022-01-20 16:08:34 +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
Raiyan Latif
394c0e90e1 Return error when failing on submission
Signed-off-by: Raiyan Latif <raiyan.latif@intel.com>
2022-01-12 16:42:30 +01:00
Spruit, Neil R
02f075c541 Power Saving Hint Support for Level Zero in Windows
- Added Functionality to pass ze_power_saving_hint_type_t to zeContextCreate
included in the pNext extensions in ze_context_desc_t.
- Enables handling a hint value 0-100 with 0 being no power savings
and 100 being maximum power savings.
- ZE_RESULT_ERROR_INVALID_ENUMERATION is returned given an invalid hint.

Related-To: LOCI-2567

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2022-01-06 23:56:59 +01:00
Filip Hazubski
5be4d89b73 Rename function
Rename MemorySynchronizationCommands::isDcFlushAllowed
to MemorySynchronizationCommands::getDcFlushEnable

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-12-30 17:03:22 +01:00
Filip Hazubski
f4c151cce5 Refactor PipeControlArgs struct
Remove struct PipeControlArgsBase

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-12-22 17:13:16 +01:00
Filip Hazubski
9a450d1b74 Pass hwInfo to appendMiFlushDw
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-12-22 15:22:47 +01:00
Filip Hazubski
0fd685541d Add isDcFlushAllowed function to HwInfoConfig
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-12-21 18:29:43 +01:00