Loading neuralnetworks/1.0/vts/functional/Android.bp +3 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ cc_library_static { static_libs: [ "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libhidlmemory", Loading @@ -49,8 +50,9 @@ cc_test { ], defaults: ["VtsHalTargetTestDefaults"], static_libs: [ "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libhidlmemory", Loading neuralnetworks/1.0/vts/functional/GeneratedTestHarness.cpp +52 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,58 @@ void Execute(const sp<V1_1::IDevice>& device, std::function<V1_1::Model(void)> c EvaluatePreparedModel(preparedModel, is_ignored, examples, fpAtol, fpRtol); } // TODO: Reduce code duplication. void Execute(const sp<V1_2::IDevice>& device, std::function<V1_2::Model(void)> create_model, std::function<bool(int)> is_ignored, const std::vector<MixedTypedExampleType>& examples) { V1_2::Model model = create_model(); // see if service can handle model bool fullySupportsModel = false; Return<void> supportedCall = device->getSupportedOperations_1_2( model, [&fullySupportsModel](ErrorStatus status, const hidl_vec<bool>& supported) { ASSERT_EQ(ErrorStatus::NONE, status); ASSERT_NE(0ul, supported.size()); fullySupportsModel = std::all_of(supported.begin(), supported.end(), [](bool valid) { return valid; }); }); ASSERT_TRUE(supportedCall.isOk()); // launch prepare model sp<PreparedModelCallback> preparedModelCallback = new PreparedModelCallback(); ASSERT_NE(nullptr, preparedModelCallback.get()); Return<ErrorStatus> prepareLaunchStatus = device->prepareModel_1_2( model, ExecutionPreference::FAST_SINGLE_ANSWER, preparedModelCallback); ASSERT_TRUE(prepareLaunchStatus.isOk()); ASSERT_EQ(ErrorStatus::NONE, static_cast<ErrorStatus>(prepareLaunchStatus)); // retrieve prepared model preparedModelCallback->wait(); ErrorStatus prepareReturnStatus = preparedModelCallback->getStatus(); sp<IPreparedModel> preparedModel = preparedModelCallback->getPreparedModel(); // early termination if vendor service cannot fully prepare model if (!fullySupportsModel && prepareReturnStatus != ErrorStatus::NONE) { ASSERT_EQ(nullptr, preparedModel.get()); LOG(INFO) << "NN VTS: Early termination of test because vendor service cannot " "prepare model that it does not support."; std::cout << "[ ] Early termination of test because vendor service cannot " "prepare model that it does not support." << std::endl; return; } EXPECT_EQ(ErrorStatus::NONE, prepareReturnStatus); ASSERT_NE(nullptr, preparedModel.get()); // TODO: Adjust the error limit based on testing. // If in relaxed mode, set the absolute tolerance to be 5ULP of FP16. float fpAtol = !model.relaxComputationFloat32toFloat16 ? 1e-5f : 5.0f * 0.0009765625f; // Set the relative tolerance to be 5ULP of the corresponding FP precision. float fpRtol = !model.relaxComputationFloat32toFloat16 ? 5.0f * 1.1920928955078125e-7f : 5.0f * 0.0009765625f; EvaluatePreparedModel(preparedModel, is_ignored, examples, fpAtol, fpRtol); } } // namespace generated_tests } // namespace neuralnetworks Loading neuralnetworks/1.1/vts/functional/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ cc_test { static_libs: [ "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libhidlmemory", Loading neuralnetworks/1.2/vts/OWNERS 0 → 100644 +14 −0 Original line number Diff line number Diff line # Neuralnetworks team butlermichael@google.com dgross@google.com jeanluc@google.com levp@google.com miaowang@google.com mikie@google.com mks@google.com pszczepaniak@google.com slavash@google.com # VTS team yim@google.com yuexima@google.com neuralnetworks/1.2/vts/functional/Android.bp 0 → 100644 +52 −0 Original line number Diff line number Diff line // // Copyright (C) 2018 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. // cc_test { name: "VtsHalNeuralnetworksV1_2TargetTest", srcs: [ "BasicTests.cpp", "GeneratedTests.cpp", "ValidateModel.cpp", "ValidateRequest.cpp", "ValidationTests.cpp", "VtsHalNeuralnetworks.cpp", ], defaults: ["VtsHalTargetTestDefaults"], static_libs: [ "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libhidlmemory", "libneuralnetworks_utils", "VtsHalNeuralnetworksTest_utils", ], header_libs: [ "libneuralnetworks_headers", "libneuralnetworks_generated_test_harness_headers", "libneuralnetworks_generated_tests", ], // Bug: http://b/74200014 - Disable arm32 asan since it triggers internal // error in ld.gold. arch: { arm: { sanitize: { never: true, }, }, }, } Loading
neuralnetworks/1.0/vts/functional/Android.bp +3 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ cc_library_static { static_libs: [ "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libhidlmemory", Loading @@ -49,8 +50,9 @@ cc_test { ], defaults: ["VtsHalTargetTestDefaults"], static_libs: [ "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libhidlmemory", Loading
neuralnetworks/1.0/vts/functional/GeneratedTestHarness.cpp +52 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,58 @@ void Execute(const sp<V1_1::IDevice>& device, std::function<V1_1::Model(void)> c EvaluatePreparedModel(preparedModel, is_ignored, examples, fpAtol, fpRtol); } // TODO: Reduce code duplication. void Execute(const sp<V1_2::IDevice>& device, std::function<V1_2::Model(void)> create_model, std::function<bool(int)> is_ignored, const std::vector<MixedTypedExampleType>& examples) { V1_2::Model model = create_model(); // see if service can handle model bool fullySupportsModel = false; Return<void> supportedCall = device->getSupportedOperations_1_2( model, [&fullySupportsModel](ErrorStatus status, const hidl_vec<bool>& supported) { ASSERT_EQ(ErrorStatus::NONE, status); ASSERT_NE(0ul, supported.size()); fullySupportsModel = std::all_of(supported.begin(), supported.end(), [](bool valid) { return valid; }); }); ASSERT_TRUE(supportedCall.isOk()); // launch prepare model sp<PreparedModelCallback> preparedModelCallback = new PreparedModelCallback(); ASSERT_NE(nullptr, preparedModelCallback.get()); Return<ErrorStatus> prepareLaunchStatus = device->prepareModel_1_2( model, ExecutionPreference::FAST_SINGLE_ANSWER, preparedModelCallback); ASSERT_TRUE(prepareLaunchStatus.isOk()); ASSERT_EQ(ErrorStatus::NONE, static_cast<ErrorStatus>(prepareLaunchStatus)); // retrieve prepared model preparedModelCallback->wait(); ErrorStatus prepareReturnStatus = preparedModelCallback->getStatus(); sp<IPreparedModel> preparedModel = preparedModelCallback->getPreparedModel(); // early termination if vendor service cannot fully prepare model if (!fullySupportsModel && prepareReturnStatus != ErrorStatus::NONE) { ASSERT_EQ(nullptr, preparedModel.get()); LOG(INFO) << "NN VTS: Early termination of test because vendor service cannot " "prepare model that it does not support."; std::cout << "[ ] Early termination of test because vendor service cannot " "prepare model that it does not support." << std::endl; return; } EXPECT_EQ(ErrorStatus::NONE, prepareReturnStatus); ASSERT_NE(nullptr, preparedModel.get()); // TODO: Adjust the error limit based on testing. // If in relaxed mode, set the absolute tolerance to be 5ULP of FP16. float fpAtol = !model.relaxComputationFloat32toFloat16 ? 1e-5f : 5.0f * 0.0009765625f; // Set the relative tolerance to be 5ULP of the corresponding FP precision. float fpRtol = !model.relaxComputationFloat32toFloat16 ? 5.0f * 1.1920928955078125e-7f : 5.0f * 0.0009765625f; EvaluatePreparedModel(preparedModel, is_ignored, examples, fpAtol, fpRtol); } } // namespace generated_tests } // namespace neuralnetworks Loading
neuralnetworks/1.1/vts/functional/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ cc_test { static_libs: [ "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libhidlmemory", Loading
neuralnetworks/1.2/vts/OWNERS 0 → 100644 +14 −0 Original line number Diff line number Diff line # Neuralnetworks team butlermichael@google.com dgross@google.com jeanluc@google.com levp@google.com miaowang@google.com mikie@google.com mks@google.com pszczepaniak@google.com slavash@google.com # VTS team yim@google.com yuexima@google.com
neuralnetworks/1.2/vts/functional/Android.bp 0 → 100644 +52 −0 Original line number Diff line number Diff line // // Copyright (C) 2018 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. // cc_test { name: "VtsHalNeuralnetworksV1_2TargetTest", srcs: [ "BasicTests.cpp", "GeneratedTests.cpp", "ValidateModel.cpp", "ValidateRequest.cpp", "ValidationTests.cpp", "VtsHalNeuralnetworks.cpp", ], defaults: ["VtsHalTargetTestDefaults"], static_libs: [ "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libhidlmemory", "libneuralnetworks_utils", "VtsHalNeuralnetworksTest_utils", ], header_libs: [ "libneuralnetworks_headers", "libneuralnetworks_generated_test_harness_headers", "libneuralnetworks_generated_tests", ], // Bug: http://b/74200014 - Disable arm32 asan since it triggers internal // error in ld.gold. arch: { arm: { sanitize: { never: true, }, }, }, }