Commit Graph

88 Commits

Author SHA1 Message Date
Lukasz Jobczyk
5f5a1a6f81 Assign BCS at first blit enqueue
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-04-25 13:48:21 +02:00
Lukasz Jobczyk
6fdcb83020 Add missing tbx calls to timestamp wait logic
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-04-19 14:24:06 +02:00
Lukasz Jobczyk
aa46dd9cdf Assign data only to unused barrier timestamps
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-03-30 16:56:06 +02:00
Lukasz Jobczyk
a74ae8f6af Implement timestamp wait for events
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2022-03-17 17:57:30 +01:00
Michal Mrozek
bfacd14b61 Remove not needed code.
Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2022-03-02 13:10:15 +01:00
Patryk Wrobel
0ecc7c5e3b Detect GPU hangs in clFinish
This change introduces detection of GPU hangs in
clFinish function as well as unit tests to cover
the new code.

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-02-28 19:07:36 +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
Lukasz Jobczyk
418a8854b2 Skip timestamp wait when enqueue non kernel operation
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-12-30 10:02:07 +01:00
Lukasz Jobczyk
95585a81f7 Optimize timestamp packet dependencies
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-12-30 09:48:36 +01:00
Lukasz Jobczyk
14e338e669 Revert "Optimize timestamp packet dependencies"
This reverts commit c365b422963917e7b882f9db985969c036f0fa3f.

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-12-23 14:29:29 +01:00
Lukasz Jobczyk
1f0c58d0bf Refactor timestamp wait mechanism
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-12-16 13:22:19 +01:00
Bartosz Dunajski
fe8cb190bc Remove deprecated code
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-12-14 11:36:10 +01:00
Michal Mrozek
ebb16c8b74 Add new debug key to control dependency resolution.
Currently only supported scenario is one in order queue.
Instead of resolving dependencies via semaphores, do this with pipe controls.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2021-12-09 17:26:38 +01:00
Lukasz Jobczyk
0c49fa8203 Add missing cache flush for blocked path
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-12-07 12:36:34 +01:00
Maciej Dziuban
e3bb526067 Optimize timestamp packet dependencies
- Clear dependencies even if last engine changed
- Do no program semaphore waiting for blit when blit is submitted with gpgpu
- Track barrier timestamps to correctly synchronize blits in OOQ

