[QNN EP] fixed input for InstanceNormU8 unit test and update copy lib paths (#17806)

-update InstanceNormU8 with fixed input. With this input, it fails
consistently using QNN 2.15.1
-update QNN lib paths (target is deprecated) and additionally copy V73
skel file
This commit is contained in:
George Wu 2023-10-05 22:17:15 -07:00 committed by GitHub
parent be7541ef4a
commit b306b02a86
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 6 deletions

View file

@ -975,9 +975,9 @@ if (NOT onnxruntime_ENABLE_TRAINING_TORCH_INTEROP)
endif()
if (MSVC OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
file(GLOB QNN_LIB_FILES LIST_DIRECTORIES false "${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/*.so" "${onnxruntime_QNN_HOME}/target/${QNN_ARCH_ABI}/lib/*.so" "${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/*.dll" "${onnxruntime_QNN_HOME}/target/${QNN_ARCH_ABI}/lib/*.dll")
file(GLOB QNN_LIB_FILES LIST_DIRECTORIES false "${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/*.so" "${onnxruntime_QNN_HOME}/lib/${QNN_ARCH_ABI}/*.dll")
if (${QNN_ARCH_ABI} STREQUAL "aarch64-windows-msvc")
file(GLOB EXTRA_HTP_LIB LIST_DIRECTORIES false "${onnxruntime_QNN_HOME}/lib/hexagon-v68/unsigned/libQnnHtpV68Skel.so" "${onnxruntime_QNN_HOME}/target/hexagon-v68/lib/unsigned/libQnnHtpV68Skel.so")
file(GLOB EXTRA_HTP_LIB LIST_DIRECTORIES false "${onnxruntime_QNN_HOME}/lib/hexagon-v68/unsigned/libQnnHtpV68Skel.so" "${onnxruntime_QNN_HOME}/lib/hexagon-v73/unsigned/libQnnHtpV73Skel.so")
list(APPEND QNN_LIB_FILES ${EXTRA_HTP_LIB})
endif()
message(STATUS "QNN lib files: " ${QNN_LIB_FILES})

View file

@ -85,9 +85,14 @@ static void RunInstanceNormQDQTest(const TestInputDef<float>& input_def,
// Check that QNN compiles DQ -> InstanceNormalization -> Q as a single unit.
// Use an input of rank 4.
TEST_F(QnnHTPBackendTests, InstanceNormU8) {
RunInstanceNormQDQTest(TestInputDef<float>({1, 2, 3, 3}, false, -10.0f, 10.0f),
TestInputDef<float>({2}, true, -2.0f, 2.0f),
TestInputDef<float>({2}, true, -3.0f, 3.0f),
// fails with QNN 2.15.1 with the following fixed input.
std::vector<float> input_data = {3.21289f, -5.9981f, -1.72799f, 6.27263f, 3.36205f, -1.93515f, -5.40113f, 3.75648f, 6.15357f,
-5.25769f, 2.73637f, -0.901382f, -6.55612f, 1.99497f, -4.79228f, 2.69813f, 8.3064f, 0.0362501f};
std::vector<float> scale_data = {-0.148738f, -1.45158f};
std::vector<float> bias_data = {-2.2785083772f, 2.3338717017f};
RunInstanceNormQDQTest(TestInputDef<float>({1, 2, 3, 3}, false, input_data).OverrideValueRange(-10.0f, 10.0f),
TestInputDef<float>({2}, true, scale_data).OverrideValueRange(-2.0f, 2.0f),
TestInputDef<float>({2}, true, bias_data).OverrideValueRange(-3.0f, 3.0f),
{},
ExpectedEPNodeAssignment::All);
}
@ -116,4 +121,4 @@ TEST_F(QnnHTPBackendTests, InstanceNormU8Rank5) {
} // namespace test
} // namespace onnxruntime
#endif
#endif