Skip to content

Commit 25d36ab

Browse files
committed
remove newlines
1 parent 587436f commit 25d36ab

File tree

3 files changed

+0
-20
lines changed

3 files changed

+0
-20
lines changed

docs/execution-providers/plugin-ep-libraries/index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ nav_order: 17
66
---
77

88
# Plugin Execution Provider Libraries
9-
109
An ONNX Runtime Execution Provider (EP) executes model operations on one or more hardware accelerators (e.g., GPU, NPU, etc.). ONNX Runtime provides a variety of built-in EPs, such as the default CPU EP. To enable further extensibility, ONNX Runtime supports user-defined plugin EP libraries that an application can register with ONNX Runtime for use in an ONNX Runtime inference session.
1110

1211
This section provides a reference for plugin EP libraries.

docs/execution-providers/plugin-ep-libraries/packaging.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@ nav_order: 3
77
---
88

99
# Plugin Execution Provider Library Packaging Guidance
10-
1110
{: .no_toc }
1211

1312
This page provides guidance for ONNX Runtime plugin EP implementers to consider with regards to packaging for a plugin EP.
1413

1514
## Contents
16-
1715
{: .no_toc }
1816

1917
* TOC placeholder
@@ -22,17 +20,14 @@ This page provides guidance for ONNX Runtime plugin EP implementers to consider
2220
## General Guidance
2321

2422
### Usage
25-
2623
Note: Generally, when referring to the ORT API, we will refer to the C API functions. Equivalents should exist for other language bindings that support plugin EP usage.
2724

