Store KernelInfo per root device in Kernel

Related-To: NEO-5001
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2020-12-02 18:19:05 +00:00
committed by Compute-Runtime-Automation
parent eb97c48844
commit 0d943e95c4
67 changed files with 546 additions and 397 deletions

View File

@@ -36,14 +36,14 @@ void DevicePreemptionTests::SetUp() {
}
const cl_queue_properties properties[3] = {CL_QUEUE_PROPERTIES, 0, 0};
kernelInfo = std::make_unique<KernelInfo>();
device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr, rootDeviceIndex));
context.reset(new MockContext(device.get()));
cmdQ.reset(new MockCommandQueue(context.get(), device.get(), properties));
executionEnvironment.reset(new SPatchExecutionEnvironment);
memset(executionEnvironment.get(), 0, sizeof(SPatchExecutionEnvironment));
kernelInfo->patchInfo.executionEnvironment = executionEnvironment.get();
program = std::make_unique<MockProgram>(toClDeviceVector(*device));
kernel.reset(new MockKernel(program.get(), *kernelInfo));
kernel.reset(new MockKernel(program.get(), MockKernel::toKernelInfoContainer(*kernelInfo, rootDeviceIndex)));
dispatchInfo.reset(new DispatchInfo(device.get(), kernel.get(), 1, Vec3<size_t>(1, 1, 1), Vec3<size_t>(1, 1, 1), Vec3<size_t>(0, 0, 0)));
ASSERT_NE(nullptr, device);

View File

@@ -53,6 +53,7 @@ class DevicePreemptionTests : public ::testing::Test {
std::unique_ptr<iOpenCL::SPatchExecutionEnvironment> executionEnvironment;
std::unique_ptr<NEO::MockProgram> program;
std::unique_ptr<NEO::KernelInfo> kernelInfo;
const uint32_t rootDeviceIndex = 0u;
};
struct ThreadGroupPreemptionEnqueueKernelTest : NEO::PreemptionEnqueueKernelTest {

View File

@@ -40,7 +40,7 @@ struct ExecutionModelKernelFixture : public ProgramFromBinaryFixture,
// create a kernel
pKernel = Kernel::create<MockKernel>(
pProgram,
*pProgram->getKernelInfo(kernelName, rootDeviceIndex),
pProgram->getKernelInfosForKernel(kernelName),
&retVal);
ASSERT_EQ(CL_SUCCESS, retVal);

View File

@@ -77,7 +77,7 @@ struct HelloWorldKernelFixture : public ProgramFixture {
// create a kernel
pKernel = Kernel::create<MockKernel>(
pProgram,
*pProgram->getKernelInfo(pKernelName->c_str(), pDevice->getRootDeviceIndex()),
pProgram->getKernelInfosForKernel(pKernelName->c_str()),
&retVal);
EXPECT_NE(nullptr, pKernel);

View File

@@ -61,7 +61,7 @@ void KernelImageArgTest::SetUp() {
ClDeviceFixture::SetUp();
context.reset(new MockContext(pClDevice));
program = std::make_unique<MockProgram>(context.get(), false, toClDeviceVector(*pClDevice));
pKernel.reset(new MockKernel(program.get(), *pKernelInfo));
pKernel.reset(new MockKernel(program.get(), MockKernel::toKernelInfoContainer(*pKernelInfo, rootDeviceIndex)));
ASSERT_EQ(CL_SUCCESS, pKernel->initialize());
pKernel->setKernelArgHandler(0, &Kernel::setArgImage);

View File

@@ -76,7 +76,7 @@ struct MediaKernelFixture : public HelloWorldFixture<FactoryType>,
// create the VME kernel
pVmeKernel = Kernel::create<MockKernel>(
pProgram,
*pProgram->getKernelInfo("device_side_block_motion_estimate_intel", pProgram->getDevices()[0]->getRootDeviceIndex()),
pProgram->getKernelInfosForKernel("device_side_block_motion_estimate_intel"),
&retVal);
ASSERT_NE(nullptr, pVmeKernel);

View File

@@ -110,7 +110,7 @@ class SimpleArgKernelFixture : public ProgramFixture {
// create a kernel
pKernel = Kernel::create<MockKernel>(
pProgram,
*pProgram->getKernelInfo("SimpleArg", pDevice->getRootDeviceIndex()),
pProgram->getKernelInfosForKernel("SimpleArg"),
&retVal);
ASSERT_NE(nullptr, pKernel);
@@ -156,7 +156,7 @@ class SimpleArgNonUniformKernelFixture : public ProgramFixture {
kernel = Kernel::create<MockKernel>(
pProgram,
*pProgram->getKernelInfo("simpleNonUniform", device->getRootDeviceIndex()),
pProgram->getKernelInfosForKernel("simpleNonUniform"),
&retVal);
ASSERT_NE(nullptr, kernel);
ASSERT_EQ(CL_SUCCESS, retVal);
@@ -202,7 +202,7 @@ class SimpleKernelFixture : public ProgramFixture {
kernelName.append(std::to_string(i));
kernels[i].reset(Kernel::create<MockKernel>(
pProgram,
*pProgram->getKernelInfo(kernelName.c_str(), device->getRootDeviceIndex()),
pProgram->getKernelInfosForKernel(kernelName.c_str()),
&retVal));
ASSERT_NE(nullptr, kernels[i]);
ASSERT_EQ(CL_SUCCESS, retVal);
@@ -251,7 +251,7 @@ class SimpleKernelStatelessFixture : public ProgramFixture {
kernel.reset(Kernel::create<MockKernel>(
pProgram,
*pProgram->getKernelInfo("statelessKernel", device->getRootDeviceIndex()),
pProgram->getKernelInfosForKernel("statelessKernel"),
&retVal));
ASSERT_NE(nullptr, kernel);
ASSERT_EQ(CL_SUCCESS, retVal);
@@ -294,7 +294,7 @@ class BindlessKernelFixture : public ProgramFixture {
kernel.reset(Kernel::create<MockKernel>(
pProgram,
*pProgram->getKernelInfo(kernelName.c_str(), deviceCl->getRootDeviceIndex()),
pProgram->getKernelInfosForKernel(kernelName.c_str()),
&retVal));
ASSERT_NE(nullptr, kernel);
ASSERT_EQ(CL_SUCCESS, retVal);