Commit Graph

107 Commits

Author SHA1 Message Date
Filip Hazubski ecceddcab6 Correct clSetKernelExecInfo not to always require SVM support
Resolves: NEO-5269

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-03-22 21:08:03 +01:00
Filip Hazubski 8d55bfe21d Implement zeCommandListAppendLaunchCooperativeKernel
Resolves: NEO-4725


Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2021-03-22 19:26:41 +01:00
Mateusz Jablonski 487f10f999 Use MultiDeviceKernel instead of Kernel in clCloneKernel
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-03-18 20:19:54 +01:00
Mateusz Jablonski 04eca48ee0 Introduce MultiDeviceKernel class
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-03-15 11:46:52 +01:00
Katarzyna Cencelewska 7fdbf4f6ef Correct set pitch in clEnqueueCopyBufferRect
validate dst and src buffers

Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
2021-03-10 12:41:51 +01:00
Krystian Chmielewski 41f3bd00ff Remove PatchTokens from KernelInfo
Use KernelDescriptor instead of patchTokens stored in KernelInfo's
patchInfo.
Removed: SPatchMediaInterfaceDescriptorLoad, SPatchAllocateLocalSurface,
SPatchMediaVFEState(slot 0), SPatchMediaVFEState(slot 1),
SPatchInterfaceDescriptorData, SPatchSamplerStateArray,
SPatchBindingTableState, SPatchDataParameterBuffer,
SPatchDataParameterStream, SPatchThreadPayload,
SPatchKernelAttributesInfo, SPatchAllocateStatelessPrivateSurface,
SPatchAllocateSyncBuffer,
SPatchAllocateStatelessConstantMemorySurfaceWithInitialization,
SPatchAllocateStatelessGlobalMemorySurfaceWithInitialization,
SPatchAllocateSystemThreadSurface.

Related-To: NEO-4729
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
2021-03-09 17:09:13 +01:00
Mateusz Jablonski 056300f01f Pass internal kernel object to enqueueKernel method
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-03-08 19:14:08 +01:00
Compute-Runtime-Validation 68e01dd736 Revert "Correct set pitch in clEnqueueCopyBufferRect"
This reverts commit a0f3e868a1.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2021-02-26 13:48:41 +01:00
Jaime Arteaga 722a80079b Add experimental_properties for indirect access (2)
Add support to OpenCL to also make use of indirect access properties
provided by IGC and to make use of DisableIndirectAccess debug key.

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2021-02-25 11:41:24 +01:00
Katarzyna Cencelewska a0f3e868a1 Correct set pitch in clEnqueueCopyBufferRect
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
2021-02-25 10:39:57 +01:00
Maciej Dziuban 08506dc81e OpenCL Queue Families extension 14/n
Check capabilities in clEnqueueWaitForEvents

Related-To: NEO-5120
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2021-02-02 11:54:43 +01:00
Mateusz Jablonski f583ec7d8f Revert "Create a new class for handling multi device SVM arguments in kernel"
This reverts commit 00b2a28818.

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-01-26 16:06:53 +01:00
Maciej Dziuban 681c6eeb38 OpenCL Queue Families extension 11/n
Check for support of cross queue events in enqueue calls

Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
Related-To: NEO-5120
2021-01-26 14:02:54 +01:00
Bartosz Dunajski 469c929b7f Unrestricted size flag support in clSvmAlloc
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
2021-01-25 19:13:08 +01:00
Mateusz Jablonski 00b2a28818 Create a new class for handling multi device SVM arguments in kernel
set arg SVM for devices in Kernel

Related-To: NEO-5001


Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2021-01-22 15:53:02 +01:00
Krzysztof Gibala 3385500396 Use createHostUnifiedMemoryAllocation in clHostMemAllocINTEL
Unlock multi device setup for host allocation

Related-To: NEO-5422
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2021-01-05 17:16:59 +01:00
Mateusz Jablonski 1b7d7afc07 Refactor USM properties
store reference to std of root device indices and device bitfields
store NEO::Device in USM properties

Related-To: NEO-3691
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-12-30 11:36:56 +01:00
Maciej Dziuban 510ba83e1e OpenCL Queue Families extension 8/n
Check capabilities for image to buffer and buffer to image copies

Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
Related-To: NEO-5120
2020-12-29 13:04:12 +01:00
Krzysztof Gibala 2e346b58cd Enable memory transfer in enqueueMigrateMemObjects
Related-To: NEO-4589
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2020-12-29 12:03:22 +01:00
Mateusz Jablonski be7ae13911 Store SLM sizes per root device in Kernel
reduce usages of getDefaultKernelInfo

Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-12-22 17:37:43 +01:00
Mateusz Jablonski 350ec9f16b Pass root device index to get proper kernel info
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-12-09 19:11:43 +01:00
Mateusz Jablonski c8d1e082dd Update getKernelInfo method
add root device index parameter to return proper kernel info

Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-12-08 09:14:44 +01:00
Mateusz Jablonski 0d943e95c4 Store KernelInfo per root device in Kernel
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-12-07 12:22:28 +01:00
Mateusz Jablonski 2ee1d569c5 Store KernelInfo per root device in Program
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-12-01 11:38:23 +01:00
Maciej Dziuban 41a90e67d7 OpenCL Queue Families extension 5/n
Check queue capabilities in enqueue calls for kernels, barriers and markers

Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
Related-To: NEO-5120
2020-11-30 17:35:38 +01:00
Maciej Dziuban 12ebe55679 OpenCL Queue Families extension 4/n
Check queue capabilities in enqueue calls for images

Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
Related-To: NEO-5120
2020-11-30 17:16:36 +01:00
Mateusz Jablonski 11592d1cb5 Add support for nullptr device input in clGetWorkGroupInfo/SubGroupInfo
Nullptr input is valid if kernel is associated with a single device

Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-27 17:35:24 +01:00
Maciej Dziuban ef170607c8 OpenCL Queue Families extension 3/n
Check queue capabilities in enqueue calls for buffers

Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
Related-To: NEO-5120
2020-11-25 14:02:10 +01:00
Mateusz Jablonski 52d96af5f0 Use device from API function in clGetKernelWorkGroupInfo/SubGroupInfo
store execution environment reference in Kernel class

Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-24 17:45:59 +01:00
Maciej Dziuban 14f92cc7a1 OpenCL Queue Families extension 1/n
Basic implementation, some things will be tweaked in future commits