Related-To: NEO-6444
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-12-07 11:47:50 +01:00
Lukasz Jobczyk
09d2ffb9ed Add missing cache flush
Resolves: NEO-6505

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-12-06 17:28:12 +01:00
Lukasz Jobczyk
63116e4100 Use wait utils while waiting for timestamps
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-12-02 17:49:05 +01:00
Lukasz Jobczyk
36efe72e3e Add wait on timestamp mechanism
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-12-01 08:48:00 +01:00
Maciej Dziuban
457ef00abf Reuse graphics allocations in svmMemcpy
Related-To: NEO-6352
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-11-17 14:03:05 +01:00
Lukasz Jobczyk
e8cc34d7b0 Add infrastructure to assign engine to command queue with round robin
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-11-15 13:13:40 +01:00
Maciej Dziuban
b8a03cdea1 Remove getAnyBcs() method
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-11-10 18:55:37 +01:00
Compute-Runtime-Validation
908a7721b2 Revert "Assign engine to command queue using round robin algorithm"
This reverts commit 2fff0f9059.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-11-10 07:25:44 +01:00
Lukasz Jobczyk
2fff0f9059 Assign engine to command queue using round robin algorithm
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-11-09 11:05:16 +01:00
Compute-Runtime-Validation
9058de77cc Revert "Assign engine to command queue using round robin algorithm"
This reverts commit 1c68ac1cbc.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-11-08 16:36:18 +01:00
Maciej Dziuban
4c4b37f8d2 Implement BCS selection heuristic for OpenCL CommandQueue
Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-11-08 12:58:14 +01:00
Lukasz Jobczyk
1c68ac1cbc Assign engine to command queue using round robin algorithm
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2021-11-03 17:16:54 +01:00
Maciej Dziuban
a582f34c04 Reuse graphics allocations in readBufferRect/writeBufferRect
Related-To: NEO-6352
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-11-03 14:58:51 +01:00
Kamil Diedrich
5fdcb14d57 WSL fallback to staging buffer on blocking reads
Signed-off-by: Kamil Diedrich <kamil.diedrich@intel.com>
2021-10-28 03:34:58 +02:00
Maciej Dziuban
19a6c9b1d3 Track separate task count for each BCS in OpenCL CommandQueue
Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-10-13 12:06:27 +02:00
Maciej Dziuban
c910a58aa0 Store bcsEngine in an std::vector in OpenCL CommandQUeue
Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-10-07 21:55:21 +02:00
Maciej Dziuban
c04f8e5e5b Pass copy engines to waitUntilComplete in OpenCL command queue
Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-09-24 14:11:44 +02:00
Maciej Dziuban
6d1e048327 Rename an overload of waitUntilComplete to waitForAllEngines
- Overloaded functions were quite different, they should have different names
- waitForLatestTaskCount function was redundant and hence its body was moved
inside waitForAllEngines

Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-09-23 09:43:11 +02:00
Maciej Dziuban
04b6a604ec Refactor BCS in OpenCL CommandQueue
- use CopyEngineState class to hold task count and engine type
- pass engine type to updateBcsTaskCount

Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-09-22 10:39:46 +02:00
Maciej Dziuban
2707618fe3 Pass engine type to getBcsCommandStreamReceiver in OpenCL
Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-09-21 16:27:07 +02:00
Maciej Dziuban
a4b3dc29e4 Remove unnecessary method
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-09-21 11:34:27 +02:00
Maciej Dziuban
c7d86af500 Pass blitter CSR to event
Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-09-15 12:49:22 +02:00
Maciej Dziuban
858727010f Add selectCsrForBuiltinOperation method to OpenCL CommandQueue
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
Related-To: NEO-6057
2021-09-10 12:26:47 +02:00
Maciej Dziuban
3e6b3cd780 Revert "Create single point for selecting engine for builtin ops"
This reverts commit 6513bd371a69cb821ea45c7c1964ea1f51dd75b2.

Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-09-02 11:58:46 +02:00
Compute-Runtime-Validation
94cd243360 Revert "Correct CSR used for hostptr allocations in builtins"
This reverts commit 69ae9dc9c2.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-09-02 04:45:06 +02:00
Maciej Dziuban
69ae9dc9c2 Correct CSR used for hostptr allocations in builtins
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-09-01 13:19:49 +02:00
Maciej Dziuban
a03b5f8a95 Create single point for selecting engine for builtin ops
- selectCsrForBuiltinOperation selects proper CSR
- selected CSR is passed to dispatchBcsOrGpgpuEnqueue
- Notifications such as notifyEnqueueReadBuffer are now made on correct engine
- Temporary allocs for hostptrs are now created on gpgpuCsr

Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-08-31 13:29:17 +02:00
Maciej Dziuban
42524b6bef Limit usage of getBcsCommandStreamReceiver()
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-08-27 12:15:30 +02:00
Filip Hazubski
63f8c9d98b Add new EngineUsage
Simplify verifying EngineUsage in tryGetEngine function.
Remove unused getGpgpuEnginesCount function.

Related-To: NEO-4940

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-08-23 17:41:13 +02:00
Konstanty Misiak
ad19eda689 Fix event profiling for marker commands
Related-To: NEO-5799

Signed-off-by: Konstanty Misiak <konstanty.misiak@intel.com>
2021-08-13 15:02:01 +02:00
Maciej Dziuban
9bca773b91 Remove command queue constructor
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-07-23 14:16:02 +02:00
Szymon Morek
399dc60bf8 Remove processing extra properties
Related-To: NEO-6024

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2021-07-08 16:18:06 +02:00
Maciej Dziuban
6f6ee90aa5 Extend copy engine selector data
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-07-06 12:28:55 +02:00
Michal Mrozek
ad3855ceb3 Revert "Fix event profiling for marker commands"
This reverts commit 5f0167b477993f3ebc804c53a110bc432638615b.

Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
2021-07-01 08:01:33 +02:00
Konstanty Misiak
1df1094465 Fix event profiling for marker commands
Related-To: NEO-5799

Signed-off-by: Konstanty Misiak <konstanty.misiak@intel.com>
2021-06-30 14:56:39 +02:00
Bartosz Dunajski
5fbf084c41 Dont access PrintfHandler after move operation
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-06-28 13:57:42 +02:00