Commit Graph

109 Commits

Author SHA1 Message Date
Dunajski, Bartosz
14c3777409 feature: Experimental support of immediate cmd list in-order execution [1/n]
Related-To: LOCI-4332

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2023-04-26 13:15:59 +02:00
Lu, Wenbin
c66546df73 Disable kernel timestamp when not using implicit scaling
Related-To: LOCI-2826

Signed-off-by: Lu, Wenbin <wenbin.lu@intel.com>
2023-04-19 12:14:17 +02:00
Zhang, Winston
ddfd2b0ac2 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-27 23:28:33 +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
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
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
Zbigniew Zdanowicz
7925e12392 Add improvements and tweaks to event pool runtime and tests
1. Reposition event pool code
- Implementation of event pool methods should be placed in event pool file
2. Change event pool and event classes
- move all class variables to base classes as protected
- add needed setters and getters for runtime
- add extended mocks and whiteboxes for unit tests
- tests using base or mock class when needed
3. Correct event creation in unit tests
- use HW specific timestamp type
- HW unit tests are using template timestamp type for event creation
- other tests are using helper to create event

Related-To: NEO-7636

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-20 16:47:08 +01:00
Warchulski, Jaroslaw
286c672ef4 Cleanup includes 37
Cleaned up files:
level_zero/core/source/event/event.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-01-20 12:34:39 +01:00
Zbigniew Zdanowicz
b9b9155ee0 Fail ipc event pool creation for max event packet misconfiguration
Remote event pool is created with device list that configure max event packet
IPC context can have different device list and configure different
max event packet.
When these two numbers are different driver should not allow creation of
IPC event pool.

Related-To: NEO-7636

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-20 00:45:29 +01:00
Zbigniew Zdanowicz
9441e1c510 disable event query status optimization for ipc events
Related-To: NEO-7636

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-18 08:49:34 +01:00
Zbigniew Zdanowicz
172ea34fc2 Refactor event pool class hierarchy
Related-To: NEO-7636

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-17 14:42:20 +01:00
Zbigniew Zdanowicz
ff88930625 Refactor ipc event pool data exchange protocol
- using predefined structure adds security to enforce data limit
- code is simplified and easier to maintain or add new data fields

Related-To: NEO-7636

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-17 10:46:52 +01:00
Warchulski, Jaroslaw
c275008e51 Cleanup includes 32
Cleaned up files:
level_zero/core/source/cmdlist/cmdlist_hw.h
level_zero/core/source/cmdqueue/cmdqueue.h
level_zero/core/source/event/event.h
opencl/source/helpers/get_info_status_mapper.h
opencl/source/helpers/hardware_commands_helper.h
shared/source/helpers/per_thread_data.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-01-16 20:41:37 +01:00
Zbigniew Zdanowicz
ee99df18aa Fix event signaling in command list extension function
Related-To: NEO-7490

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-13 14:13:00 +01:00
Zbigniew Zdanowicz
5a82b84219 refactor event interface for better use of functions
Related-To: NEO-7490

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-12 11:50:35 +01:00
Zbigniew Zdanowicz
5339d5c0af refactor level zero event for better access of completion field
Related-To: NEO-7490

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2023-01-12 10:57:57 +01:00
Warchulski, Jaroslaw
7ae44268cb Cleanup includes 17
Cleaned up files:
shared/source/built_ins/sip.h
shared/source/compiler_interface/compiler_cache.h
shared/source/compiler_interface/compiler_interface.h
shared/source/device_binary_format/device_binary_formats.h
shared/source/helpers/timestamp_packet.h
shared/source/kernel/debug_data.h
shared/source/utilities/tag_allocator.h
shared/test/common/mocks/mock_device.h

Related-To: NEO-5548
Signed-off-by: Warchulski, Jaroslaw <jaroslaw.warchulski@intel.com>
2023-01-02 10:59:08 +01:00
Spruit, Neil R
905a0bc0b4 Fix Device Allocated IPC Events for L0
- Given Device Allocated IPC Event Pool, the open IPC event pool process
  must allocate the event pool as a device buffer or usage of the memory
will fail.
- Pass deviceAlloc flag thru the IPC Event Pool Handle to enable the
  child processes to allocate the correct memory type.
- Pass isHostVisible flag thru IPCEvent Pool Handle to indicate if the
  event pool must be allocated as host visible regardless of the
allocation type.

Related-To: LOCI-3764

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2022-12-23 03:29:16 +01:00
Compute-Runtime-Validation
08f53f4e96 Revert "Fix Device Allocated IPC Events for L0"
This reverts commit 1292ea26f5.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-12-22 21:42:26 +01:00
Spruit, Neil R
1292ea26f5 Fix Device Allocated IPC Events for L0
- Given Device Allocated IPC Event Pool, the open IPC event pool process
  must allocate the event pool as a device buffer or usage of the memory
will fail.
- Pass deviceAlloc flag thru the IPC Event Pool Handle to enable the
  child processes to allocate the correct memory type.
- Pass isHostVisible flag thru IPCEvent Pool Handle to indicate if the
  event pool must be allocated as host visible regardless of the
allocation type.

Related-To: LOCI-3764

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2022-12-20 23:43:03 +01:00
Kamil Kopryk
4a87266be1 Don't use global getter for L0GfxCoreHelper and GfxCoreHelper in L0 files
Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-12-20 16:51:43 +01:00
Zbigniew Zdanowicz
595aa2f626 Fix issues in signal all event packets 6/n
This fix unifies setting event properties in event pool, so they are shared
betweem all event pool devices.

