Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ jobs:
run: |
set -e -x
BINARY_SIZE_THRESHOLD_ARGS=""
echo "Binary size threshold in bytes: 1436672"
BINARY_SIZE_THRESHOLD_ARGS="--threshold_size_in_bytes 1436672"
echo "Binary size threshold in bytes: 1722565"
BINARY_SIZE_THRESHOLD_ARGS="--threshold_size_in_bytes 1722565"

# Ensure ANDROID_NDK_HOME is available and get its real path
if [ -z "$ANDROID_NDK_HOME" ]; then
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/linux-wasm-ci-build-and-test-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ jobs:
path: ${{ github.workspace }}/artifacts/wasm

- name: Test (Node.js) (simd + threads)
# onnxruntime_test_all is currently only supported in Debug build because it requires exception, which is disabled in Release build.
# unit tests are currently only supported in Debug builds because they require exceptions, which are disabled in Release builds.
if: ${{ inputs.build_config == 'Debug' }}
run: |
python ./tools/ci_build/build.py \
Expand All @@ -130,14 +130,14 @@ jobs:
working-directory: ${{ github.workspace }}

- name: Test (browser) (simd + threads)
# onnxruntime_test_all is currently only supported in Debug build because it requires exception, which is disabled in Release build.
# unit tests are currently only supported in Debug builds because they require exceptions, which are disabled in Release builds.
if: ${{ inputs.build_config == 'Debug' }}
run: |
python ./tools/ci_build/build.py \
${{ env.common_build_args }} \
--build_dir ${{ github.workspace }}/build/wasm_inferencing \
--wasm_run_tests_in_browser \
--target onnxruntime_test_all \
--targets onnxruntime_test_all onnxruntime_provider_test \
--update --build --test
working-directory: ${{ github.workspace }}

Expand Down
82 changes: 82 additions & 0 deletions .github/workflows/windows_qnn_x64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Windows x64 QNN CI Pipeline

on:
push:
branches:
- main
- rel-*
pull_request:
branches:
- main
- rel-*
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.sha }}
cancel-in-progress: true

jobs:
build_test_qnn_ep:
name: Windows x64 QNN CI Pipeline (${{ matrix.QnnLibKind }})
runs-on: ["self-hosted", "1ES.Pool=onnxruntime-github-vs2022-mms"]
timeout-minutes: 120
strategy:
matrix:
QnnLibKind: [shared_lib, static_lib]
env:
AZCOPY_AUTO_LOGIN_TYPE: MSI
AZCOPY_MSI_CLIENT_ID: 63b63039-6328-442f-954b-5a64d124e5b4
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
ALLOW_RELEASED_ONNX_OPSET_ONLY: '1'

steps:
- name: Checkout repository
uses: actions/checkout@v5

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
architecture: x64

- name: Locate vcvarsall and Setup Env
uses: ./.github/actions/locate-vcvarsall-and-setup-env
with:
architecture: x64

- name: Download QNN SDK
working-directory: ${{ runner.temp }}
run: |
azcopy.exe cp --recursive https://lotusscus.blob.core.windows.net/models/qnnsdk/qnn-v2.38.0.250901 .
dir
shell: pwsh

- name: Set QNN_SDK_ROOT environment variable
shell: pwsh
run: |
$qnn_sdk_path = Join-Path $env:RUNNER_TEMP "qnn-v2.38.0.250901"
echo "QNN_SDK_ROOT=$qnn_sdk_path" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "QNN SDK Root: $qnn_sdk_path"
dir $qnn_sdk_path

- name: Build and Test
shell: cmd
run: |
python ${{ github.workspace }}\tools\ci_build\build.py --config RelWithDebInfo --build_dir ${{ runner.temp }}\build --cmake_generator "Visual Studio 17 2022" --build_java --build_shared_lib --use_qnn ${{ matrix.QnnLibKind }} --qnn_home %QNN_SDK_ROOT% --use_binskim_compliant_compile_flags --update --build --test --enable_onnx_tests --parallel