2825
#### Manual EP Library Registration
29-
3026
Users are expected to call [`OrtApi::RegisterExecutionProviderLibrary()`](https://onnxruntime.ai/docs/api/c/struct_ort_api.html#a7c8ea74a2ee54d03052f3d7cd1e1335d) to register the plugin EP library. Then, they may either choose to use the auto EP selection mechanism or manually call [`OrtApi::SessionOptionsAppendExecutionProvider_V2()`](https://onnxruntime.ai/docs/api/c/struct_ort_api.html#a285a5da8c9a63eff55dc48e4cf3b56f6) to explicitly use the plugin EP.
3127

3228
### Structure
3329

3430
#### Contents
35-
3631
A plugin EP package should contain the plugin EP shared library file and any other files that need to be distributed with it.
3732

3833
A plugin EP package should NOT contain the ORT shared library or other core ORT libraries (e.g., onnxruntime.dll or libonnxruntime.so). Users should obtain the ORT library separately, most likely via installing the separate ONNX Runtime package.
@@ -42,7 +37,6 @@ A plugin EP package should have no need to depend on the separate ONNX Runtime p
4237
#### Additional Information to Provide
4338

4439
##### Library Path
45-
4640
There should be a way to get the package's plugin EP library path. The user will need the plugin EP library path to call `OrtApi::RegisterExecutionProviderLibrary()`.
4741

4842
For example, the package may provide a helper function that returns the path to the plugin EP library. The recommended name for this helper function is "get library path".
@@ -53,7 +47,6 @@ There should be a way to get the plugin EP name(s) provided by the package. The
5347
For example, the plugin EP name(s) may be well-documented or made available with a helper function provided by the package. The recommended name for a helper function returning all EP names is "get EP names". Additionally, if there is only one EP name, a helper function returning the single value named "get EP name" may be provided for convenience.
5448

5549
#### Package Naming
56-
5750
The name of the package should indicate that the package contains a plugin EP and be distinguishable from other ORT packages.
5851

5952
For example, this may be done by using a special prefix or suffix.
@@ -63,23 +56,20 @@ For example, this may be done by using a special prefix or suffix.
6356
### PyPI
6457

6558
#### Package Naming
66-
6759
The prefix "onnxruntime-ep" can be used to identify a plugin EP.
6860

6961
The suggested package naming convention is "onnxruntime-ep-\<EP identifier\>".
7062

7163
For example, "onnxruntime-ep-contoso-ai".
7264

7365
#### Helper Functions
74-
7566
The package should provide helper function `get_library_path()` to get the EP library path.
7667

7768
The package should provide helper function `get_ep_names()` to get the EP name(s).
7869

7970
The package may provide helper function `get_ep_name()` to get the single EP name if there is just one.
8071

8172
#### Usage example
82-
8373
```python
8474
import onnxruntime as ort
8575
import onnxruntime_ep_contoso_ai as contoso_ep
@@ -133,15 +123,13 @@ ort.unregister_execution_provider_library(ep_registration_name)
133123
### NuGet
134124

135125
#### Package Naming
136-
137126
NuGet packages may use a reserved ID prefix.
138127

139128
The suggested package naming convention is "\<Vendor prefix\>.ML.OnnxRuntime.\<EP identifier\>.EP".
140129

141130
For example, "Contoso.ML.OnnxRuntime.ContosoAI.EP".
142131

143132
#### Helper Functions
144-
145133
The package should provide helper function `GetLibraryPath()` to get the EP library path.
146134

147135
The package should provide helper function `GetEpNames()` to get the EP name(s).

docs/execution-providers/plugin-ep-libraries/testing.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,27 @@ nav_order: 2
77
---
88

99
# Plugin Execution Provider Library Testing Guidance
10-
1110
{: .no_toc }
1211

1312
A plugin EP is responsible for ensuring that its implementation behaves correctly. This includes interacting with ONNX Runtime in the expected way as documented by the plugin EP API. It also includes the operator-level behavior as specified by the operator specification, e.g., from the ONNX standard.
1413

1514
## Contents
16-
1715
{: .no_toc }
1816

1917
* TOC placeholder
2018
{:toc}
2119

2220
## EP unit testing
23-
2421
Plugin EP implementations are expected to have their own unit tests.
2522

2623
### Operator-level testing utility provided by ONNX Runtime
27-
2824
ONNX Runtime has existing unit tests that validate an EP's op implementation. These tests are located in the unit test program `onnxruntime_provider_test`. This program supports usage with a dynamically specified plugin EP.
2925

3026
In particular, unit tests utilizing the `onnxruntime::test::OpTester` or `onnxruntime::test::ModelTester` classes can also be run with a plugin EP.
3127

3228
Plugin EP implementers may use this test program to help test their plugin EP if desired. The rest of this section explains how to do this.
3329

3430
#### Building
35-
3631
Build the onnxruntime shared library and the `onnxruntime_provider_test` target from source.
3732
```
3833
cd <onnxruntime repo>
@@ -43,7 +38,6 @@ cd <onnxruntime repo>
4338
The onnxruntime shared library and `onnxruntime_provider_test` will be available in the binary output directory.
4439

4540
#### Running
46-
4741
`onnxruntime_provider_test` supports the standard GoogleTest arguments. E.g., `--gtest_filter` can be used to run particular tests of interest.
4842

4943
Importantly, it supports configuration of a dynamically specified plugin EP through the environment variable `ORT_UNIT_TEST_MAIN_DYNAMIC_PLUGIN_EP_CONFIG_JSON`. The configuration value should be specified as a JSON string.
@@ -67,7 +61,6 @@ As an alternative to `selected_ep_name`, `selected_ep_device_indices` may be set
6761
Optionally, `default_ep_options` may be set to specify EP-specific options as string key value pairs.
6862

6963
## EP integration testing and model testing
70-
7164
There are a number of APIs that a plugin EP will implement to interact with ONNX Runtime. Although conformance tests at the EP API level were considered, they were not deemed to be that useful yet. Currently, it is expected that the integration with ONNX Runtime can be meaningfully tested using high level tests that run an entire model.
7265

7366
Plugin EPs may vary significantly from one to another in terms of capability, whether it is optional feature support or operator support. Therefore, it is expected that plugin EPs will have a set of models that are most relevant to them and that these models can be used for testing.

0 commit comments

Comments
 (0)