Skip to content

[onnxruntime/build] Add CI testing for ORT build with generic interface - #23530

Merged
snnn merged 3 commits into
mainfrom
dev/kvadsariya/generic_interface_ci_test
Feb 20, 2025
Merged

[onnxruntime/build] Add CI testing for ORT build with generic interface#23530
snnn merged 3 commits into
mainfrom
dev/kvadsariya/generic_interface_ci_test

Conversation

@karim-vad

@karim-vad karim-vad commented Jan 29, 2025

Copy link
Copy Markdown
Contributor

[onnxruntime/build] Add CI testing for ORT build with generic interface

Summary:
- Remove unused cmake variables
- Add target specific logic when generic interface is used.
- Add QNN EP test case that use ORT generic interface build

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can commit the suggested changes from lintrunner.

Comment thread tools/ci_build/build.py Outdated
Comment thread tools/ci_build/build.py Fixed
@karim-vad
karim-vad force-pushed the dev/kvadsariya/generic_interface_ci_test branch 2 times, most recently from b6e951e to 64c3a26 Compare January 29, 2025 08:12

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can commit the suggested changes from lintrunner.

Comment thread tools/ci_build/build.py Outdated
@karim-vad
karim-vad force-pushed the dev/kvadsariya/generic_interface_ci_test branch from fbc3229 to d53cf44 Compare January 30, 2025 21:37
@karim-vad
karim-vad changed the base branch from main to win-ort-main January 31, 2025 21:10
@karim-vad
karim-vad requested review from a team as code owners January 31, 2025 21:10
@karim-vad
karim-vad changed the base branch from win-ort-main to main January 31, 2025 21:13
@adrianlizarraga

Copy link
Copy Markdown
Contributor

Hi @karim-vad, I'm not fully understanding what this PR is testing. Is it essentially running CI/tests with the combinations:

  • --enable_generic_interface --use_qnn
  • --enable_generic_interface --use_tensorrt
  • etc

@karim-vad

karim-vad commented Feb 11, 2025

Copy link
Copy Markdown
Contributor Author

Hi @karim-vad, I'm not fully understanding what this PR is testing. Is it essentially running CI/tests with the combinations:

  • --enable_generic_interface --use_qnn
  • --enable_generic_interface --use_tensorrt
  • etc

@adrianlizarraga this PR is forcing all the onnxruntime.dll builds with enable_generic_interface flags when the existing CI tests uses one of the primary EPs ( OpenVino, TensorRT, QNN) . The successful execution of the existing CI test validates the Generic interface for ORT is build correctly.

In addition to that, cmake system is incorrectly settings certain pre-processor macros when generic interface is enabled. so this PR fixes those as well.

The next steps is to figure out how we want to enable CI testing with generic interface flag of ORT ?

  1. Create new set of CI tests that validates ORT + EP combos ?
  2. Leverage existing CI tests to set the generic interface flag when OpenVino or TensorRT or QNN EP in use ?

@adrianlizarraga

Copy link
Copy Markdown
Contributor

In addition to that, cmake system is incorrectly settings certain pre-processor macros when generic interface is enabled. so this PR fixes those as well.

I see. If these cmake changes should be merged into main, they should probably be extracted and put into a separate PR. (since we are not on merging this experimental PR). This would allow us to get reviews from others who maintain build configs.

The next steps is to figure out how we want to enable CI testing with generic interface flag of ORT ?

  1. Create new set of CI tests that validates ORT + EP combos ?
  2. Leverage existing CI tests to set the generic interface flag when OpenVino or TensorRT or QNN EP in use ?

From this comment, @snnn indicated that testing all EP combos would not be acceptable due to doubling of resources. Perhaps we can limit this to QNN, TensorRT, OpenVINO. We can start with a PR that only enables this with QNN (as an example). We can use the yaml "strategy matrix" to run tests with --enable_generic_interface --use_qnn:

strategy:
matrix:
SHARED_LIB:
QnnLibKind: 'shared_lib'
STATIC_LIB:
QnnLibKind: 'static_lib'

  strategy:
    matrix:
      SHARED_LIB:
        QnnLibKind: 'shared_lib'
        qnn_build_args: '--use_qnn'
      STATIC_LIB:
        QnnLibKind: 'static_lib'
        qnn_build_args: '--use_qnn'
      SHARED_LIB_GENERIC_INTERFACE:
        QnnLibKind: 'shared_lib'
        qnn_build_args: '--use_qnn --use_generic_interface'

Maybe something like the above to get us going.

Summary:
- Remove unused cmake variables
- Add target specific logic when generic interface is used.
- Add QNN EP test case that use ORT generic interface build
@karim-vad
karim-vad force-pushed the dev/kvadsariya/generic_interface_ci_test branch from d53cf44 to ee5cf8b Compare February 13, 2025 21:58
@karim-vad karim-vad changed the title [DO_NOT_MERGE] For CI validation/Experiment with ORT generic interface [onnxruntime/build] Add CI testing for ORT build with generic interface Feb 13, 2025
@snnn

snnn commented Feb 20, 2025

Copy link
Copy Markdown
Contributor

/azp run Linux GPU CI Pipeline

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@snnn
snnn merged commit 0babb10 into main Feb 20, 2025
@snnn
snnn deleted the dev/kvadsariya/generic_interface_ci_test branch February 20, 2025 20:34
guschmue pushed a commit that referenced this pull request Mar 6, 2025
…ce (#23530)

[onnxruntime/build] Add CI testing for ORT build with generic interface

    Summary:
    - Remove unused cmake variables
    - Add target specific logic when generic interface is used.
    - Add QNN EP test case that use ORT generic interface build
ashrit-ms pushed a commit that referenced this pull request Mar 17, 2025
…ce (#23530)

[onnxruntime/build] Add CI testing for ORT build with generic interface

    Summary:
    - Remove unused cmake variables
    - Add target specific logic when generic interface is used.
    - Add QNN EP test case that use ORT generic interface build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants