Files
compute-runtime/runtime/built_ins/built_ins.inl
Pawel Wilma 315df91d9d Builtin kernels refactoring
Related-To: NEO-3220
Change-Id: Ib85a1f4fd69b47bc8e819a29cc4adec73bda72e0
Signed-off-by: Pawel Wilma <pawel.wilma@intel.com>
2020-01-24 11:56:02 +01:00

40 lines
1.5 KiB
C++

/*
* Copyright (C) 2018-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "runtime/built_ins/aux_translation_builtin.h"
#include "runtime/built_ins/populate_built_ins.inl"
#include "runtime/kernel/kernel.h"
#include "runtime/mem_obj/buffer.h"
namespace NEO {
BuiltInOp<EBuiltInOps::AuxTranslation>::BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib) {
BuiltinDispatchInfoBuilder::populate(context, device, EBuiltInOps::AuxTranslation, "", "fullCopy", baseKernel);
resizeKernelInstances(5);
}
void BuiltInOp<EBuiltInOps::AuxTranslation>::resizeKernelInstances(size_t size) const {
convertToNonAuxKernel.reserve(size);
convertToAuxKernel.reserve(size);
for (size_t i = convertToNonAuxKernel.size(); i < size; i++) {
auto clonedNonAuxToAuxKernel = Kernel::create(baseKernel->getProgram(), baseKernel->getKernelInfo(), nullptr);
clonedNonAuxToAuxKernel->setAuxTranslationDirection(AuxTranslationDirection::NonAuxToAux);
auto clonedAuxToNonAuxKernel = Kernel::create(baseKernel->getProgram(), baseKernel->getKernelInfo(), nullptr);
clonedAuxToNonAuxKernel->setAuxTranslationDirection(AuxTranslationDirection::AuxToNonAux);
clonedNonAuxToAuxKernel->cloneKernel(baseKernel);
clonedAuxToNonAuxKernel->cloneKernel(baseKernel);
convertToAuxKernel.emplace_back(clonedNonAuxToAuxKernel);
convertToNonAuxKernel.emplace_back(clonedAuxToNonAuxKernel);
}
}
} // namespace NEO