Commit Graph

377 Commits

Author SHA1 Message Date
Dunajski, Bartosz
80d0c74605 fix: track registered CSR clients 2
Related-To: NEO-8884

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-09-25 09:35:55 +02:00
Compute-Runtime-Validation
ade538ce54 Revert "fix: track registered CSR clients"
This reverts commit 53f635e392.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-09-24 10:07:26 +02:00
Dunajski, Bartosz
53f635e392 fix: track registered CSR clients
In L0 its not possible to track objects relations. For example CmdList
may be removed before Event.
In such case, Event needs to safely skip unregister call, without
accessing CmdList/CmdQueue object.

Related-To: NEO-8884

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-09-22 09:42:55 +02:00
Dunajski, Bartosz
42496ac96d feature: initial support for patching regular in-order CmdList
Related-To: NEO-7966

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-09-21 14:20:50 +02:00
Mateusz Hoppe
69f5ca6345 feature: bindless addressing - flush state cache after reusing SS slot
- when Surface State is reused for new resource, State Cache needs to be
invalidated

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-09-20 12:53:32 +02:00
Zbigniew Zdanowicz
09ab0ca1d2 performance: remove not needed validation loop
- validation of arguments must be moved to validation layer

Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-09-20 12:35:18 +02:00
Zbigniew Zdanowicz
40e169f8e2 refactor: add batch buffer attribute for explicit monitor fence dispatch
Related-To: NEO-8395

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-09-20 12:18:32 +02:00
Zbigniew Zdanowicz
713511eea9 refactor: inline simple level zero queue method
Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-09-20 12:12:56 +02:00
Zbigniew Zdanowicz
453d01efb2 performance: remove extra loop processing command lists in execute call
Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-09-19 18:01:16 +02:00
Dunajski, Bartosz
9da60d8e07 feature: regular CmdList submission counter
This is prework for in-order cmd lists

Related-To: NEO-7966

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-09-19 16:26:38 +02:00
Dunajski, Bartosz
7562842a58 refactor: remove LogicalStateHelper
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-09-13 10:29:53 +02:00
Mrozek, Michal
d9f938f3db refactor: remove not needed code
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2023-09-12 14:25:04 +02:00
Dunajski, Bartosz
6648065703 feature: add indirect semaphore mode
Related-To: NEO-8242

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-09-12 13:15:51 +02:00
Dunajski, Bartosz
def3f2e9ad refactor: improve semaphore programming
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-09-12 11:24:11 +02:00
Dunajski, Bartosz
a7e2ac20de fix: unregister CSR client on queue synchronize
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-09-01 11:51:37 +02:00
Compute-Runtime-Validation
54bf01bd06 Revert "fix: unregister CSR client for regular cmd lists on sync points"
This reverts commit 0cf60e1ac3.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-09-01 04:24:24 +02:00
Dunajski, Bartosz
0cf60e1ac3 fix: unregister CSR client for regular cmd lists on sync points
Related-To: NEO-8321

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-08-31 17:28:48 +02:00
Compute-Runtime-Validation
21a506b045 Revert "fix: serialize printf kernel accesses using device-wise locks"
This reverts commit 3d33366ff6.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-08-24 19:29:14 +02:00
Lu, Wenbin
3d33366ff6 fix: serialize printf kernel accesses using device-wise locks
Related-To: LOCI-4114

Signed-off-by: Lu, Wenbin <wenbin.lu@intel.com>
2023-08-22 14:57:08 +02:00
Dunajski, Bartosz
f3b2458a9c fix: Use immediate command queue instead of CSR to obtain TaskCount.
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-08-21 15:04:46 +02:00
Dunajski, Bartosz
9d943e484e fix: stall RelaxedOrdering when submitting regular cmd list
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-08-18 14:20:31 +02:00
John Falkowski
2403212dcd fix: chunking prefetch add USER_FENCE
Add USER_FENCE before PREFETCH call and after the BIND

Related-To: NEO-8098

Signed-off by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
Signed-off-by: John Falkowski <john.falkowski@intel.com>
2023-08-17 21:32:47 +02:00
Fabian Zwolinski
6fca8ee195 refactor: Remove SourceLevelDebugger
Removed:
- SourceLevelDebugger (with tests)
- DebuggerLibrary
- DebuggerLibraryRestore
- debuggerSupported field from hwInfo.capabilityTable
- HasSourceLevelDebuggerSupport matcher
- ExperimentalEnableSourceLevelDebugger debug var
- EnableMockSourceLevelDebugger debug var
- DebuggerOptDisable debug var
- lib_names.h.in file
- third_party/source_level_debugger/igfx_debug_interchange_types.h

Related-To: NEO-7213
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2023-08-10 11:14:02 +02:00
Zbigniew Zdanowicz
be9d1f0589 fix: update context base address state after execution of regular command list
Related-To: NEO-7808

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-08-04 11:12:28 +02:00
Mateusz Hoppe
bcba74f839 feature: bindless global allocator with scratch
- allocate SSH in cmdContainer when scratch allocation used with
private heaps
- scratch SurfaceStates are addressed relative to
SurfaceStateBaseAddress and have to be placed on SSH
- remove not used SCRATCH_SSH heap type from bindelssHeapHelper

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-08-03 13:24:59 +02:00
Mateusz Hoppe
997b599168 fix(debugger): pass correct sipAllocation to makeResident
- sipAllocation for context must be resident in Offline mode

