diff --git a/.github/workflows/internal_ci.yml b/.github/workflows/internal_ci.yml new file mode 100644 index 0000000000000..c5a1c97aae0d7 --- /dev/null +++ b/.github/workflows/internal_ci.yml @@ -0,0 +1,34 @@ +name : Internal CI + +on: + pull_request: + branches: + - '**' # Triggers on a PR to any Branch + +jobs: + build: + + runs-on: [self-hosted, Linux, X64] # Runs on a Lunar lake + env: + BUILD_SOURCESDIRECTORY: ${{ github.workspace }} + BUILD_BINARIESDIRECTORY: ${{ github.workspace }}/build + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.ref }} # checkout the pr branch + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Create build directory + run: | + mkdir -p ${{ env.BUILD_BINARIESDIRECTORY }} + chmod -R 777 ${{ env.BUILD_BINARIESDIRECTORY }} + + - name: Running Internal CI # Trigger Internal CI on the pr branch + run: | + cd tools/ci_build/github/linux/ + dir + ./run_dockerbuild.sh -o ubuntu22.04 -p 3.10 -d openvino -v 2024.5.0 -x "--config Release --use_openvino CPU --build_wheel --build_shared_lib --parallel " diff --git a/onnxruntime/core/providers/openvino/ov_versions/data_ops.cc b/onnxruntime/core/providers/openvino/ov_versions/data_ops.cc index 2f0dd458cc349..fd71eebfe533a 100644 --- a/onnxruntime/core/providers/openvino/ov_versions/data_ops.cc +++ b/onnxruntime/core/providers/openvino/ov_versions/data_ops.cc @@ -95,8 +95,10 @@ std::vector supported_op_mode = { {"Atan", V_2020_4, {"CPU", "GPU"}}, {"Atanh", V_2020_4, {"CPU"}}, {"Atanh", V_2022_1, {"GPU"}}, + {"Attention", V_2023_0, {"CPU", "GPU"}}, {"AveragePool", V_2020_4, {"CPU", "GPU"}}, {"BatchNormalization", V_2020_4, {"CPU", "GPU"}}, + {"BiasGelu", V_2023_0, {"CPU", "GPU"}}, {"BitShift", V_2022_1, {"CPU"}}, {"Cast", V_2020_4, {"CPU", "GPU"}}, {"CastLike", V_2023_1, {"CPU", "GPU"}}, @@ -123,6 +125,7 @@ std::vector supported_op_mode = { {"Dropout", V_2020_4, {"CPU", "GPU"}}, {"Elu", V_2020_4, {"CPU", "GPU"}}, {"Einsum", V_2023_1, {"CPU", "GPU"}}, + {"EmbedLayerNormalization", V_2024_5, {"CPU", "GPU"}}, {"EPContext", V_2024_0, {"CPU", "GPU", "NPU"}}, {"Equal", V_2020_4, {"CPU", "GPU"}}, {"Erf", V_2020_4, {"CPU", "GPU"}}, @@ -131,6 +134,8 @@ std::vector supported_op_mode = { {"EyeLike", V_2022_1, {"CPU"}}, {"Flatten", V_2020_4, {"CPU", "GPU"}}, {"Floor", V_2020_4, {"CPU", "GPU"}}, + {"FusedConv", V_2023_0, {"CPU", "GPU"}}, + {"FusedGemm", V_2023_0, {"CPU", "GPU"}}, {"Gather", V_2020_4, {"CPU", "GPU"}}, {"GatherElements", V_2022_2, {"CPU", "GPU"}}, {"GatherND", V_2021_4, {"CPU", "GPU"}}, @@ -164,6 +169,7 @@ std::vector supported_op_mode = { {"LSTM", V_2020_4, {"CPU", "GPU"}}, {"MatMul", V_2020_4, {"CPU", "GPU"}}, {"MatMulInteger", V_2022_1, {"CPU"}}, + {"MatMulNBits", V_2024_5, {"CPU", "GPU"}}, {"Max", V_2020_4, {"CPU", "GPU"}}, {"MaxPool", V_2020_4, {"CPU", "GPU"}}, {"Mean", V_2020_4, {"CPU", "GPU"}}, @@ -222,6 +228,7 @@ std::vector supported_op_mode = { {"Sin", V_2022_1, {"CPU", "GPU"}}, {"Sinh", V_2020_4, {"CPU"}}, {"Size", V_2022_1, {"CPU", "GPU"}}, + {"SkipLayerNormalization", V_2024_5, {"CPU", "GPU"}}, {"Slice", V_2020_4, {"CPU", "GPU"}}, {"Softmax", V_2020_4, {"CPU", "GPU"}}, {"Softplus", V_2022_1, {"CPU", "GPU"}}, diff --git a/onnxruntime/core/providers/openvino/qdq_transformations/qdq_stripping.cc b/onnxruntime/core/providers/openvino/qdq_transformations/qdq_stripping.cc index 4d513c0533ff1..a9f6420d6ac3b 100644 --- a/onnxruntime/core/providers/openvino/qdq_transformations/qdq_stripping.cc +++ b/onnxruntime/core/providers/openvino/qdq_transformations/qdq_stripping.cc @@ -298,7 +298,7 @@ static bool CheckDQRuleSet(const NodeUnit& node_unit, const auto& op_type = node_unit.OpType(); // #1 Reverse DQ duplication - if (dq_node->Name().find(DuplicateDQ) != std::string::npos) { + if (dq_node->Name().find(DuplicateDQ) != std::string::npos && !src_graph.IsConstantInitializer(dq_node->InputDefs().at(0)->Name(), true)) { reason = SkipReason::DuplicateDQ; return false; } diff --git a/onnxruntime/test/contrib_ops/embed_layer_norm_op_test.cc b/onnxruntime/test/contrib_ops/embed_layer_norm_op_test.cc index 0f35a7ff4b36f..043717a9f6e92 100644 --- a/onnxruntime/test/contrib_ops/embed_layer_norm_op_test.cc +++ b/onnxruntime/test/contrib_ops/embed_layer_norm_op_test.cc @@ -158,7 +158,11 @@ static void RunTest(const embedlayernorm::OpData& data, execution_providers.push_back(DefaultDmlExecutionProvider()); tester.Run(OpTester::ExpectResult::kExpectSuccess, "", {}, nullptr, &execution_providers); } else { +#if defined(USE_OPENVINO) + tester.Run(OpTester::ExpectResult::kExpectSuccess, "", {kOpenVINOExecutionProvider}); +#else tester.Run(); +#endif } } } diff --git a/onnxruntime/test/contrib_ops/matmul_4bits_test.cc b/onnxruntime/test/contrib_ops/matmul_4bits_test.cc index 9bf08c6350833..b1779ded4a675 100644 --- a/onnxruntime/test/contrib_ops/matmul_4bits_test.cc +++ b/onnxruntime/test/contrib_ops/matmul_4bits_test.cc @@ -85,7 +85,7 @@ struct TestOptions { std::optional output_rel_error{}; }; -std::ostream& operator<<(std::ostream& os, const TestOptions& opts) { +[[maybe_unused]] std::ostream& operator<<(std::ostream& os, const TestOptions& opts) { return os << "M:" << opts.M << ", N:" << opts.N << ", K:" << opts.K << ", block_size:" << opts.block_size << ", accuracy_level:" << opts.accuracy_level @@ -327,6 +327,8 @@ void TestMatMulNBitsTyped() { #endif // !defined(USE_DML) && !defined(USE_WEBGPU) } +#if !defined(USE_OPENVINO) + TEST(MatMulNBits, Float32_Accuracy0) { TestMatMulNBitsTyped(); TestMatMulNBitsTyped(); @@ -462,6 +464,7 @@ TEST(MatMulNBits, Float16_Accuracy4) { } #endif #endif +#endif #if defined(USE_CUDA) || defined(USE_ROCM) || defined(USE_DML) || defined(USE_WEBGPU)