Skip to content

Conversation

@karim-vad
Copy link
Contributor

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

[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

Copy link
Contributor

@github-actions github-actions bot left a comment

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.

@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
Copy link
Contributor

@github-actions github-actions bot left a comment

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.

@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
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
Copy link
Contributor Author

karim-vad commented Feb 11, 2025

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
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
Copy link
Contributor

snnn commented Feb 20, 2025

/azp run Linux GPU CI Pipeline

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@snnn snnn merged commit 0babb10 into main Feb 20, 2025
97 of 99 checks passed
@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