- name: Run ONNX Tests
shell: cmd
working-directory: ${{ runner.temp }}\build\RelWithDebInfo\RelWithDebInfo
run: |
.\onnx_test_runner -j 1 -e qnn -i "backend_path|%QNN_SDK_ROOT%\lib\x86_64-windows-msvc\QnnCpu.dll" ${{ github.workspace }}\cmake\external\onnx\onnx\backend\test\data\node

- name: Run float32 model tests
shell: cmd
working-directory: ${{ runner.temp }}\build\RelWithDebInfo\RelWithDebInfo
run: |
rem This step assumes the model data exists at C:\data\float32_models on the runner
if exist C:\data\float32_models (
.\onnx_test_runner -j 1 -e qnn -i "backend_path|%QNN_SDK_ROOT%\lib\x86_64-windows-msvc\QnnCpu.dll" C:\data\float32_models
) else (
echo "Skipping float32 model tests: C:\data\float32_models not found."
)
9 changes: 5 additions & 4 deletions .github/workflows/windows_webgpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,22 +127,23 @@ jobs:
}
Remove-Item "${{ github.workspace }}\RelWithDebInfo" -Include "*.obj" -Recurse

- name: Run tests (onnxruntime_test_all) with verbose logging
- name: Run tests (onnxruntime_test_all, onnxruntime_provider_test) with verbose logging
shell: pwsh
run: |
$env:ORT_UNIT_TEST_MAIN_LOG_LEVEL = "0"
.\onnxruntime_test_all.exe 2>.\onnxruntime_test_all_stderr.log
.\onnxruntime_test_all.exe 2> .\onnxruntime_test_stderr.log
.\onnxruntime_provider_test.exe 2>> .\onnxruntime_test_stderr.log
working-directory: ${{ github.workspace }}\RelWithDebInfo\RelWithDebInfo

- name: Check log file
shell: cmd
run: |
dir ${{ github.workspace }}\RelWithDebInfo\RelWithDebInfo\onnxruntime_test_all_stderr.log
dir ${{ github.workspace }}\RelWithDebInfo\RelWithDebInfo\onnxruntime_test_stderr.log

- name: Validate shader keys
uses: ./.github/actions/webgpu-validate-shader-key
with:
log_file_path: ${{ github.workspace }}\RelWithDebInfo\RelWithDebInfo\onnxruntime_test_all_stderr.log
log_file_path: ${{ github.workspace }}\RelWithDebInfo\RelWithDebInfo\onnxruntime_test_stderr.log

- name: Validate C# native delegates
run: python tools\ValidateNativeDelegateAttributes.py
Expand Down
4 changes: 4 additions & 0 deletions cmake/onnxruntime_mlas.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ function(setup_mlas_source_for_windows)
${MLAS_SRC_DIR}/eltwise_kernel_neon.cpp
${MLAS_SRC_DIR}/eltwise_kernel_neon_fp16.cpp
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon_int8_i8mm.cpp
${MLAS_SRC_DIR}/sconv_kernel_neon.cpp
${MLAS_SRC_DIR}/spool_kernel_neon.cpp
)

set(mlas_platform_preprocess_srcs
Expand Down Expand Up @@ -431,6 +433,8 @@ else()
${MLAS_SRC_DIR}/eltwise_kernel_neon.h
${MLAS_SRC_DIR}/eltwise_kernel_neon.cpp
${MLAS_SRC_DIR}/sqnbitgemm_kernel_neon_int8_i8mm.cpp
${MLAS_SRC_DIR}/sconv_kernel_neon.cpp
${MLAS_SRC_DIR}/spool_kernel_neon.cpp
)
if (onnxruntime_USE_KLEIDIAI)
setup_kleidiai()
Expand Down
5 changes: 4 additions & 1 deletion cmake/onnxruntime_test_pch.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_precompile_headers(onnxruntime_test_all PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/test_pch.h"
)
endif()
target_precompile_headers(onnxruntime_provider_test PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/test_pch.h"
)
endif()

# Exclude certain files that might conflict with PCH
set(PCH_EXCLUDE_FILES
Expand Down
Loading
Loading