Related-To: NEO-7630

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-07-28 20:51:12 +02:00
Baj, Tomasz
4ca213d4d7 fix: commandContainer is nullptr in LinearStream for immediate cmdList
Related-To: GSD-4084
Signed-off-by: Baj, Tomasz <tomasz.baj@intel.com>
2023-07-24 15:06:18 +02:00
Zbigniew Zdanowicz
3f7269d401 fix: make sip state programing once for all level zero command queues
Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-07-11 11:34:21 +02:00
Mateusz Hoppe
4aba0f0340 feature: global bindless surface state base support
- program global bindless ssba when external allocator used (
UseExternalAllocatorForSshAndDsh)

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-07-06 18:31:49 +02:00
Dunajski, Bartosz
aea5f435db feature: unregister CSR client on Event host synchronize
Related-To: NEO-7458

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-06-26 12:02:14 +02:00
Joshua Santosh Ranjan
97b4d8bab5 feature: add initial support for host mapped timestamps
Related-To: LOCI-4171

Signed-off-by: Joshua Santosh Ranjan <joshua.santosh.ranjan@intel.com>
2023-06-26 08:29:58 +02:00
Lukasz Jobczyk
c5f61cce85 fix: Ensure flat ring buffer disabled on regular cmd lists
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-06-19 16:27:57 +02:00
Mateusz Hoppe
0844ca0ac8 refactor: cleanup getBindlessMode() usage
- getGlobalBindlessHeapConfiguration() should be used to choose global
alloctor for SSH
- remove not needed and incorrect unit tests
- remove not needed branches
- bindless mode controls bindless compilation only

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-06-06 17:23:13 +02:00
Mateusz Hoppe
1c196b9f3d refactor: change ApiSpecificConfig functions names
- better description of the meaning of functions

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2023-05-30 09:20:01 +02:00
Lukasz Jobczyk
8e51d9ae90 fix: add missing host ptr assignment increment
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-05-22 11:54:24 +02:00
Compute-Runtime-Validation
646f596057 Revert "fix: add missing host ptr assignment increment"
This reverts commit bb86dba152.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2023-05-22 09:19:04 +02:00
Lukasz Jobczyk
bb86dba152 fix: add missing host ptr assignment increment
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2023-05-19 14:53:27 +02:00
Zbigniew Zdanowicz
01c20212c3 performance: limit number of copies of dirty flags and state values
Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-05-09 09:45:41 +02:00
Zbigniew Zdanowicz
7b0283e810 performance: allocate states vector together with command list
Allocating vector backing storage on stack makes it allocated
together with the whole command list object.
So no second use of heap for the state changes vector data.

Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-28 16:11:51 +02:00
Zbigniew Zdanowicz
fd77b10c6f performance: lower the number of expected state changes in single exec call
State changes are kept in vector that is reserved for 32 state changes in
single execute call. It can be useful when multiple commands are executed
at once.
More workload use single or few command lists and so creation time of command
queue could be more benefitial.

Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-28 13:10:11 +02:00
Zbigniew Zdanowicz
5adc1816ff performance: add platform check to get default flag for primary batch buffer
Related-To: NEO-7807

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-26 13:39:53 +02:00
Zbigniew Zdanowicz
c0fcdef03e performance: remove not needed estimation
Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-25 14:47:43 +02:00
Zbigniew Zdanowicz
f451207372 performance: dispatch and chain command list batch buffers as primary
Command list batch buffers should be chained when no dynamic or global preamble
is present in command queue.
Return to command queue, when preamble is required.
Chain last command list to the command queue epilog.
Provide first command list batch buffer to KMD/ULLS when no command queue
preamble.

Related-To: NEO-7807

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-25 13:24:11 +02:00
Zbigniew Zdanowicz
09ef0201c6 fix: correctly assign state transition when same command list executed twice
Single command list object can be passed multiple times to the execution
command list.
Not all command list instances might require dynamic preamble, as it depends
what state is before particular command list instance.
Correctly assign the particular instance of command list to state transition.

Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-24 11:38:44 +02:00
Zbigniew Zdanowicz
6c6cf9dd0c performance: correct setting global init for debugger scenarios
Global init flag is useful only for once per context initialization.
Correctly set the flag can save the visits to these once per context
calls.
Debugger programming is active not only when queue type allows it,
but also when commands state is dirty and debugger class available.

Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-24 09:42:32 +02:00
Zbigniew Zdanowicz
669665deff performance: primary batch buffer use only on regular command lists
Immediate command list can use internal command queue.
Immediate command list then uses variable start offset and it does not
work with primary batch buffer.

Related-To: NEO-7807

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-19 19:36:51 +02:00
Zbigniew Zdanowicz
21ac5f2835 [perf] transition hw state only once, then dispatch command when needed
Before state transition was done twice, 1st time for estimation, 2nd time for
dispatch.
Now state transitions only during estimation and required state is saved then.
Commands are dispatched only when command list and property are marked to
dispatch.
During regular workload submission transition is performed only once and it
should be benefitial to reduce host overhead.

Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-19 16:31:12 +02:00
Zbigniew Zdanowicz
f5f073b9fc [perf] move validation call before lock
Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-14 10:53:46 +02:00
Zbigniew Zdanowicz
cd899871b1 [perf] tweak front end programing to remove not needed steps
1. separate front end programing when tracking is enabled and disabled, it will
limit number of conditional checks.
2. setup command list front end properties only when front end state is dirty.
3. instanced context id should be set once, as this is one time per context
property.

Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-13 11:43:26 +02:00
Zbigniew Zdanowicz
1a4dda57e7 [perf] reallocate residency container once for all command lists
When getting residency count for all command lists, driver is able to
reallocate container only once and not per each command list.
Add non-zero initial value for command queue residual allocations.

Related-To: NEO-7828

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-04-13 11:28:42 +02:00