mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
Add stub for dynamic link function and for extended kernel properties
Change-Id: Ifaaf1226114233618e7959def086989cf93bd0bd Signed-off: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
4cb6c17d21
commit
5b61ad0966
@@ -60,6 +60,7 @@ struct ModuleFixture : public DeviceFixture {
|
||||
|
||||
const std::string binaryFilename = "test_kernel";
|
||||
const std::string kernelName = "test";
|
||||
const uint32_t numKernelArguments = 6;
|
||||
std::unique_ptr<L0::Module> module;
|
||||
std::unique_ptr<WhiteBox<::L0::Kernel>> kernel;
|
||||
};
|
||||
|
||||
@@ -39,6 +39,9 @@ struct Mock<Module> : public Module {
|
||||
MOCK_METHOD(const L0::KernelImmutableData *, getKernelImmutableData, (const char *functionName), (const, override));
|
||||
MOCK_METHOD(uint32_t, getMaxGroupSize, (), (const, override));
|
||||
MOCK_METHOD(ze_result_t, getKernelNames, (uint32_t * pCount, const char **pNames), (override));
|
||||
MOCK_METHOD(ze_result_t, performDynamicLink,
|
||||
(uint32_t numModules, ze_module_handle_t *phModules, ze_module_build_log_handle_t *phLinkLog),
|
||||
(override));
|
||||
MOCK_METHOD(ze_result_t, getGlobalPointer, (const char *pGlobalName, void **pPtr), (override));
|
||||
MOCK_METHOD(bool, isDebugEnabled, (), (const, override));
|
||||
};
|
||||
|
||||
@@ -175,5 +175,64 @@ HWTEST2_F(SetKernelArg, givenBufferArgumentWhichHasNotBeenAllocatedByRuntimeThen
|
||||
EXPECT_EQ(ZE_RESULT_ERROR_INVALID_ARGUMENT, res);
|
||||
}
|
||||
|
||||
using KernelPropertiesTest = Test<ModuleFixture>;
|
||||
|
||||
HWTEST_F(KernelPropertiesTest, givenKernelThenPropertiesAreRetrieved) {
|
||||
ze_kernel_handle_t kernelHandle;
|
||||
|
||||
ze_kernel_desc_t kernelDesc = {};
|
||||
kernelDesc.version = ZE_KERNEL_DESC_VERSION_CURRENT;
|
||||
kernelDesc.flags = ZE_KERNEL_FLAG_NONE;
|
||||
kernelDesc.pKernelName = kernelName.c_str();
|
||||
|
||||
ze_result_t res = module->createKernel(&kernelDesc, &kernelHandle);
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||
|
||||
auto kernel = L0::Kernel::fromHandle(kernelHandle);
|
||||
|
||||
ze_kernel_propertiesExt_t kernelProperties = {};
|
||||
|
||||
kernelProperties.requiredNumSubGroups = std::numeric_limits<uint32_t>::max();
|
||||
kernelProperties.requiredSubgroupSize = std::numeric_limits<uint32_t>::max();
|
||||
kernelProperties.maxSubgroupSize = std::numeric_limits<uint32_t>::max();
|
||||
kernelProperties.maxNumSubgroups = std::numeric_limits<uint32_t>::max();
|
||||
kernelProperties.localMemSize = std::numeric_limits<uint32_t>::max();
|
||||
kernelProperties.privateMemSize = std::numeric_limits<uint32_t>::max();
|
||||
kernelProperties.spillMemSize = std::numeric_limits<uint32_t>::max();
|
||||
kernelProperties.numKernelArgs = std::numeric_limits<uint32_t>::max();
|
||||
memset(&kernelProperties.uuid.kid, std::numeric_limits<int>::max(),
|
||||
sizeof(kernelProperties.uuid.kid));
|
||||
memset(&kernelProperties.uuid.mid, std::numeric_limits<int>::max(),
|
||||
sizeof(kernelProperties.uuid.mid));
|
||||
|
||||
ze_kernel_propertiesExt_t kernelPropertiesBefore = {};
|
||||
kernelPropertiesBefore = kernelProperties;
|
||||
|
||||
kernel->getPropertiesExt(&kernelProperties);
|
||||
|
||||
EXPECT_EQ(0, strncmp(kernelName.c_str(), kernelProperties.name,
|
||||
sizeof(kernelProperties.name)));
|
||||
EXPECT_EQ(numKernelArguments, kernelProperties.numKernelArgs);
|
||||
|
||||
EXPECT_EQ(0u, kernelProperties.requiredNumSubGroups);
|
||||
EXPECT_EQ(0u, kernelProperties.requiredSubgroupSize);
|
||||
EXPECT_EQ(0u, kernelProperties.maxSubgroupSize);
|
||||
EXPECT_EQ(0u, kernelProperties.maxNumSubgroups);
|
||||
EXPECT_EQ(0u, kernelProperties.localMemSize);
|
||||
EXPECT_EQ(0u, kernelProperties.privateMemSize);
|
||||
EXPECT_EQ(0u, kernelProperties.spillMemSize);
|
||||
|
||||
uint8_t zeroKid[ZE_MAX_KERNEL_UUID_SIZE];
|
||||
uint8_t zeroMid[ZE_MAX_MODULE_UUID_SIZE];
|
||||
memset(&zeroKid, 0, ZE_MAX_KERNEL_UUID_SIZE);
|
||||
memset(&zeroMid, 0, ZE_MAX_MODULE_UUID_SIZE);
|
||||
EXPECT_EQ(0, memcmp(&kernelProperties.uuid.kid, &zeroKid,
|
||||
sizeof(kernelProperties.uuid.kid)));
|
||||
EXPECT_EQ(0, memcmp(&kernelProperties.uuid.mid, &zeroMid,
|
||||
sizeof(kernelProperties.uuid.mid)));
|
||||
|
||||
Kernel::fromHandle(kernelHandle)->destroy();
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
@@ -114,5 +114,19 @@ HWTEST_F(ModuleSpecConstantsTests, givenSpecializationConstantsSetInDescriptorTh
|
||||
module->destroy();
|
||||
}
|
||||
|
||||
using ModuleDynamicLinkTests = Test<ModuleFixture>;
|
||||
|
||||
HWTEST_F(ModuleDynamicLinkTests, givenCallToDynamicLinkThenUnsupportedFeatureIsReturned) {
|
||||
auto module0 = new Module(device, nullptr);
|
||||
auto module1 = new Module(device, nullptr);
|
||||
|
||||
std::vector<ze_module_handle_t> hModules = {module0->toHandle(), module1->toHandle()};
|
||||
ze_result_t res = module0->performDynamicLink(2, hModules.data(), nullptr);
|
||||
EXPECT_EQ(ZE_RESULT_ERROR_UNSUPPORTED_FEATURE, res);
|
||||
|
||||
delete module0;
|
||||
delete module1;
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
Reference in New Issue
Block a user