Related-To: NEO-5120
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2020-11-24 11:48:18 +01:00
Mateusz Jablonski 8fdc35bb4b Disallow compiling/building program if it has attached Kernels
allow for creating kernel if the program is built for at least one device

Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-23 18:15:44 +01:00
Mateusz Jablonski 9d7807709d Dont use Device from Kernel 2/n
make getDevice method protected

Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-18 09:43:08 +01:00
Mateusz Jablonski 97119f5f3e Store ClDevice in DispatchInfo
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-17 10:29:20 +01:00
Mateusz Jablonski bd432fa94c Don't use device from kernel if possible [1/n]
Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-13 17:41:18 +01:00
Sebastian Luzynski de5fe3c1b3 Adjust params checking.
Signed-off-by: Sebastian Luzynski <sebastian.jozef.luzynski@intel.com>
2020-11-05 12:37:52 +01:00
Mateusz Jablonski 75d1ebb811 Use all devices when building program
remove Program::internalOptions
internal options are calculated separately in compile, link and build methods

Related-To: NEO-5001
Change-Id: I85ea2d64c72edb9b0e3f23244b59b9af20e2d357
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-11-02 19:37:55 +01:00
Krzysztof Gibala 2c1551d40d Extend specialQueue in context to StackVec
Related-To: NEO-4589
Change-Id: I92db4cf8511e13a35307a4f48b51041a6fc7330f
Signed-off-by: Krzysztof Gibala <krzysztof.gibala@intel.com>
2020-10-30 13:33:46 +01:00
Mateusz Jablonski 430cca3f4c Use all passed devices when linking program
Related-To: NEO-5001
Change-Id: I3944375023b9cb3322df83e6e042ba8be2bd762c
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-30 10:24:16 +01:00
Mateusz Jablonski 20f4786423 Use all passed devices when compiling program
Related-To: NEO-5001
Change-Id: I852c6e57fb7c450ee4dae2d5ff59a206397b2390
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-29 16:02:23 +01:00
Mateusz Jablonski 4be05409a3 Handle program's callbacks on API level
Related-To: NEO-5001
Change-Id: Ic73601f874a972c9c3fe6cc1a04edd5d7915f16e
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-29 11:28:02 +01:00
Mateusz Jablonski 62709a6ddc Store build status per cl device in program
Related-To: NEO-5001
Change-Id: I7d9521cb45324d89ec11f39f8b857cf1554340eb
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-27 12:00:42 +01:00
Mateusz Jablonski 3bcc073b26 Respect EnableMultiRootDeviceContexts when creating context from type
Related-To: NEO-3691
Change-Id: Ib61ddfe1e5df5ed7611ed785fadd305a49ef204a
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-27 09:08:58 +01:00
Sebastian Luzynski 225e7f01b4 Add checks for correct engine for concurrent kernels.
Related-To: NEO-5135
Change-Id: Ib1c37ec8d5e468de331521ae4be1cd92902a2330
Signed-off-by: Sebastian Luzynski <sebastian.jozef.luzynski@intel.com>
2020-10-26 14:53:52 +01:00
Mateusz Jablonski 495594142c Improve Program::create functions
accept multiple devices in createFromGenBinary
remove redundant arguments
rename functions for creating built in program

Related-To: NEO-5001
Change-Id: Ic894fa3014d6eadce3747a6f7530e9848ae1f948
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-26 12:34:49 +01:00
Mateusz Jablonski a5a5c94097 Correct clCreateProgramWithBuiltInKernels
create program for all provided devices
move OCL specific code from shared to opencl

Related-To: NEO-5001
Change-Id: Ic352b4e907ae75426634ae4b3c7048edecaf83e7
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-22 19:26:34 +02:00
Mateusz Jablonski b8858ee0d6 Correct clCreateProgramWithIL
store all devices from context

Related-To: NEO-5001
Change-Id: I728ba460f7c9e4cc500395706c85f7f12e175d2f
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-22 12:52:57 +02:00
Mateusz Jablonski 8afdb2d981 Correct clCreateProgramWithBinary
store proper devices
validate input devices, lengths and binary
return correct binaries

Related-To: NEO-5001
Change-Id: I3822c291a4430e64afe54f1486b0014f16de3d64
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-22 08:38:24 +02:00
Mateusz Jablonski f7dcafc295 Pass ClDeviceVector to Program's ctor
Related-To: NEO-5001
Change-Id: Ie0e4395fd3ed9a5df81c7075ef039092a0687b9c
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-10-19 18:47:11 +02:00
Filip Hazubski ca5f34133b Move aub and tbx code to shared
Related-To: NEO-3964

Change-Id: Ice978e582721498d7496f989767ce7d6f5f4caf4
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2020-10-19 16:04:47 +02:00
Filip Hazubski da524fa03d Correct Intermediate Language related implementation
Change-Id: Ib2bdd21c255245767df787797bb5cfe05482e489
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2020-10-09 16:00:56 +02:00