diff options
Diffstat (limited to 'nn/runtime')
-rw-r--r-- | nn/runtime/ExecutionPlan.cpp | 5 | ||||
-rw-r--r-- | nn/runtime/Manager.cpp | 8 | ||||
-rw-r--r-- | nn/runtime/VersionedInterfaces.cpp | 27 | ||||
-rw-r--r-- | nn/runtime/test/Android.bp | 2 | ||||
-rw-r--r-- | nn/runtime/test/AndroidTest.xml | 37 | ||||
-rw-r--r-- | nn/runtime/test/TestCompliance.cpp | 32 | ||||
-rw-r--r-- | nn/runtime/test/TestFailingDriver.cpp (renamed from nn/runtime/test/TestControlFlowExecution.cpp) | 44 | ||||
-rw-r--r-- | nn/runtime/test/TestGenerated.cpp | 1 | ||||
-rw-r--r-- | nn/runtime/test/TestPartitioning.cpp | 124 | ||||
-rw-r--r-- | nn/runtime/test/TestValidateOperations.cpp | 4 | ||||
-rw-r--r-- | nn/runtime/test/generated/spec_V1_3/while_fib.example.cpp | 400 | ||||
-rw-r--r-- | nn/runtime/test/specs/V1_3/while_fib.mod.py | 2 |
12 files changed, 435 insertions, 251 deletions
diff --git a/nn/runtime/ExecutionPlan.cpp b/nn/runtime/ExecutionPlan.cpp index 0557f95d4..e955cd5e1 100644 --- a/nn/runtime/ExecutionPlan.cpp +++ b/nn/runtime/ExecutionPlan.cpp @@ -607,6 +607,7 @@ void LogicalStep::dump() const { int ExecutionPlan::CompoundBody::finish(const SourceModels* sourceModels, int32_t executionPreference, int32_t priority, const std::optional<Deadline>& deadline) { + CHECK(!mSuccessfulFinish); CHECK(!deadline.has_value()); const ModelBuilder* mainModel = sourceModels->getModel(kMainModelInSourceModels); @@ -700,6 +701,7 @@ void ExecutionPlan::CompoundBody::findControlFlowBoundaryConstants( int ExecutionPlan::SimpleBody::finish(const SourceModels*, int32_t executionPreference, int32_t priority, const std::optional<Deadline>& deadline) { + CHECK(!mSuccessfulFinish); CHECK(mDevice != nullptr); VLOG(COMPILATION) << "ExecutionPlan::SimpleBody::finish, compilation"; const int n = compile(*mDevice, *mModel, executionPreference, priority, deadline, *mCacheDir, @@ -1108,6 +1110,7 @@ int ExecutionPlan::next(std::shared_ptr<Controller> controller, if (burstController != nullptr && controller->mBurstBuilder != nullptr) { *burstController = controller->mBurstBuilder->getControllerAt(0); } + controller->mFallbackNextStepIndex = 0; controller->mNextStepIndex = 1; return ANEURALNETWORKS_NO_ERROR; } @@ -1637,7 +1640,7 @@ int ModelBuilder::partitionTheWorkInternal(uint32_t sourceModelIndex, VLOG(COMPILATION) << "ModelBuilder::partitionTheWork: only one best device: " << bestDeviceIndex << " = " << devices[bestDeviceIndex]->getName(); plan->becomeSingleStep(devices[bestDeviceIndex], this); - return plan->finish(preference, priority, deadline); + return ANEURALNETWORKS_NO_ERROR; } } diff --git a/nn/runtime/Manager.cpp b/nn/runtime/Manager.cpp index 310710e3c..634cd2aec 100644 --- a/nn/runtime/Manager.cpp +++ b/nn/runtime/Manager.cpp @@ -379,9 +379,9 @@ std::tuple<int, std::vector<OutputShape>, Timing> DriverPreparedModel::execute( const bool burstCompute = (burstController != nullptr); bool burstFallback = true; if (burstCompute) { - const bool compliant = compliantWithV1_0(request); + const bool compliant = compliantWithV1_2(request); if (compliant) { - V1_0::Request request10 = convertToV1_0(request); + V1_0::Request request12 = convertToV1_2(request); std::vector<intptr_t> memoryIds; memoryIds.reserve(localMemories.size()); for (const Memory* memory : localMemories) { @@ -390,9 +390,9 @@ std::tuple<int, std::vector<OutputShape>, Timing> DriverPreparedModel::execute( } VLOG(EXECUTION) << "Before ExecutionBurstController->compute() " - << SHOW_IF_DEBUG(toString(request10)); + << SHOW_IF_DEBUG(toString(request12)); std::tie(n, outputShapes, timing, burstFallback) = - burstController->compute(request10, measure, memoryIds); + burstController->compute(request12, measure, memoryIds); } } diff --git a/nn/runtime/VersionedInterfaces.cpp b/nn/runtime/VersionedInterfaces.cpp index 3ae950eac..33d290cfe 100644 --- a/nn/runtime/VersionedInterfaces.cpp +++ b/nn/runtime/VersionedInterfaces.cpp @@ -241,17 +241,16 @@ std::tuple<int, std::vector<OutputShape>, Timing> VersionedIPreparedModel::execu return getResults(*callback); } - const bool compliant = compliantWithV1_0(request); - if (!compliant) { - LOG(ERROR) << "Could not handle execute or execute_1_2!"; - return failWithStatus(ErrorStatus::GENERAL_FAILURE); - } - const V1_0::Request request10 = convertToV1_0(request); - // version 1.2 HAL if (mPreparedModelV1_2 != nullptr) { + const bool compliant = compliantWithV1_2(request); + if (!compliant) { + LOG(ERROR) << "Could not handle execute_1_2!"; + return failWithStatus(ErrorStatus::GENERAL_FAILURE); + } + const V1_0::Request request12 = convertToV1_2(request); Return<V1_0::ErrorStatus> ret = - mPreparedModelV1_2->execute_1_2(request10, measure, callback); + mPreparedModelV1_2->execute_1_2(request12, measure, callback); if (ret.isDeadObject()) { LOG(ERROR) << "execute_1_2 failure: " << ret.description(); return failDeadObject(); @@ -271,6 +270,12 @@ std::tuple<int, std::vector<OutputShape>, Timing> VersionedIPreparedModel::execu // version 1.0 HAL if (mPreparedModelV1_0 != nullptr) { + const bool compliant = compliantWithV1_0(request); + if (!compliant) { + LOG(ERROR) << "Could not handle execute!"; + return failWithStatus(ErrorStatus::GENERAL_FAILURE); + } + const V1_0::Request request10 = convertToV1_0(request); Return<V1_0::ErrorStatus> ret = mPreparedModelV1_0->execute(request10, callback); if (ret.isDeadObject()) { LOG(ERROR) << "execute failure: " << ret.description(); @@ -324,16 +329,16 @@ std::tuple<int, std::vector<OutputShape>, Timing> VersionedIPreparedModel::execu // version 1.2 HAL if (mPreparedModelV1_2 != nullptr) { - const bool compliant = compliantWithV1_0(request); + const bool compliant = compliantWithV1_2(request); if (!compliant) { LOG(ERROR) << "Could not handle executeSynchronously!"; return kFailure; } - const V1_0::Request request10 = convertToV1_0(request); + const V1_0::Request request12 = convertToV1_2(request); std::tuple<int, std::vector<OutputShape>, Timing> result; Return<void> ret = mPreparedModelV1_2->executeSynchronously( - request10, measure, + request12, measure, [&result](V1_0::ErrorStatus error, const hidl_vec<OutputShape>& outputShapes, const Timing& timing) { result = getExecutionResult(convertToV1_3(error), outputShapes, timing); diff --git a/nn/runtime/test/Android.bp b/nn/runtime/test/Android.bp index aed0c4e60..65d9de688 100644 --- a/nn/runtime/test/Android.bp +++ b/nn/runtime/test/Android.bp @@ -121,9 +121,9 @@ cc_defaults { // "TestOpenmpSettings.cpp", "TestCompilationCaching.cpp", "TestCompliance.cpp", - "TestControlFlowExecution.cpp", "TestExecution.cpp", "TestExtensions.cpp", + "TestFailingDriver.cpp", "TestIntrospectionControl.cpp", "TestMemoryDomain.cpp", "TestMemoryInternal.cpp", diff --git a/nn/runtime/test/AndroidTest.xml b/nn/runtime/test/AndroidTest.xml new file mode 100644 index 000000000..2712e009c --- /dev/null +++ b/nn/runtime/test/AndroidTest.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2020 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<configuration description="Runs NeuralNetworksTest_static."> + <option name="test-suite-tag" value="apct" /> + <option name="test-suite-tag" value="apct-native" /> + + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"> + <option name="force-root" value="false" /> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> + <option name="cleanup" value="true" /> + <option name="push" value="NeuralNetworksTest_static->/data/local/tmp/NeuralNetworksTest_static" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.GTest" > + <!-- b/153876253, temporarily disable the failing tests. + Must be deleted after corresponding driver issues are fixed. + --> + <option name="native-test-flag" value="--gtest_filter=-*l2_normalization_axis_corner_case*" /> + <option name="native-test-device-path" value="/data/local/tmp" /> + <option name="module-name" value="NeuralNetworksTest_static" /> + </test> +</configuration> diff --git a/nn/runtime/test/TestCompliance.cpp b/nn/runtime/test/TestCompliance.cpp index 53bff038b..db5ab4d3e 100644 --- a/nn/runtime/test/TestCompliance.cpp +++ b/nn/runtime/test/TestCompliance.cpp @@ -18,6 +18,7 @@ #include "GeneratedTestUtils.h" #include "HalInterfaces.h" +#include "Memory.h" #include "MemoryUtils.h" #include "ModelBuilder.h" #include "TestNeuralNetworksWrapper.h" @@ -71,8 +72,14 @@ static void testAvailableSinceV1_0(const WrapperModel& wrapperModel) { ASSERT_TRUE(compliantWithV1_0(hidlModel)); } +static void testAvailableSinceV1_2(const Request& request) { + ASSERT_FALSE(compliantWithV1_0(request)); + ASSERT_TRUE(compliantWithV1_2(request)); +} + static void testAvailableSinceV1_3(const Request& request) { ASSERT_FALSE(compliantWithV1_0(request)); + ASSERT_FALSE(compliantWithV1_2(request)); } static const WrapperOperandType kTypeTensorFloat(WrapperType::TENSOR_FLOAT32, {1}); @@ -126,7 +133,7 @@ TEST_F(ComplianceTest, Rank0TensorTemporaryVariable) { testAvailableSinceV1_2(model); } -TEST_F(ComplianceTest, HardwareBuffer) { +TEST_F(ComplianceTest, HardwareBufferModel) { const size_t memorySize = 20; AHardwareBuffer_Desc desc{ .width = memorySize, @@ -157,6 +164,29 @@ TEST_F(ComplianceTest, HardwareBuffer) { AHardwareBuffer_release(buffer); } +TEST_F(ComplianceTest, HardwareBufferRequest) { + const auto [n, ahwb] = MemoryRuntimeAHWB::create(1024); + ASSERT_EQ(n, ANEURALNETWORKS_NO_ERROR); + Request::MemoryPool sharedMemoryPool, ahwbMemoryPool = ahwb->getMemoryPool(); + sharedMemoryPool.hidlMemory(allocateSharedMemory(1024)); + ASSERT_TRUE(sharedMemoryPool.hidlMemory().valid()); + ASSERT_TRUE(ahwbMemoryPool.hidlMemory().valid()); + + // AHardwareBuffer as input. + testAvailableSinceV1_2(Request{ + .inputs = {{.hasNoValue = false, .location = {.poolIndex = 0}, .dimensions = {}}}, + .outputs = {{.hasNoValue = false, .location = {.poolIndex = 1}, .dimensions = {}}}, + .pools = {ahwbMemoryPool, sharedMemoryPool}, + }); + + // AHardwareBuffer as output. + testAvailableSinceV1_2(Request{ + .inputs = {{.hasNoValue = false, .location = {.poolIndex = 0}, .dimensions = {}}}, + .outputs = {{.hasNoValue = false, .location = {.poolIndex = 1}, .dimensions = {}}}, + .pools = {sharedMemoryPool, ahwbMemoryPool}, + }); +} + TEST_F(ComplianceTest, DeviceMemory) { Request::MemoryPool sharedMemoryPool, deviceMemoryPool; sharedMemoryPool.hidlMemory(allocateSharedMemory(1024)); diff --git a/nn/runtime/test/TestControlFlowExecution.cpp b/nn/runtime/test/TestFailingDriver.cpp index 34e4b2923..7d41ace20 100644 --- a/nn/runtime/test/TestControlFlowExecution.cpp +++ b/nn/runtime/test/TestFailingDriver.cpp @@ -72,12 +72,14 @@ class FailingTestDriver : public SampleDriverPartial { class FailingDriverTest : public ::testing::Test { virtual void SetUp() { - if (DeviceManager::get()->getUseCpuOnly()) { + DeviceManager* deviceManager = DeviceManager::get(); + if (deviceManager->getUseCpuOnly() || + !DeviceManager::partitioningAllowsFallback(deviceManager->getPartitioning())) { GTEST_SKIP(); } mTestDevice = DeviceManager::forTest_makeDriverDevice(kTestDriverName, new FailingTestDriver()); - DeviceManager::get()->forTest_setDevices({ + deviceManager->forTest_setDevices({ mTestDevice, DeviceManager::getCpuDevice(), }); @@ -170,5 +172,43 @@ TEST_F(FailingDriverTest, FailAfterInterpretedWhile) { ASSERT_EQ(fSqrt[1], 5); } +// Regression test for b/155923033. +TEST_F(FailingDriverTest, SimplePlan) { + // Model: + // output0 = SQRT(input0) + // + // This results in a SIMPLE execution plan. When FailingTestDriver fails, + // partial CPU fallback should complete the execution. + + WrapperOperandType floatType(WrapperType::TENSOR_FLOAT32, {2}); + + WrapperModel model; + { + uint32_t fInput = model.addOperand(&floatType); + uint32_t fSqrt = model.addOperand(&floatType); + model.addOperation(ANEURALNETWORKS_SQRT, {fInput}, {fSqrt}); + model.identifyInputsAndOutputs({fInput}, {fSqrt}); + ASSERT_TRUE(model.isValid()); + ASSERT_EQ(model.finish(), Result::NO_ERROR); + } + + WrapperCompilation compilation(&model); + ASSERT_EQ(compilation.finish(), Result::NO_ERROR); + + const CompilationBuilder* compilationBuilder = + reinterpret_cast<CompilationBuilder*>(compilation.getHandle()); + const ExecutionPlan& plan = compilationBuilder->forTest_getExecutionPlan(); + ASSERT_TRUE(plan.isSimple()); + + WrapperExecution execution(&compilation); + const float fInput[] = {12 * 12, 5 * 5}; + float fSqrt[] = {0, 0}; + ASSERT_EQ(execution.setInput(0, &fInput), Result::NO_ERROR); + ASSERT_EQ(execution.setOutput(0, &fSqrt), Result::NO_ERROR); + ASSERT_EQ(execution.compute(), Result::NO_ERROR); + ASSERT_EQ(fSqrt[0], 12); + ASSERT_EQ(fSqrt[1], 5); +} + } // namespace } // namespace android::nn diff --git a/nn/runtime/test/TestGenerated.cpp b/nn/runtime/test/TestGenerated.cpp index cc0b61983..a76aecd92 100644 --- a/nn/runtime/test/TestGenerated.cpp +++ b/nn/runtime/test/TestGenerated.cpp @@ -382,7 +382,6 @@ TEST_P(GeneratedValidationTests, Test) { } TEST_P(QuantizationCouplingTest, Test) { - execute(testModel); execute(convertQuant8AsymmOperandsToSigned(testModel)); } diff --git a/nn/runtime/test/TestPartitioning.cpp b/nn/runtime/test/TestPartitioning.cpp index 3bde4cf90..7b4205ac8 100644 --- a/nn/runtime/test/TestPartitioning.cpp +++ b/nn/runtime/test/TestPartitioning.cpp @@ -86,6 +86,13 @@ // MINIMUM, POW, or PRELU. These operations take no activation // function, so we only get 4 operation kinds, for which we // use operation encodings 16..19. +// - There is another collection of operations (each of which has one inpus +// and one output): +// - Single operation available at driver version V1_3 or +// later. It is represented in the graph as HARD_SWISH. +// These operations take no activation function, for which we +// use operation encodings 20..20. + // When we instantiate a device for testing purposes, we specify what subset of // those operations the device is able to execute. // @@ -204,6 +211,11 @@ const uint32_t kFirstEncodingPRELU = kFirstEncodingPOW + 1; const uint32_t kFirstEncodingV1_2 = kFirstEncodingMAXIMUM; const uint32_t kLastEncodingV1_2 = kFirstEncodingPRELU; +// V1_3 operations +const uint32_t kFirstEncodingHARD_SWISH = kLastEncodingV1_2 + 1; +const uint32_t kFirstEncodingV1_3 = kFirstEncodingHARD_SWISH; +const uint32_t kLastEncodingV1_3 = kFirstEncodingHARD_SWISH; + const std::map<OperationType, uint32_t> operationToFirstEncoding = { {OperationType::ADD, kFirstEncodingADD}, {OperationType::MUL, kFirstEncodingMUL}, @@ -213,6 +225,7 @@ const std::map<OperationType, uint32_t> operationToFirstEncoding = { {OperationType::MINIMUM, kFirstEncodingMINIMUM}, {OperationType::POW, kFirstEncodingPOW}, {OperationType::PRELU, kFirstEncodingPRELU}, + {OperationType::HARD_SWISH, kFirstEncodingHARD_SWISH}, }; // Sorted in reverse order (std::greater) so that we can use map::lower_bound to @@ -227,6 +240,7 @@ const std::map<uint32_t, std::pair<uint32_t, bool>, std::greater<>> firstEncodin {kFirstEncodingMINIMUM, {ANEURALNETWORKS_MINIMUM, false}}, {kFirstEncodingPOW, {ANEURALNETWORKS_POW, false}}, {kFirstEncodingPRELU, {ANEURALNETWORKS_PRELU, false}}, + {kFirstEncodingHARD_SWISH, {ANEURALNETWORKS_HARD_SWISH, false}}, }; // Look up the operation with the specified index in a graph, and return the @@ -664,6 +678,16 @@ class PartitioningModel : private WrapperModel { return addOperation2To1(operation + kFirstEncodingV1_2, input0, input1, dimensionedOutput); } + // Create a V1_3 operation with two inputs and one output, specifying the + // operation kind (where 0 is the first V1_3 operation) and the input + // operand indexes. + // Returns the output operand index. + uint32_t addOperation1To1V1_3(uint32_t operation, const uint32_t input0, + Dimensioned dimensionedOutput = Dimensioned::YES) { + CHECK_LE(operation, kLastEncodingV1_3 - kFirstEncodingV1_3); + return addOperation1To1(operation + kFirstEncodingV1_3, input0, dimensionedOutput); + } + // Create an OEM operation with one input and one output, // specifying the input operand index. Returns the output operand // index. @@ -725,6 +749,20 @@ class PartitioningModel : private WrapperModel { } } + // Create an operation with one inputs and one output, specifying + // the operation kind and the input operand indexes. + // Returns the output operand index. + uint32_t addOperation1To1(uint32_t operation, const uint32_t input0, + Dimensioned dimensionedOutput = Dimensioned::YES) { + auto it = firstEncodingToOperation.lower_bound(operation); + CHECK(it != firstEncodingToOperation.end()); + ANeuralNetworksOperationType type = it->second.first; + + uint32_t output = addOperandOfSameType(input0, dimensionedOutput); + addOperation(type, {input0}, {output}); + return output; + } + // Create a scalar integer operand of the specified value, and // return the corresponding operand index. uint32_t addIntOperand(int32_t value) { @@ -850,10 +888,11 @@ class PartitioningTest : public ::testing::Test { } DeviceSpecification(const std::string& name, float perf, HalVersion halVersion, uint32_t operationMaskV1_0, uint32_t operationMaskV1_1 = 0, - uint32_t operationMaskV1_2 = 0) - : DeviceSpecification(name, perf, perf, - makeOperationMask(halVersion, operationMaskV1_0, - operationMaskV1_1, operationMaskV1_2)) { + uint32_t operationMaskV1_2 = 0, uint32_t operationMaskV1_3 = 0) + : DeviceSpecification( + name, perf, perf, + makeOperationMask(halVersion, operationMaskV1_0, operationMaskV1_1, + operationMaskV1_2, operationMaskV1_3)) { mHalVersion = halVersion; } @@ -886,7 +925,11 @@ class PartitioningTest : public ::testing::Test { // This is used by a DeviceSpecification constructor to build a mask of // operations to be supported by the device. static uint32_t makeOperationMask(HalVersion halVersion, uint32_t operationMaskV1_0, - uint32_t operationMaskV1_1, uint32_t operationMaskV1_2) { + uint32_t operationMaskV1_1, uint32_t operationMaskV1_2, + uint32_t operationMaskV1_3) { + if (halVersion < HalVersion::V1_3) { + CHECK(!operationMaskV1_3); + } if (halVersion < HalVersion::V1_2) { CHECK(!operationMaskV1_2); } @@ -900,9 +943,12 @@ class PartitioningTest : public ::testing::Test { maskOfWidth(kLastEncodingV1_1 - kFirstEncodingV1_1 + 1); static const uint32_t kOperationMaskV1_2 = maskOfWidth(kLastEncodingV1_2 - kFirstEncodingV1_2 + 1); + static const uint32_t kOperationMaskV1_3 = + maskOfWidth(kLastEncodingV1_3 - kFirstEncodingV1_3 + 1); return ((operationMaskV1_0 & kOperationMaskV1_0) << kFirstEncodingV1_0) | ((operationMaskV1_1 & kOperationMaskV1_1) << kFirstEncodingV1_1) | - ((operationMaskV1_2 & kOperationMaskV1_2) << kFirstEncodingV1_2); + ((operationMaskV1_2 & kOperationMaskV1_2) << kFirstEncodingV1_2) | + ((operationMaskV1_3 & kOperationMaskV1_3) << kFirstEncodingV1_3); } }; static std::vector<std::shared_ptr<Device>> makeDevices( @@ -1394,36 +1440,39 @@ TEST_F(PartitioningTest, SliceModel) { uint32_t opnd3 = model.addOperation2To1V1_0(1, opnd0, opnd1); uint32_t opnd4 = model.addOperation2To1V1_1(0, opnd0, opnd1); uint32_t opnd5 = model.addOperation2To1V1_2(0, opnd2, opnd3); - model.identifyInputsAndOutputs({opnd0, opnd1}, {opnd2, opnd4, opnd5}); + uint32_t opnd6 = model.addOperation1To1V1_3(0, opnd2); + model.identifyInputsAndOutputs({opnd0, opnd1}, {opnd2, opnd4, opnd5, opnd6}); model.finish(); ASSERT_TRUE(model.isValid()); - // Simple partition (V1_0, V1_1, V1_2 devices are available; V1_2 has best perf). + // Simple partition (V1_0, V1_1, V1_2, V1_3 devices are available; V1_3 has best perf). // No need to compare the original model to the model from the plan -- we // didn't actually do any partitioning. const auto devicesA = makeDevices({{"V1_0", 0.8, HalVersion::V1_0, ~0U}, {"V1_1", 0.7, HalVersion::V1_1, ~0U, ~0U}, - {"V1_2", 0.6, HalVersion::V1_2, ~0U, ~0U, ~0U}}); + {"V1_2", 0.6, HalVersion::V1_2, ~0U, ~0U, ~0U}, + {"V1_3", 0.5, HalVersion::V1_3, ~0U, ~0U, ~0U, ~0U}}); ExecutionPlan planA; ASSERT_EQ(model.partitionTheWork(devicesA, ExecutePreference::PREFER_LOW_POWER, ExecutePriority::DEFAULT, {}, &planA), ANEURALNETWORKS_NO_ERROR); ASSERT_EQ(planA.forTest_getKind(), ExecutionPlan::Kind::SIMPLE); ASSERT_NE(planA.forTest_simpleGetDevice().get(), nullptr); - ASSERT_EQ(planA.forTest_simpleGetDevice()->getName(), "V1_2"); + ASSERT_EQ(planA.forTest_simpleGetDevice()->getName(), "V1_3"); // Compound partition (V1_0, V1_1, V1_2 devices are available, in decreasing // order of performance; model is distributed across all three devices). const auto devicesB = makeDevices({{"V1_0", 0.6, HalVersion::V1_0, ~0U}, {"V1_1", 0.7, HalVersion::V1_1, ~0U, ~0U}, - {"V1_2", 0.8, HalVersion::V1_2, ~0U, ~0U, ~0U}}); + {"V1_2", 0.8, HalVersion::V1_2, ~0U, ~0U, ~0U}, + {"V1_3", 0.9, HalVersion::V1_3, ~0U, ~0U, ~0U, ~0U}}); ExecutionPlan planB; ASSERT_EQ(model.partitionTheWork(devicesB, ExecutePreference::PREFER_LOW_POWER, ExecutePriority::DEFAULT, {}, &planB), ANEURALNETWORKS_NO_ERROR); ASSERT_EQ(planB.forTest_getKind(), ExecutionPlan::Kind::COMPOUND); const auto& stepsB = planB.forTest_compoundGetSteps(); - ASSERT_EQ(stepsB.size(), size_t(3)); + ASSERT_EQ(stepsB.size(), size_t(4)); { // Build a model to compare against the step model from stepsB[0]. PartitioningModel modelB0; @@ -1465,25 +1514,44 @@ TEST_F(PartitioningTest, SliceModel) { // Build a model to compare against the step model from stepsB[2]. PartitioningModel modelB2; uint32_t b2Opnd0 = modelB2.addFloatOperand(); - uint32_t b2Opnd1 = modelB2.addFloatOperand(); - uint32_t b2Opnd2 = modelB2.addOperation2To1V1_2(0, b2Opnd0, b2Opnd1); + uint32_t b2Opnd1 = modelB2.addOperation1To1V1_3(0, b2Opnd0); // Note: In the partitioning algorithm, temps that are // step model inputs precede model outputs that are step model - // inputs. In the original model "model", opnd3 is a temp and - // opnd2 is a model output; so in the step model "modelB2", the - // corresponding inputs b2Opnd1 and b2Opnd0 must appear in - // that order. - modelB2.identifyInputsAndOutputs({b2Opnd1, b2Opnd0}, {b2Opnd2}); + // inputs. + modelB2.identifyInputsAndOutputs({b2Opnd0}, {b2Opnd1}); modelB2.finish(); ASSERT_TRUE(modelB2.isValid()); ASSERT_NO_FATAL_FAILURE( - compare(stepsB[2], &modelB2, devicesB[2], RemapVectorType{}, // modelInputs - RemapVectorType{{opnd5, b2Opnd2}}, // modelOutputs - RemapVectorType{{opnd3, b2Opnd1}}, // tempsAsStepModelInputs + compare(stepsB[2], &modelB2, devicesB[3], RemapVectorType{}, // modelInputs + RemapVectorType{{opnd6, b2Opnd1}}, // modelOutputs + RemapVectorType{}, // tempsAsStepModelInputs StepModelOutputSetType{}, // tempsAsStepModelOutputs RemapVectorType{{opnd2, b2Opnd0}})); // outputsAsStepModelInputs } + { + // Build a model to compare against the step model from stepsB[3]. + PartitioningModel modelB3; + uint32_t b3Opnd0 = modelB3.addFloatOperand(); + uint32_t b3Opnd1 = modelB3.addFloatOperand(); + uint32_t b3Opnd2 = modelB3.addOperation2To1V1_2(0, b3Opnd0, b3Opnd1); + // Note: In the partitioning algorithm, temps that are + // step model inputs precede model outputs that are step model + // inputs. In the original model "model", opnd3 is a temp and + // opnd2 is a model output; so in the step model "modelB3", the + // corresponding inputs b3Opnd1 and b3Opnd0 must appear in + // that order. + modelB3.identifyInputsAndOutputs({b3Opnd1, b3Opnd0}, {b3Opnd2}); + modelB3.finish(); + ASSERT_TRUE(modelB3.isValid()); + + ASSERT_NO_FATAL_FAILURE( + compare(stepsB[3], &modelB3, devicesB[2], RemapVectorType{}, // modelInputs + RemapVectorType{{opnd5, b3Opnd2}}, // modelOutputs + RemapVectorType{{opnd3, b3Opnd1}}, // tempsAsStepModelInputs + StepModelOutputSetType{}, // tempsAsStepModelOutputs + RemapVectorType{{opnd2, b3Opnd0}})); // outputsAsStepModelInputs + } // TODO: Make sure this still works when we have multiple devices // of same version available for slicing. An easy (?) choice would @@ -1494,25 +1562,25 @@ TEST_F(PartitioningTest, SliceModel) { TEST_F(PartitioningTest, SliceModelToEmpty) { PartitioningModel model; uint32_t opnd0 = model.addFloatOperand(); - uint32_t opnd1 = model.addFloatOperand(); - uint32_t opnd2 = model.addOperation2To1V1_2(0, opnd0, opnd1); - model.identifyInputsAndOutputs({opnd0, opnd1}, {opnd2}); + uint32_t opnd1 = model.addOperation1To1V1_3(0, opnd0); + model.identifyInputsAndOutputs({opnd0}, {opnd1}); model.finish(); ASSERT_TRUE(model.isValid()); - // Only the V1_2 device can handle any operations in the model. + // Only the V1_3 device can handle any operations in the model. // No need to compare the original model to the model from the plan -- we // didn't actually do any partitioning. const auto devices = makeDevices({{"V1_0", 0.6, HalVersion::V1_0, ~0U}, {"V1_1", 0.7, HalVersion::V1_1, ~0U, ~0U}, - {"V1_2", 0.8, HalVersion::V1_2, ~0U, ~0U, ~0U}}); + {"V1_2", 0.8, HalVersion::V1_2, ~0U, ~0U, ~0U}, + {"V1_3", 0.9, HalVersion::V1_3, ~0U, ~0U, ~0U, ~0U}}); ExecutionPlan plan; ASSERT_EQ(model.partitionTheWork(devices, ExecutePreference::PREFER_LOW_POWER, ExecutePriority::DEFAULT, {}, &plan), ANEURALNETWORKS_NO_ERROR); ASSERT_EQ(plan.forTest_getKind(), ExecutionPlan::Kind::SIMPLE); ASSERT_NE(plan.forTest_simpleGetDevice().get(), nullptr); - ASSERT_EQ(plan.forTest_simpleGetDevice()->getName(), "V1_2"); + ASSERT_EQ(plan.forTest_simpleGetDevice()->getName(), "V1_3"); } TEST_F(PartitioningTest, Cpu) { diff --git a/nn/runtime/test/TestValidateOperations.cpp b/nn/runtime/test/TestValidateOperations.cpp index 7748acd45..4ac4f8d7d 100644 --- a/nn/runtime/test/TestValidateOperations.cpp +++ b/nn/runtime/test/TestValidateOperations.cpp @@ -2374,7 +2374,9 @@ void fullyConnectedOpTest(int32_t operandCode) { OperationTestBase fullyConnectedTest(ANEURALNETWORKS_FULLY_CONNECTED, {input, weights, bias, activation}, {output}, - {{TensorRankConstraint::Between(2, 4)}}); + {{TensorRankConstraint::Between(2, 4), {0}}, + {TensorRankConstraint::Exactly(2), {1}}, + {TensorRankConstraint::Exactly(1), {2}}}); fullyConnectedTest.testOpsValidations(); } diff --git a/nn/runtime/test/generated/spec_V1_3/while_fib.example.cpp b/nn/runtime/test/generated/spec_V1_3/while_fib.example.cpp index 3e2614dec..e8f47402e 100644 --- a/nn/runtime/test/generated/spec_V1_3/while_fib.example.cpp +++ b/nn/runtime/test/generated/spec_V1_3/while_fib.example.cpp @@ -226,7 +226,7 @@ const TestModel& get_test_model_n_1_unused_output() { }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -485,7 +485,7 @@ const TestModel& get_test_model_n_1_unused_output_all_tensors_as_inputs() { }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -778,7 +778,7 @@ const TestModel& get_test_model_n_1_unused_output_all_tensors_as_inputs_all_inpu }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -1071,7 +1071,7 @@ const TestModel& get_test_model_n_1_unused_output_all_outputs_as_internal() { }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -1330,7 +1330,7 @@ const TestModel& get_test_model_n_1_unused_output_relaxed() { }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -1589,7 +1589,7 @@ const TestModel& get_test_model_n_1_unused_output_relaxed_all_tensors_as_inputs( }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -1882,7 +1882,7 @@ const TestModel& get_test_model_n_1_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -2175,7 +2175,7 @@ const TestModel& get_test_model_n_1_unused_output_relaxed_all_outputs_as_interna }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -2434,7 +2434,7 @@ const TestModel& get_test_model_n_1_unused_output_float16() { }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -2693,7 +2693,7 @@ const TestModel& get_test_model_n_1_unused_output_float16_all_tensors_as_inputs( }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -2986,7 +2986,7 @@ const TestModel& get_test_model_n_1_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -3279,7 +3279,7 @@ const TestModel& get_test_model_n_1_unused_output_float16_all_outputs_as_interna }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -3538,7 +3538,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8() { }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -3797,7 +3797,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_all_tensors_as_inputs() }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -4090,7 +4090,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_all_tensors_as_inputs_a }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -4383,7 +4383,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_all_outputs_as_internal }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -4642,7 +4642,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_signed() { }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -4901,7 +4901,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -5194,7 +5194,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -5487,7 +5487,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_signed_all_outputs_as_i }, { // zero_bias .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -5746,7 +5746,7 @@ const TestModel& get_test_model_n_2_unused_output() { }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -6005,7 +6005,7 @@ const TestModel& get_test_model_n_2_unused_output_all_tensors_as_inputs() { }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -6298,7 +6298,7 @@ const TestModel& get_test_model_n_2_unused_output_all_tensors_as_inputs_all_inpu }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -6591,7 +6591,7 @@ const TestModel& get_test_model_n_2_unused_output_all_outputs_as_internal() { }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -6850,7 +6850,7 @@ const TestModel& get_test_model_n_2_unused_output_relaxed() { }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -7109,7 +7109,7 @@ const TestModel& get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs( }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -7402,7 +7402,7 @@ const TestModel& get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -7695,7 +7695,7 @@ const TestModel& get_test_model_n_2_unused_output_relaxed_all_outputs_as_interna }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -7954,7 +7954,7 @@ const TestModel& get_test_model_n_2_unused_output_float16() { }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -8213,7 +8213,7 @@ const TestModel& get_test_model_n_2_unused_output_float16_all_tensors_as_inputs( }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -8506,7 +8506,7 @@ const TestModel& get_test_model_n_2_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -8799,7 +8799,7 @@ const TestModel& get_test_model_n_2_unused_output_float16_all_outputs_as_interna }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -9058,7 +9058,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8() { }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -9317,7 +9317,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs() }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -9610,7 +9610,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_a }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -9903,7 +9903,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_all_outputs_as_internal }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -10162,7 +10162,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_signed() { }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -10421,7 +10421,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -10714,7 +10714,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -11007,7 +11007,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_outputs_as_i }, { // zero_bias1 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -11266,7 +11266,7 @@ const TestModel& get_test_model_n_3_unused_output() { }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -11525,7 +11525,7 @@ const TestModel& get_test_model_n_3_unused_output_all_tensors_as_inputs() { }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -11818,7 +11818,7 @@ const TestModel& get_test_model_n_3_unused_output_all_tensors_as_inputs_all_inpu }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -12111,7 +12111,7 @@ const TestModel& get_test_model_n_3_unused_output_all_outputs_as_internal() { }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -12370,7 +12370,7 @@ const TestModel& get_test_model_n_3_unused_output_relaxed() { }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -12629,7 +12629,7 @@ const TestModel& get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs( }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -12922,7 +12922,7 @@ const TestModel& get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -13215,7 +13215,7 @@ const TestModel& get_test_model_n_3_unused_output_relaxed_all_outputs_as_interna }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -13474,7 +13474,7 @@ const TestModel& get_test_model_n_3_unused_output_float16() { }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -13733,7 +13733,7 @@ const TestModel& get_test_model_n_3_unused_output_float16_all_tensors_as_inputs( }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -14026,7 +14026,7 @@ const TestModel& get_test_model_n_3_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -14319,7 +14319,7 @@ const TestModel& get_test_model_n_3_unused_output_float16_all_outputs_as_interna }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -14578,7 +14578,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8() { }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -14837,7 +14837,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs() }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -15130,7 +15130,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_a }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -15423,7 +15423,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_all_outputs_as_internal }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -15682,7 +15682,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_signed() { }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -15941,7 +15941,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -16234,7 +16234,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -16527,7 +16527,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_outputs_as_i }, { // zero_bias2 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -16776,7 +16776,7 @@ const TestModel& get_test_model_n_4() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -17025,7 +17025,7 @@ const TestModel& get_test_model_n_4_all_tensors_as_inputs() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -17308,7 +17308,7 @@ const TestModel& get_test_model_n_4_all_tensors_as_inputs_all_inputs_as_internal }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -17591,7 +17591,7 @@ const TestModel& get_test_model_n_4_all_outputs_as_internal() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -17840,7 +17840,7 @@ const TestModel& get_test_model_n_4_relaxed() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -18089,7 +18089,7 @@ const TestModel& get_test_model_n_4_relaxed_all_tensors_as_inputs() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -18372,7 +18372,7 @@ const TestModel& get_test_model_n_4_relaxed_all_tensors_as_inputs_all_inputs_as_ }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -18655,7 +18655,7 @@ const TestModel& get_test_model_n_4_relaxed_all_outputs_as_internal() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -18904,7 +18904,7 @@ const TestModel& get_test_model_n_4_float16() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -19153,7 +19153,7 @@ const TestModel& get_test_model_n_4_float16_all_tensors_as_inputs() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -19436,7 +19436,7 @@ const TestModel& get_test_model_n_4_float16_all_tensors_as_inputs_all_inputs_as_ }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -19719,7 +19719,7 @@ const TestModel& get_test_model_n_4_float16_all_outputs_as_internal() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -19968,7 +19968,7 @@ const TestModel& get_test_model_n_4_quant8() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -20217,7 +20217,7 @@ const TestModel& get_test_model_n_4_quant8_all_tensors_as_inputs() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -20500,7 +20500,7 @@ const TestModel& get_test_model_n_4_quant8_all_tensors_as_inputs_all_inputs_as_i }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -20783,7 +20783,7 @@ const TestModel& get_test_model_n_4_quant8_all_outputs_as_internal() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -21032,7 +21032,7 @@ const TestModel& get_test_model_n_4_quant8_signed() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -21281,7 +21281,7 @@ const TestModel& get_test_model_n_4_quant8_signed_all_tensors_as_inputs() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -21564,7 +21564,7 @@ const TestModel& get_test_model_n_4_quant8_signed_all_tensors_as_inputs_all_inpu }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -21847,7 +21847,7 @@ const TestModel& get_test_model_n_4_quant8_signed_all_outputs_as_internal() { }, { // zero_bias3 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -22096,7 +22096,7 @@ const TestModel& get_test_model_n_5() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -22345,7 +22345,7 @@ const TestModel& get_test_model_n_5_all_tensors_as_inputs() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -22628,7 +22628,7 @@ const TestModel& get_test_model_n_5_all_tensors_as_inputs_all_inputs_as_internal }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -22911,7 +22911,7 @@ const TestModel& get_test_model_n_5_all_outputs_as_internal() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -23160,7 +23160,7 @@ const TestModel& get_test_model_n_5_relaxed() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -23409,7 +23409,7 @@ const TestModel& get_test_model_n_5_relaxed_all_tensors_as_inputs() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -23692,7 +23692,7 @@ const TestModel& get_test_model_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_ }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -23975,7 +23975,7 @@ const TestModel& get_test_model_n_5_relaxed_all_outputs_as_internal() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -24224,7 +24224,7 @@ const TestModel& get_test_model_n_5_float16() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -24473,7 +24473,7 @@ const TestModel& get_test_model_n_5_float16_all_tensors_as_inputs() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -24756,7 +24756,7 @@ const TestModel& get_test_model_n_5_float16_all_tensors_as_inputs_all_inputs_as_ }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -25039,7 +25039,7 @@ const TestModel& get_test_model_n_5_float16_all_outputs_as_internal() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -25288,7 +25288,7 @@ const TestModel& get_test_model_n_5_quant8() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -25537,7 +25537,7 @@ const TestModel& get_test_model_n_5_quant8_all_tensors_as_inputs() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -25820,7 +25820,7 @@ const TestModel& get_test_model_n_5_quant8_all_tensors_as_inputs_all_inputs_as_i }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -26103,7 +26103,7 @@ const TestModel& get_test_model_n_5_quant8_all_outputs_as_internal() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -26352,7 +26352,7 @@ const TestModel& get_test_model_n_5_quant8_signed() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -26601,7 +26601,7 @@ const TestModel& get_test_model_n_5_quant8_signed_all_tensors_as_inputs() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -26884,7 +26884,7 @@ const TestModel& get_test_model_n_5_quant8_signed_all_tensors_as_inputs_all_inpu }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -27167,7 +27167,7 @@ const TestModel& get_test_model_n_5_quant8_signed_all_outputs_as_internal() { }, { // zero_bias4 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_COPY, .numberOfConsumers = 1, @@ -27426,7 +27426,7 @@ const TestModel& get_test_model_n_1_unused_output_2() { }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -27685,7 +27685,7 @@ const TestModel& get_test_model_n_1_unused_output_all_tensors_as_inputs_2() { }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -27978,7 +27978,7 @@ const TestModel& get_test_model_n_1_unused_output_all_tensors_as_inputs_all_inpu }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -28271,7 +28271,7 @@ const TestModel& get_test_model_n_1_unused_output_all_outputs_as_internal_2() { }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -28530,7 +28530,7 @@ const TestModel& get_test_model_n_1_unused_output_relaxed_2() { }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -28789,7 +28789,7 @@ const TestModel& get_test_model_n_1_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -29082,7 +29082,7 @@ const TestModel& get_test_model_n_1_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -29375,7 +29375,7 @@ const TestModel& get_test_model_n_1_unused_output_relaxed_all_outputs_as_interna }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -29634,7 +29634,7 @@ const TestModel& get_test_model_n_1_unused_output_float16_2() { }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -29893,7 +29893,7 @@ const TestModel& get_test_model_n_1_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -30186,7 +30186,7 @@ const TestModel& get_test_model_n_1_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -30479,7 +30479,7 @@ const TestModel& get_test_model_n_1_unused_output_float16_all_outputs_as_interna }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -30738,7 +30738,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_2() { }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -30997,7 +30997,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_all_tensors_as_inputs_2 }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -31290,7 +31290,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_all_tensors_as_inputs_a }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -31583,7 +31583,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_all_outputs_as_internal }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -31842,7 +31842,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_signed_2() { }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -32101,7 +32101,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -32394,7 +32394,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -32687,7 +32687,7 @@ const TestModel& get_test_model_n_1_unused_output_quant8_signed_all_outputs_as_i }, { // zero_bias5 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -32946,7 +32946,7 @@ const TestModel& get_test_model_n_2_unused_output_2() { }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -33205,7 +33205,7 @@ const TestModel& get_test_model_n_2_unused_output_all_tensors_as_inputs_2() { }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -33498,7 +33498,7 @@ const TestModel& get_test_model_n_2_unused_output_all_tensors_as_inputs_all_inpu }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -33791,7 +33791,7 @@ const TestModel& get_test_model_n_2_unused_output_all_outputs_as_internal_2() { }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -34050,7 +34050,7 @@ const TestModel& get_test_model_n_2_unused_output_relaxed_2() { }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -34309,7 +34309,7 @@ const TestModel& get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -34602,7 +34602,7 @@ const TestModel& get_test_model_n_2_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -34895,7 +34895,7 @@ const TestModel& get_test_model_n_2_unused_output_relaxed_all_outputs_as_interna }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -35154,7 +35154,7 @@ const TestModel& get_test_model_n_2_unused_output_float16_2() { }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -35413,7 +35413,7 @@ const TestModel& get_test_model_n_2_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -35706,7 +35706,7 @@ const TestModel& get_test_model_n_2_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -35999,7 +35999,7 @@ const TestModel& get_test_model_n_2_unused_output_float16_all_outputs_as_interna }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -36258,7 +36258,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_2() { }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -36517,7 +36517,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_2 }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -36810,7 +36810,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_all_tensors_as_inputs_a }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -37103,7 +37103,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_all_outputs_as_internal }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -37362,7 +37362,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_signed_2() { }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -37621,7 +37621,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -37914,7 +37914,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -38207,7 +38207,7 @@ const TestModel& get_test_model_n_2_unused_output_quant8_signed_all_outputs_as_i }, { // zero_bias6 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -38466,7 +38466,7 @@ const TestModel& get_test_model_n_3_unused_output_2() { }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -38725,7 +38725,7 @@ const TestModel& get_test_model_n_3_unused_output_all_tensors_as_inputs_2() { }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -39018,7 +39018,7 @@ const TestModel& get_test_model_n_3_unused_output_all_tensors_as_inputs_all_inpu }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -39311,7 +39311,7 @@ const TestModel& get_test_model_n_3_unused_output_all_outputs_as_internal_2() { }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -39570,7 +39570,7 @@ const TestModel& get_test_model_n_3_unused_output_relaxed_2() { }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -39829,7 +39829,7 @@ const TestModel& get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -40122,7 +40122,7 @@ const TestModel& get_test_model_n_3_unused_output_relaxed_all_tensors_as_inputs_ }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -40415,7 +40415,7 @@ const TestModel& get_test_model_n_3_unused_output_relaxed_all_outputs_as_interna }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -40674,7 +40674,7 @@ const TestModel& get_test_model_n_3_unused_output_float16_2() { }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -40933,7 +40933,7 @@ const TestModel& get_test_model_n_3_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -41226,7 +41226,7 @@ const TestModel& get_test_model_n_3_unused_output_float16_all_tensors_as_inputs_ }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -41519,7 +41519,7 @@ const TestModel& get_test_model_n_3_unused_output_float16_all_outputs_as_interna }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -41778,7 +41778,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_2() { }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -42037,7 +42037,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_2 }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -42330,7 +42330,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_all_tensors_as_inputs_a }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -42623,7 +42623,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_all_outputs_as_internal }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -42882,7 +42882,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_signed_2() { }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -43141,7 +43141,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -43434,7 +43434,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_tensors_as_i }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -43727,7 +43727,7 @@ const TestModel& get_test_model_n_3_unused_output_quant8_signed_all_outputs_as_i }, { // zero_bias7 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -43976,7 +43976,7 @@ const TestModel& get_test_model_n_4_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -44225,7 +44225,7 @@ const TestModel& get_test_model_n_4_all_tensors_as_inputs_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -44508,7 +44508,7 @@ const TestModel& get_test_model_n_4_all_tensors_as_inputs_all_inputs_as_internal }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -44791,7 +44791,7 @@ const TestModel& get_test_model_n_4_all_outputs_as_internal_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -45040,7 +45040,7 @@ const TestModel& get_test_model_n_4_relaxed_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -45289,7 +45289,7 @@ const TestModel& get_test_model_n_4_relaxed_all_tensors_as_inputs_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -45572,7 +45572,7 @@ const TestModel& get_test_model_n_4_relaxed_all_tensors_as_inputs_all_inputs_as_ }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -45855,7 +45855,7 @@ const TestModel& get_test_model_n_4_relaxed_all_outputs_as_internal_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -46104,7 +46104,7 @@ const TestModel& get_test_model_n_4_float16_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -46353,7 +46353,7 @@ const TestModel& get_test_model_n_4_float16_all_tensors_as_inputs_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -46636,7 +46636,7 @@ const TestModel& get_test_model_n_4_float16_all_tensors_as_inputs_all_inputs_as_ }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -46919,7 +46919,7 @@ const TestModel& get_test_model_n_4_float16_all_outputs_as_internal_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -47168,7 +47168,7 @@ const TestModel& get_test_model_n_4_quant8_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -47417,7 +47417,7 @@ const TestModel& get_test_model_n_4_quant8_all_tensors_as_inputs_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -47700,7 +47700,7 @@ const TestModel& get_test_model_n_4_quant8_all_tensors_as_inputs_all_inputs_as_i }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -47983,7 +47983,7 @@ const TestModel& get_test_model_n_4_quant8_all_outputs_as_internal_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -48232,7 +48232,7 @@ const TestModel& get_test_model_n_4_quant8_signed_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -48481,7 +48481,7 @@ const TestModel& get_test_model_n_4_quant8_signed_all_tensors_as_inputs_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -48764,7 +48764,7 @@ const TestModel& get_test_model_n_4_quant8_signed_all_tensors_as_inputs_all_inpu }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -49047,7 +49047,7 @@ const TestModel& get_test_model_n_4_quant8_signed_all_outputs_as_internal_2() { }, { // zero_bias8 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -49296,7 +49296,7 @@ const TestModel& get_test_model_n_5_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -49545,7 +49545,7 @@ const TestModel& get_test_model_n_5_all_tensors_as_inputs_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -49828,7 +49828,7 @@ const TestModel& get_test_model_n_5_all_tensors_as_inputs_all_inputs_as_internal }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -50111,7 +50111,7 @@ const TestModel& get_test_model_n_5_all_outputs_as_internal_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -50360,7 +50360,7 @@ const TestModel& get_test_model_n_5_relaxed_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -50609,7 +50609,7 @@ const TestModel& get_test_model_n_5_relaxed_all_tensors_as_inputs_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -50892,7 +50892,7 @@ const TestModel& get_test_model_n_5_relaxed_all_tensors_as_inputs_all_inputs_as_ }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -51175,7 +51175,7 @@ const TestModel& get_test_model_n_5_relaxed_all_outputs_as_internal_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<float>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -51424,7 +51424,7 @@ const TestModel& get_test_model_n_5_float16_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -51673,7 +51673,7 @@ const TestModel& get_test_model_n_5_float16_all_tensors_as_inputs_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -51956,7 +51956,7 @@ const TestModel& get_test_model_n_5_float16_all_tensors_as_inputs_all_inputs_as_ }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -52239,7 +52239,7 @@ const TestModel& get_test_model_n_5_float16_all_outputs_as_internal_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<_Float16>({0.0f, 0.0f}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -52488,7 +52488,7 @@ const TestModel& get_test_model_n_5_quant8_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -52737,7 +52737,7 @@ const TestModel& get_test_model_n_5_quant8_all_tensors_as_inputs_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -53020,7 +53020,7 @@ const TestModel& get_test_model_n_5_quant8_all_tensors_as_inputs_all_inputs_as_i }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -53303,7 +53303,7 @@ const TestModel& get_test_model_n_5_quant8_all_outputs_as_internal_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -53552,7 +53552,7 @@ const TestModel& get_test_model_n_5_quant8_signed_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -53801,7 +53801,7 @@ const TestModel& get_test_model_n_5_quant8_signed_all_tensors_as_inputs_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -54084,7 +54084,7 @@ const TestModel& get_test_model_n_5_quant8_signed_all_tensors_as_inputs_all_inpu }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, @@ -54367,7 +54367,7 @@ const TestModel& get_test_model_n_5_quant8_signed_all_outputs_as_internal_2() { }, { // zero_bias9 .channelQuant = {}, .data = TestBuffer::createFromVector<int32_t>({0, 0}), - .dimensions = {2, 1}, + .dimensions = {2}, .isIgnored = false, .lifetime = TestOperandLifeTime::CONSTANT_REFERENCE, .numberOfConsumers = 1, diff --git a/nn/runtime/test/specs/V1_3/while_fib.mod.py b/nn/runtime/test/specs/V1_3/while_fib.mod.py index d26488fcb..ffd696a9f 100644 --- a/nn/runtime/test/specs/V1_3/while_fib.mod.py +++ b/nn/runtime/test/specs/V1_3/while_fib.mod.py @@ -55,7 +55,7 @@ def MakeBodyModel(): fib_out = Output("fib_out", FibType) i_out = Output("i_out", CounterType) matrix = Parameter("matrix", ["TENSOR_FLOAT32", [2, 2]], [0, 1, 1, 1]) - zero_bias = Parameter("zero_bias", ["TENSOR_FLOAT32", [2, 1]], [0, 0]) + zero_bias = Parameter("zero_bias", ["TENSOR_FLOAT32", [2]], [0, 0]) model = Model() model.IdentifyInputs(fib, i, n) model.IdentifyOutputs(fib_out, i_out) |