Related-To: NEO-7490

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-12-20 10:42:42 +01:00
Compute-Runtime-Validation
ad072b4d5d Revert "Fix Device Allocated IPC Events"
This reverts commit 1360ec9179.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-12-17 05:36:59 +01:00
Spruit, Neil R
1360ec9179 Fix Device Allocated IPC Events
- Given Device Allocated IPC Event Pool, the open IPC event pool process
  must allocate the event pool as a device buffer or usage of the memory
will fail.
- Pass deviceAlloc flag thru the IPC Event Pool Handle to enable the
  child processes to allocate the correct memory type.

Related-To: LOCI-3764

Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
2022-12-15 23:35:39 +01:00
Szymon Morek
637c4e5621 Disable state caching if used on regular cmd list
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-12-09 16:47:39 +01:00
Kamil Kopryk
6993ed5c52 Reduce binaries sizes 2/n
Observed about 50MB reduction in overall binaries size (directory build))
when building all targets
with MSVC (Visual Studio 2022 17.3.0 preview 6)
using Debug 64 configuration.

Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-12-08 16:14:38 +01:00
Szymon Morek
4598fc61e2 Don't access virtual method if not needed
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-11-25 16:16:32 +01:00
Szymon Morek
5d2ed42275 Disable isCompleted state if event reset on GPU
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-11-22 17:11:07 +01:00
Zbigniew Zdanowicz
be1c1e89cb Add option to signal and synchronize using all available event packets
Related-To: NEO-7469

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-11-10 23:28:43 +01:00
Kamil Kopryk
af3f370ff0 Correct event reset
Related-To: NEO-7391
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2022-11-09 17:20:22 +01:00
Zbigniew Zdanowicz
27d042107a Add feature to estimate number of event packets
Related-To: NEO-7469

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-11-04 18:38:17 +01:00
Szymon Morek
d3f30b4046 Remove not needed access to atomic variable
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-10-11 09:34:24 +02:00
Szymon Morek
67c0378a63 set Event::csr for immediate cmdlists
Currently Event::csr is set during
initialization and never changes.
This PR is to associate Event::csr with the one
that was used to dispatch task in cmdlist

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-10-03 11:54:11 +02:00
Szymon Morek
ec04de61a7 [L0][XE_HPC]Perform memcpy on CPU for non-usm ptrs
Related-To: NEO-7237

If size is small enough, it is more efficient to
perform copy through locked ptr on CPU.
This change also introduces experimental flag to
enable this.

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-09-26 13:20:40 +02:00
Szymon Morek
ec619f4259 Set event as completed after host signal
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-09-14 15:10:14 +02:00
Szymon Morek
5137b70658 Don't read event memory if signaled state is true
Related-To: NEO-7302

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
2022-09-13 14:34:44 +02:00
Neil R Spruit
ada9b5d4a9 Handle if L0 Event Memory is Shareable
- Properly check for IPC event handle flag to determine if the event
pool memory is sharable between processes.
- Given Host Visible Event Pool, a check is done to determine if the
Host memory can be shared between the processes.
- Enabled handling if Event Host Memory is shareable for DRM
- If Event Pool Memory is Not shareable, then retrieving the IPC Event
Pool Handle returns unsupported.

Signed-off-by: Neil R Spruit <neil.r.spruit@intel.com>
2022-08-05 00:11:05 +02:00
Mateusz Jablonski
5bf1c84ed3 Cleanup includes in sampler, image, builtin and event
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2022-06-03 10:21:59 +02:00
Zbigniew Zdanowicz
7ca20ceb4b Change event algorithm to limit cache flush operation to single kernel packet
Related-To: NEO-6871

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-05-23 13:58:16 +02:00
Artur Harasimiuk
e9be9b64c6 clang-tidy configuration cleanup
Define single .clang-tidy configuration with all used checks and use
NOLINT to selectively silence tool. That way cleanup should be easier.
third_part/ has its own configuration that disables clang-tidy for this
folder.

Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2022-05-11 14:02:04 +02:00
Zbigniew Zdanowicz
819d648997 Use single event for multiple kernels
Related-To: NEO-6871

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-04-28 15:10:04 +02:00
Aravind Gopalakrishnan
79b8051eab Fix packet count when programming L3 flush
Related-To: NEO-5968

Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
2022-04-19 17:01:44 +02:00
Zbigniew Zdanowicz
7d79c64c35 Change event memory layout for multi tile capable platforms
Related-To: NEO-6811

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-04-07 10:44:14 +02:00
Compute-Runtime-Validation
b88e16252e Revert "Change event memory layout for multi tile capable platforms"
This reverts commit 616dd55789.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-04-07 07:55:34 +02:00
Zbigniew Zdanowicz
616dd55789 Change event memory layout for multi tile capable platforms
Related-To: NEO-6811

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-04-06 11:20:57 +02:00
Zbigniew Zdanowicz
a6d99f416d Use context end offset for partitioned events
Related-To: NEO-6811

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2022-03-30 14:20:03 +02:00
Aravind Gopalakrishnan
c1970942aa Update debug key to override timestamp event settings
Related-To: NEO-5968

Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
2022-02-23 23:38:05 +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
Aravind Gopalakrishnan
882ae8088f Skip L3Flush event packets during timestamp calculation
Signed-off-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@intel.com>
2021-12-29 20:03:48 +01:00
Zbigniew Zdanowicz
bac79244d5 Add multi tile event signal capability
Related-To: NEO-6262

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2021-12-09 12:13:23 +01:00