Introducing kernel descriptor

Change-Id: I4ce6ebf27a81cf14b055817ebfe76d8427e349ab
This commit is contained in:
Jaroslaw Chodor
2020-02-24 22:07:46 +01:00
parent e453d2c04f
commit 915b80b1df
33 changed files with 1692 additions and 397 deletions

View File

@@ -6,7 +6,6 @@
set(RUNTIME_SRCS_KERNEL
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/dynamic_kernel_info.h
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/get_additional_kernel_info.cpp
${CMAKE_CURRENT_SOURCE_DIR}/image_transformer.cpp
${CMAKE_CURRENT_SOURCE_DIR}/image_transformer.h

View File

@@ -1,16 +0,0 @@
/*
* Copyright (C) 2017-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
struct DynamicKernelInfo {
char *pCrossThreadData;
size_t crossThreadDataSize;
char *pSsh;
size_t sshSize;
};

View File

@@ -348,7 +348,7 @@ cl_int Kernel::initialize() {
// set the argument handler
auto &argInfo = kernelInfo.kernelArgInfo[i];
if (argInfo.metadata.addressQualifier == KernelArgMetadata::AddressSpaceQualifier::Local) {
if (argInfo.metadata.addressQualifier == KernelArgMetadata::AddrLocal) {
kernelArgHandlers[i] = &Kernel::setArgLocal;
} else if (argInfo.isAccelerator) {
kernelArgHandlers[i] = &Kernel::setArgAccelerator;
@@ -528,13 +528,13 @@ cl_int Kernel::getArgInfo(cl_uint argIndx, cl_kernel_arg_info paramName, size_t
switch (paramName) {
case CL_KERNEL_ARG_ADDRESS_QUALIFIER:
addressQualifier = asClKernelArgAddressQualifier(argInfo.metadata.addressQualifier);
addressQualifier = asClKernelArgAddressQualifier(argInfo.metadata.getAddressQualifier());
srcSize = sizeof(addressQualifier);
pSrc = &addressQualifier;
break;
case CL_KERNEL_ARG_ACCESS_QUALIFIER:
accessQualifier = asClKernelArgAccessQualifier(argInfo.metadata.accessQualifier);
accessQualifier = asClKernelArgAccessQualifier(argInfo.metadata.getAccessQualifier());
srcSize = sizeof(accessQualifier);
pSrc = &accessQualifier;
break;
@@ -2307,8 +2307,8 @@ cl_int Kernel::checkCorrectImageAccessQualifier(cl_uint argIndex,
if (pMemObj) {
auto accessQualifier = getKernelInfo().kernelArgInfo[argIndex].metadata.accessQualifier;
cl_mem_flags flags = pMemObj->getMemoryPropertiesFlags();
if ((accessQualifier == KernelArgMetadata::AccessQualifier::ReadOnly && ((flags | CL_MEM_WRITE_ONLY) == flags)) ||
(accessQualifier == KernelArgMetadata::AccessQualifier::WriteOnly && ((flags | CL_MEM_READ_ONLY) == flags))) {
if ((accessQualifier == KernelArgMetadata::AccessReadOnly && ((flags | CL_MEM_WRITE_ONLY) == flags)) ||
(accessQualifier == KernelArgMetadata::AccessWriteOnly && ((flags | CL_MEM_READ_ONLY) == flags))) {
return CL_INVALID_ARG_VALUE;
}
} else {

View File

@@ -18,13 +18,13 @@ constexpr cl_kernel_arg_access_qualifier asClKernelArgAccessQualifier(KernelArgM
switch (accessQualifier) {
default:
return 0U;
case AccessQualifier::None:
case AccessNone:
return CL_KERNEL_ARG_ACCESS_NONE;
case AccessQualifier::ReadOnly:
case AccessReadOnly:
return CL_KERNEL_ARG_ACCESS_READ_ONLY;
case AccessQualifier::WriteOnly:
case AccessWriteOnly:
return CL_KERNEL_ARG_ACCESS_WRITE_ONLY;
case AccessQualifier::ReadWrite:
case AccessReadWrite:
return CL_KERNEL_ARG_ACCESS_READ_WRITE;
}
}
@@ -34,13 +34,13 @@ constexpr cl_kernel_arg_address_qualifier asClKernelArgAddressQualifier(KernelAr
switch (addressQualifier) {
default:
return 0U;
case AddressSpaceQualifier::Global:
case AddrGlobal:
return CL_KERNEL_ARG_ADDRESS_GLOBAL;
case AddressSpaceQualifier::Local:
case AddrLocal:
return CL_KERNEL_ARG_ADDRESS_LOCAL;
case AddressSpaceQualifier::Private:
case AddrPrivate:
return CL_KERNEL_ARG_ADDRESS_PRIVATE;
case AddressSpaceQualifier::Constant:
case AddrConstant:
return CL_KERNEL_ARG_ADDRESS_CONSTANT;
}
}