mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-12 17:33:00 +08:00
feature: initial support for MetricGroupGetExportData
Related-To: LOCI-4356, LOCI-4357 Signed-off-by: Joshua Santosh Ranjan <joshua.santosh.ranjan@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
ba4c4a5af0
commit
0853cb71b7
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2020-2022 Intel Corporation
|
||||
# Copyright (C) 2020-2023 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
@@ -27,6 +27,7 @@ target_sources(${TARGET_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_metric_oa_initialization.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_metric_ip_sampling_enumeration.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_metric_ip_sampling_streamer.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_metric_oa_export.cpp
|
||||
|
||||
)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2022 Intel Corporation
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -278,6 +278,17 @@ IAdapter_1_6 *IAdapterGroup_1_6::GetAdapter(uint32_t index) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IEquation_1_0::~IEquation_1_0() {}
|
||||
uint32_t IEquation_1_0::GetEquationElementsCount(void) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
TEquationElement_1_0 *IEquation_1_0::GetEquationElement(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IAdapterGroup_1_6 ::~IAdapterGroup_1_6() {
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
#include "level_zero/core/source/cmdlist/cmdlist.h"
|
||||
#include "level_zero/core/test/unit_tests/fixtures/device_fixture.h"
|
||||
#include "level_zero/include/zet_intel_gpu_metric.h"
|
||||
#include "level_zero/tools/source/metrics/metric_ip_sampling_source.h"
|
||||
#include "level_zero/tools/source/metrics/metric_oa_source.h"
|
||||
#include "level_zero/tools/source/metrics/os_interface_metric.h"
|
||||
@@ -988,5 +989,69 @@ TEST_F(MetricIpSamplingEnumerationTest, GivenEnumerationIsSuccessfulWhenAppendMe
|
||||
EXPECT_EQ(zetCommandListAppendMetricMemoryBarrier(commandListHandle), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
|
||||
}
|
||||
|
||||
using MetricExportDataIpSamplingTest = MetricIpSamplingEnumerationTest;
|
||||
|
||||
TEST_F(MetricExportDataIpSamplingTest, WhenMetricGroupGetExportDataIsCalledThenReturnSuccess) {
|
||||
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi());
|
||||
for (auto device : testDevices) {
|
||||
|
||||
uint32_t metricGroupCount = 0;
|
||||
zetMetricGroupGet(device->toHandle(), &metricGroupCount, nullptr);
|
||||
EXPECT_EQ(metricGroupCount, 1u);
|
||||
|
||||
std::vector<zet_metric_group_handle_t> metricGroups;
|
||||
metricGroups.resize(metricGroupCount);
|
||||
|
||||
ASSERT_EQ(zetMetricGroupGet(device->toHandle(), &metricGroupCount, metricGroups.data()), ZE_RESULT_SUCCESS);
|
||||
ASSERT_NE(metricGroups[0], nullptr);
|
||||
|
||||
uint8_t dummyRawData = 8;
|
||||
size_t exportDataSize = 0;
|
||||
const auto dummyRawDataSize = 1u;
|
||||
EXPECT_EQ(zetMetricGroupGetExportDataExp(metricGroups[0],
|
||||
&dummyRawData, dummyRawDataSize, &exportDataSize, nullptr),
|
||||
ZE_RESULT_SUCCESS);
|
||||
EXPECT_GE(exportDataSize, 0u);
|
||||
std::vector<uint8_t> exportDataMem(exportDataSize);
|
||||
EXPECT_EQ(zetMetricGroupGetExportDataExp(metricGroups[0],
|
||||
&dummyRawData, dummyRawDataSize, &exportDataSize, exportDataMem.data()),
|
||||
ZE_RESULT_SUCCESS);
|
||||
zet_intel_metric_df_gpu_export_data_format_t *exportData = reinterpret_cast<zet_intel_metric_df_gpu_export_data_format_t *>(exportDataMem.data());
|
||||
EXPECT_EQ(exportData->header.type, ZET_INTEL_METRIC_DF_SOURCE_TYPE_IPSAMPLING);
|
||||
EXPECT_EQ(dummyRawData, exportDataMem[exportData->header.rawDataOffset]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(MetricExportDataIpSamplingTest, GivenIncorrectExportDataSizeWhenMetricGroupGetExportDataIsCalledThenErrorIsReturned) {
|
||||
|
||||
EXPECT_EQ(ZE_RESULT_SUCCESS, testDevices[0]->getMetricDeviceContext().enableMetricApi());
|
||||
for (auto device : testDevices) {
|
||||
|
||||
uint32_t metricGroupCount = 0;
|
||||
zetMetricGroupGet(device->toHandle(), &metricGroupCount, nullptr);
|
||||
EXPECT_EQ(metricGroupCount, 1u);
|
||||
|
||||
std::vector<zet_metric_group_handle_t> metricGroups;
|
||||
metricGroups.resize(metricGroupCount);
|
||||
|
||||
ASSERT_EQ(zetMetricGroupGet(device->toHandle(), &metricGroupCount, metricGroups.data()), ZE_RESULT_SUCCESS);
|
||||
ASSERT_NE(metricGroups[0], nullptr);
|
||||
|
||||
uint8_t dummyRawData = 0;
|
||||
size_t exportDataSize = 0;
|
||||
const auto dummyRawDataSize = 1u;
|
||||
EXPECT_EQ(zetMetricGroupGetExportDataExp(metricGroups[0],
|
||||
&dummyRawData, dummyRawDataSize, &exportDataSize, nullptr),
|
||||
ZE_RESULT_SUCCESS);
|
||||
EXPECT_GE(exportDataSize, 0u);
|
||||
exportDataSize -= 1;
|
||||
std::vector<uint8_t> exportDataMem(exportDataSize);
|
||||
EXPECT_EQ(zetMetricGroupGetExportDataExp(metricGroups[0],
|
||||
&dummyRawData, dummyRawDataSize, &exportDataSize, exportDataMem.data()),
|
||||
ZE_RESULT_ERROR_INVALID_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user