mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
refactor: multicontext aub fixture api agnostic + improve createModuleFromFile
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
9468915768
commit
a83f3f7bc1
@@ -23,41 +23,16 @@ namespace L0 {
|
||||
namespace ult {
|
||||
|
||||
struct L0BindlessAub : Test<AUBFixtureL0> {
|
||||
|
||||
void SetUp() override {
|
||||
debugManager.flags.UseBindlessMode.set(1);
|
||||
debugManager.flags.UseExternalAllocatorForSshAndDsh.set(1);
|
||||
AUBFixtureL0::setUp();
|
||||
}
|
||||
void TearDown() override {
|
||||
|
||||
module->destroy();
|
||||
AUBFixtureL0::tearDown();
|
||||
}
|
||||
|
||||
void createModuleFromFile(const std::string &fileName, ze_context_handle_t context, L0::Device *device) {
|
||||
std::string testFile;
|
||||
retrieveBinaryKernelFilenameApiSpecific(testFile, fileName + "_", ".bin");
|
||||
|
||||
size_t size = 0;
|
||||
auto src = loadDataFromFile(
|
||||
testFile.c_str(),
|
||||
size);
|
||||
|
||||
ASSERT_NE(0u, size);
|
||||
ASSERT_NE(nullptr, src);
|
||||
|
||||
ze_module_desc_t moduleDesc = {ZE_STRUCTURE_TYPE_MODULE_DESC};
|
||||
moduleDesc.format = ZE_MODULE_FORMAT_NATIVE;
|
||||
moduleDesc.pInputModule = reinterpret_cast<const uint8_t *>(src.get());
|
||||
moduleDesc.inputSize = size;
|
||||
moduleDesc.pBuildFlags = "";
|
||||
|
||||
module = new ModuleImp(device, nullptr, ModuleType::user);
|
||||
ze_result_t result = ZE_RESULT_ERROR_MODULE_BUILD_FAILURE;
|
||||
result = module->initialize(&moduleDesc, device->getNEODevice());
|
||||
ASSERT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
}
|
||||
DebugManagerStateRestore restorer;
|
||||
ModuleImp *module = nullptr;
|
||||
};
|
||||
@@ -91,7 +66,7 @@ HWTEST_F(L0BindlessAub, DISABLED_GivenBindlessKernelWhenExecutedThenOutputIsCorr
|
||||
dispatchTraits.groupCountY = groupCount[1];
|
||||
dispatchTraits.groupCountZ = groupCount[2];
|
||||
|
||||
createModuleFromFile("bindless_stateful_copy_buffer", context, device);
|
||||
createModuleFromFile("bindless_stateful_copy_buffer", context, device, "");
|
||||
|
||||
ze_kernel_handle_t kernel;
|
||||
ze_kernel_desc_t kernelDesc = {ZE_STRUCTURE_TYPE_KERNEL_DESC};
|
||||
|
||||
@@ -19,35 +19,8 @@
|
||||
namespace L0 {
|
||||
namespace ult {
|
||||
|
||||
struct AUBAppendKernelIndirectL0 : Test<AUBFixtureL0> {
|
||||
using AUBAppendKernelIndirectL0 = Test<AUBFixtureL0>;
|
||||
|
||||
static ze_module_handle_t createModuleFromFile(const std::string &fileName, ze_context_handle_t context, ze_device_handle_t device) {
|
||||
ze_module_handle_t moduleHandle;
|
||||
std::string testFile;
|
||||
retrieveBinaryKernelFilenameApiSpecific(testFile, fileName + "_", ".bin");
|
||||
|
||||
size_t size = 0;
|
||||
auto src = loadDataFromFile(
|
||||
testFile.c_str(),
|
||||
size);
|
||||
|
||||
EXPECT_NE(0u, size);
|
||||
EXPECT_NE(nullptr, src);
|
||||
|
||||
if (!src || size == 0) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ze_module_desc_t moduleDesc = {ZE_STRUCTURE_TYPE_MODULE_DESC};
|
||||
moduleDesc.format = ZE_MODULE_FORMAT_NATIVE;
|
||||
moduleDesc.pInputModule = reinterpret_cast<const uint8_t *>(src.get());
|
||||
moduleDesc.inputSize = size;
|
||||
moduleDesc.pBuildFlags = "";
|
||||
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, zeModuleCreate(context, device, &moduleDesc, &moduleHandle, nullptr));
|
||||
return moduleHandle;
|
||||
}
|
||||
};
|
||||
TEST_F(AUBAppendKernelIndirectL0, whenAppendKernelIndirectThenGlobalWorkSizeIsProperlyProgrammed) {
|
||||
const uint32_t groupSize[] = {1, 2, 3};
|
||||
const uint32_t groupCount[] = {4, 3, 1};
|
||||
@@ -72,7 +45,7 @@ TEST_F(AUBAppendKernelIndirectL0, whenAppendKernelIndirectThenGlobalWorkSizeIsPr
|
||||
dispatchTraits.groupCountY = groupCount[1];
|
||||
dispatchTraits.groupCountZ = groupCount[2];
|
||||
|
||||
ze_module_handle_t moduleHandle = createModuleFromFile("test_kernel", context, device);
|
||||
ze_module_handle_t moduleHandle = createModuleFromFile("test_kernel", context, device, "");
|
||||
ASSERT_NE(nullptr, moduleHandle);
|
||||
ze_kernel_handle_t kernel;
|
||||
|
||||
@@ -117,7 +90,7 @@ TEST_F(AUBAppendKernelIndirectL0, whenAppendKernelIndirectThenGroupCountIsProper
|
||||
dispatchTraits.groupCountY = groupCount[1];
|
||||
dispatchTraits.groupCountZ = groupCount[2];
|
||||
|
||||
ze_module_handle_t moduleHandle = createModuleFromFile("test_kernel", context, device);
|
||||
ze_module_handle_t moduleHandle = createModuleFromFile("test_kernel", context, device, "");
|
||||
ASSERT_NE(nullptr, moduleHandle);
|
||||
ze_kernel_handle_t kernel;
|
||||
|
||||
@@ -172,7 +145,7 @@ TEST_F(AUBAppendKernelIndirectL0, whenAppendMultipleKernelsIndirectThenGroupCoun
|
||||
dispatchTraits[1].groupCountY = groupCount2[1];
|
||||
dispatchTraits[1].groupCountZ = groupCount2[2];
|
||||
|
||||
ze_module_handle_t moduleHandle = createModuleFromFile("test_kernel", context, device);
|
||||
ze_module_handle_t moduleHandle = createModuleFromFile("test_kernel", context, device, "");
|
||||
ASSERT_NE(nullptr, moduleHandle);
|
||||
ze_kernel_handle_t kernels[2];
|
||||
|
||||
@@ -230,7 +203,7 @@ TEST_F(AUBAppendKernelIndirectL0, whenAppendKernelIndirectThenWorkDimIsProperlyP
|
||||
{{1, 1, 2}, {1, 1, 2}, 3}};
|
||||
|
||||
ze_command_list_handle_t cmdListHandle = commandList->toHandle();
|
||||
ze_module_handle_t moduleHandle = createModuleFromFile("test_kernel", context, device);
|
||||
ze_module_handle_t moduleHandle = createModuleFromFile("test_kernel", context, device, "");
|
||||
ASSERT_NE(nullptr, moduleHandle);
|
||||
ze_kernel_handle_t kernel;
|
||||
|
||||
|
||||
@@ -35,39 +35,10 @@ struct DebuggerAubFixture : AUBFixtureL0 {
|
||||
AUBFixtureL0::setUp(NEO::defaultHwInfo.get(), true);
|
||||
}
|
||||
void tearDown() {
|
||||
|
||||
module->destroy();
|
||||
AUBFixtureL0::tearDown();
|
||||
}
|
||||
|
||||
void createModuleFromFile(const std::string &fileName, ze_context_handle_t context, L0::Device *device) {
|
||||
std::string testFile;
|
||||
retrieveBinaryKernelFilenameApiSpecific(testFile, fileName + "_", ".bin");
|
||||
|
||||
size_t size = 0;
|
||||
auto src = loadDataFromFile(
|
||||
testFile.c_str(),
|
||||
size);
|
||||
|
||||
ASSERT_NE(0u, size);
|
||||
ASSERT_NE(nullptr, src);
|
||||
|
||||
ze_module_desc_t moduleDesc = {ZE_STRUCTURE_TYPE_MODULE_DESC};
|
||||
moduleDesc.format = ZE_MODULE_FORMAT_NATIVE;
|
||||
moduleDesc.pInputModule = reinterpret_cast<const uint8_t *>(src.get());
|
||||
moduleDesc.inputSize = size;
|
||||
moduleDesc.pBuildFlags = "";
|
||||
|
||||
module = new ModuleImp(device, nullptr, ModuleType::user);
|
||||
ze_result_t result = ZE_RESULT_ERROR_MODULE_BUILD_FAILURE;
|
||||
result = module->initialize(&moduleDesc, device->getNEODevice());
|
||||
ASSERT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
|
||||
memoryManager = neoDevice->getMemoryManager();
|
||||
gmmHelper = neoDevice->getGmmHelper();
|
||||
rootDeviceIndex = neoDevice->getRootDeviceIndex();
|
||||
}
|
||||
|
||||
DebugManagerStateRestore restorer;
|
||||
|
||||
ModuleImp *module = nullptr;
|
||||
@@ -96,6 +67,10 @@ HWTEST2_F(DebuggerSingleAddressSpaceAub, GivenSingleAddressSpaceWhenCmdListIsExe
|
||||
const uint32_t groupCount[] = {bufferSize / 32, 1, 1};
|
||||
const uint32_t expectedSizes[] = {bufferSize, 1, 1};
|
||||
|
||||
memoryManager = neoDevice->getMemoryManager();
|
||||
gmmHelper = neoDevice->getGmmHelper();
|
||||
rootDeviceIndex = neoDevice->getRootDeviceIndex();
|
||||
|
||||
NEO::debugManager.flags.UpdateCrossThreadDataSize.set(true);
|
||||
|
||||
NEO::SVMAllocsManager::UnifiedMemoryProperties unifiedMemoryProperties(InternalMemoryType::hostUnifiedMemory,
|
||||
@@ -116,7 +91,7 @@ HWTEST2_F(DebuggerSingleAddressSpaceAub, GivenSingleAddressSpaceWhenCmdListIsExe
|
||||
dispatchTraits.groupCountY = groupCount[1];
|
||||
dispatchTraits.groupCountZ = groupCount[2];
|
||||
|
||||
createModuleFromFile("test_kernel", context, device);
|
||||
module = static_cast<L0::ModuleImp *>(Module::fromHandle(createModuleFromFile("test_kernel", context, device, "")));
|
||||
|
||||
ze_kernel_handle_t kernel;
|
||||
ze_kernel_desc_t kernelDesc = {ZE_STRUCTURE_TYPE_KERNEL_DESC};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2021-2023 Intel Corporation
|
||||
* Copyright (C) 2021-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -10,13 +10,17 @@
|
||||
#include "shared/source/command_stream/aub_command_stream_receiver.h"
|
||||
#include "shared/source/command_stream/tbx_command_stream_receiver_hw.h"
|
||||
#include "shared/source/helpers/api_specific_config.h"
|
||||
#include "shared/source/helpers/file_io.h"
|
||||
#include "shared/source/helpers/gfx_core_helper.h"
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
#include "shared/test/common/helpers/test_files.h"
|
||||
#include "shared/test/common/mocks/mock_device.h"
|
||||
#include "shared/test/common/tests_configuration.h"
|
||||
|
||||
#include "level_zero/core/source/cmdqueue/cmdqueue.h"
|
||||
#include "level_zero/core/source/context/context_imp.h"
|
||||
#include "level_zero/core/source/device/device_imp.h"
|
||||
#include "level_zero/core/source/module/module_imp.h"
|
||||
#include "level_zero/core/test/unit_tests/mocks/mock_cmdlist.h"
|
||||
#include "level_zero/core/test/unit_tests/mocks/mock_driver_handle.h"
|
||||
|
||||
@@ -89,4 +93,28 @@ void AUBFixtureL0::tearDown() {
|
||||
pCmdq->destroy();
|
||||
}
|
||||
|
||||
ze_module_handle_t AUBFixtureL0::createModuleFromFile(const std::string &fileName, ze_context_handle_t context, ze_device_handle_t device, const std::string &buildFlags) {
|
||||
ze_module_handle_t moduleHandle;
|
||||
std::string testFile;
|
||||
retrieveBinaryKernelFilenameApiSpecific(testFile, fileName + "_", ".bin");
|
||||
|
||||
size_t size = 0;
|
||||
auto src = loadDataFromFile(testFile.c_str(), size);
|
||||
|
||||
EXPECT_NE(0u, size);
|
||||
EXPECT_NE(nullptr, src);
|
||||
|
||||
if (!src || size == 0) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ze_module_desc_t moduleDesc = {ZE_STRUCTURE_TYPE_MODULE_DESC};
|
||||
moduleDesc.format = ZE_MODULE_FORMAT_NATIVE;
|
||||
moduleDesc.pInputModule = reinterpret_cast<const uint8_t *>(src.get());
|
||||
moduleDesc.inputSize = size;
|
||||
moduleDesc.pBuildFlags = buildFlags.data();
|
||||
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, zeModuleCreate(context, device, &moduleDesc, &moduleHandle, nullptr));
|
||||
return moduleHandle;
|
||||
}
|
||||
} // namespace L0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2021-2023 Intel Corporation
|
||||
* Copyright (C) 2021-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "shared/test/common/helpers/variable_backup.h"
|
||||
|
||||
#include "level_zero/core/test/unit_tests/mock.h"
|
||||
#include <level_zero/zes_api.h>
|
||||
|
||||
#include "test_mode.h"
|
||||
|
||||
@@ -100,6 +101,8 @@ class AUBFixtureL0 {
|
||||
}
|
||||
}
|
||||
|
||||
ze_module_handle_t createModuleFromFile(const std::string &fileName, ze_context_handle_t context, ze_device_handle_t device, const std::string &buildFlags);
|
||||
|
||||
std::string aubFileName;
|
||||
std::unique_ptr<VariableBackup<NEO::UltHwConfig>> backupUltConfig;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user