Skip to content

Commit ed22ca6

Browse files
committed
More link fixes
1 parent 896cd8b commit ed22ca6

16 files changed

+31
-28
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ executorch
3434
│ ├── <a href="backends/qualcomm">qualcomm</a> - Qualcomm-specific backends. See <a href="docs/source/backends-qualcomm.md">doc</a>.
3535
│ ├── <a href="backends/transforms">transforms</a> - Transformations for backend optimization.
3636
│ ├── <a href="backends/vulkan">vulkan</a> - Vulkan backend for cross-platform GPU support. See <a href="docs/source/backends-vulkan.md">doc</a>.
37-
│ └── <a href="backends/xnnpack">xnnpack</a> - XNNPACK backend for optimized neural network operations. See <a href="docs/source/backends-xnnpack.md">doc</a>.
37+
│ └── <a href="backends/xnnpack">xnnpack</a> - XNNPACK backend for optimized neural network operations. See <a href="docs/source/backends/xnnpack/xnnpack-overview.md">doc</a>.
3838
├── <a href="codegen">codegen</a> - Tooling to autogenerate bindings between kernels and the runtime.
3939
├── <a href="configurations">configurations</a> - Configuration files.
4040
├── <a href="devtools">devtools</a> - Model profiling, debugging, and inspection. Please refer to the <a href="docs/source/devtools-overview.md">tools documentation</a> for more information.

README-wheel.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ The `executorch` pip package is in beta.
1111
The prebuilt `executorch.runtime` module included in this package provides a way
1212
to run ExecuTorch `.pte` files, with some restrictions:
1313
* Only [core ATen operators](docs/source/ir-ops-set-definition.md) are linked into the prebuilt module
14-
* Only the [XNNPACK backend delegate](docs/source/backends-xnnpack.md) is linked into the prebuilt module.
14+
* Only the [XNNPACK backend delegate](docs/source/backends/xnnpack/xnnpack-overview.md) is linked into the prebuilt module.
1515
* \[macOS only] [Core ML](docs/source/backends/coreml/coreml-overview.md) and [MPS](docs/source/backends/mps/mps-overview.md) backend
1616
are also linked into the prebuilt module.
1717

docs/source/android-xnnpack.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
```{include} /backends/xnnpack/backends-xnnpack.md
1+
```{include} backends/xnnpack/xnnpack-overview.md

docs/source/backends/template/backend-overview.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,4 @@ backend-op-support
5151
backend-arch-internals
5252
tutorials/backend-tutorials
5353
guides/backend-guides
54+
```

docs/source/backends/xnnpack/xnnpack-arch-internals.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This is a high-level overview of the ExecuTorch XNNPACK backend delegate. This h
66
XNNPACK is a library of highly-optimized neural network operators for ARM, x86, and WebAssembly architectures in Android, iOS, Windows, Linux, and macOS environments. It is an open source project, you can find more information about it on [github](https://github.com/google/XNNPACK).
77

88
## What are ExecuTorch delegates?
9-
A delegate is an entry point for backends to process and execute parts of the ExecuTorch program. Delegated portions of ExecuTorch models hand off execution to backends. The XNNPACK backend delegate is one of many available in ExecuTorch. It leverages the XNNPACK third-party library to accelerate ExecuTorch programs efficiently across a variety of CPUs. More detailed information on the delegates and developing your own delegates is available [here](compiler-delegate-and-partitioner.md). It is recommended that you get familiar with that content before continuing on to the Architecture section.
9+
A delegate is an entry point for backends to process and execute parts of the ExecuTorch program. Delegated portions of ExecuTorch models hand off execution to backends. The XNNPACK backend delegate is one of many available in ExecuTorch. It leverages the XNNPACK third-party library to accelerate ExecuTorch programs efficiently across a variety of CPUs. More detailed information on the delegates and developing your own delegates is available [here](/compiler-delegate-and-partitioner.md). It is recommended that you get familiar with that content before continuing on to the Architecture section.
1010

1111
## Architecture
1212
![High Level XNNPACK delegate Architecture](/backends/xnnpack/xnnpack-delegate-architecture.png) <!-- @lint-ignore linter doesn't like this link for some reason -->
@@ -17,7 +17,7 @@ In the ExecuTorch export flow, lowering to the XNNPACK delegate happens at the `
1717
![ExecuTorch XNNPACK delegate Export Flow](/backends/xnnpack/xnnpack-et-flow-diagram.png) <!-- @lint-ignore linter doesn't like this link for some reason -->
1818

1919
#### Partitioner
20-
The partitioner is implemented by backend delegates to mark nodes suitable for lowering. The `XnnpackPartitioner` lowers using node targets and module metadata. Some more references for partitioners can be found [here](compiler-delegate-and-partitioner.md)
20+
The partitioner is implemented by backend delegates to mark nodes suitable for lowering. The `XnnpackPartitioner` lowers using node targets and module metadata. Some more references for partitioners can be found [here](/compiler-delegate-and-partitioner.md)
2121

2222
##### Module-based partitioning
2323

@@ -54,7 +54,7 @@ After partitioning the lowerable subgraphs from the model, The XNNPACK delegate
5454
The XNNPACK delegate uses flatbuffer for serialization. In order to improve runtime performance, the XNNPACK delegate’s flatbuffer [schema](https://github.com/pytorch/executorch/blob/main/backends/xnnpack/serialization/schema.fbs) mirrors the XNNPACK Library’s graph level API calls. The serialized data are arguments to XNNPACK’s APIs, so that at runtime, the XNNPACK execution graph can efficiently be created with successive calls to XNNPACK’s APIs.
5555

5656
### Runtime
57-
The XNNPACK backend’s runtime interfaces with the ExecuTorch runtime through the custom `init` and `execute` function. Each delegated subgraph is contained in an individually serialized XNNPACK blob. When the model is initialized, ExecuTorch calls `init` on all XNNPACK Blobs to load the subgraph from serialized flatbuffer. After, when the model is executed, each subgraph is executed via the backend through the custom `execute` function. To read more about how delegate runtimes interface with ExecuTorch, refer to this [resource](compiler-delegate-and-partitioner.md).
57+
The XNNPACK backend’s runtime interfaces with the ExecuTorch runtime through the custom `init` and `execute` function. Each delegated subgraph is contained in an individually serialized XNNPACK blob. When the model is initialized, ExecuTorch calls `init` on all XNNPACK Blobs to load the subgraph from serialized flatbuffer. After, when the model is executed, each subgraph is executed via the backend through the custom `execute` function. To read more about how delegate runtimes interface with ExecuTorch, refer to this [resource](/compiler-delegate-and-partitioner.md).
5858

5959

6060
#### **XNNPACK Library**
@@ -70,7 +70,7 @@ Since weight packing creates an extra copy of the weights inside XNNPACK, We fre
7070
When executing the XNNPACK subgraphs, we prepare the tensor inputs and outputs and feed them to the XNNPACK runtime graph. After executing the runtime graph, the output pointers are filled with the computed tensors.
7171

7272
#### **Profiling**
73-
We have enabled basic profiling for the XNNPACK delegate that can be enabled with the compiler flag `-DEXECUTORCH_ENABLE_EVENT_TRACER` (add `-DENABLE_XNNPACK_PROFILING` for additional details). With ExecuTorch's Developer Tools integration, you can also now use the Developer Tools to profile the model. You can follow the steps in [Using the ExecuTorch Developer Tools to Profile a Model](tutorials/devtools-integration-tutorial) <!-- @lint-ignore --> on how to profile ExecuTorch models and use Developer Tools' Inspector API to view XNNPACK's internal profiling information. An example implementation is available in the `executor_runner` (see [tutorial here](tutorial-xnnpack-delegate-lowering.md#profiling)).
73+
We have enabled basic profiling for the XNNPACK delegate that can be enabled with the compiler flag `-DEXECUTORCH_ENABLE_EVENT_TRACER` (add `-DENABLE_XNNPACK_PROFILING` for additional details). With ExecuTorch's Developer Tools integration, you can also now use the Developer Tools to profile the model. You can follow the steps in [Using the ExecuTorch Developer Tools to Profile a Model](/tutorials/devtools-integration-tutorial) <!-- @lint-ignore --> on how to profile ExecuTorch models and use Developer Tools' Inspector API to view XNNPACK's internal profiling information. An example implementation is available in the `executor_runner` (see [tutorial here](/tutorial-xnnpack-delegate-lowering.md#profiling)).
7474

7575

7676
[comment]: <> (TODO: Refactor quantizer to a more official quantization doc)
@@ -142,5 +142,5 @@ def _qdq_quantized_linear(
142142
You can read more indepth explanations on PyTorch 2 quantization [here](https://pytorch.org/tutorials/prototype/pt2e_quant_ptq.html).
143143

144144
## See Also
145-
- [Integrating XNNPACK Delegate in Android AAR](using-executorch-android.md)
146-
- [Complete the Lowering to XNNPACK Tutorial](tutorial-xnnpack-delegate-lowering.md)
145+
- [Integrating XNNPACK Delegate in Android AAR](/using-executorch-android.md)
146+
- [Complete the Lowering to XNNPACK Tutorial](/tutorial-xnnpack-delegate-lowering.md)

docs/source/backends/xnnpack/xnnpack-overview.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,13 @@ No additional steps are necessary to use the backend beyond linking the target.
8080

8181
## Reference
8282

83-
**→{doc}`xnnpack-troubleshooting` — Debug common issues.**
83+
**→{doc}`/backends/xnnpack/xnnpack-troubleshooting` — Debug common issues.**
8484

85-
**→{doc}`xnnpack-partitioner` — Partitioner options and supported operators.**
85+
**→{doc}`/backends/xnnpack/xnnpack-partitioner` — Partitioner options and supported operators.**
8686

87-
**→{doc}`xnnpack-quantization` — Supported quantization schemes.**
87+
**→{doc}`/backends/xnnpack/xnnpack-quantization` — Supported quantization schemes.**
8888

89-
**→{doc}`xnnpack-arch-internals` — XNNPACK backend internals.**
89+
**→{doc}`/backends/xnnpack/xnnpack-arch-internals` — XNNPACK backend internals.**
9090

9191
```{toctree}
9292
:maxdepth: 2
@@ -97,3 +97,4 @@ xnnpack-partitioner
9797
xnnpack-quantization
9898
xnnpack-troubleshooting
9999
xnnpack-arch-internals
100+
```

docs/source/backends/xnnpack/xnnpack-troubleshooting.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ The XNNPACK backend is built by default for Python, Android, iOS, and in most CM
1010

1111
* Set the `EXECUTORCH_BUILD_XNNPACK=ON` CMake option option when building from source.
1212
* Either by passing the option during CMake configuration or setting it inside the user CMake logic before including ExecuTorch.
13-
* See [Building from Source](using-executorch-building-from-source).
13+
* See [Building from Source](/using-executorch-building-from-source).
1414
* On iOS, link the `backend_xnnpack` [framework](/using-executorch-ios).
1515
* If the backend is still not found, link with `WHOLE_ARCHIVE`.
1616
* Pass `"LINK_LIBRARY:WHOLE_ARCHIVE,xnnpack_backend>"` to `target_link_libraries` in CMake.
1717

1818
## Slow Performance
1919

20-
* Try reducing the thread count using [_unsafe_reset_threadpool](/using-executorch-faqs#inference-is-slow-performance-troubleshooting).
20+
* Try reducing the thread count using [_unsafe_reset_threadpool](/using-executorch-faqs.md#inference-is-slow-performance-troubleshooting).
2121
* Small models may benefit from using fewer threads than default.
2222
* Try values between 1 and 4 threads and measure performance on your model.
23-
* Use [op-level profiling](tutorials/devtools-integration-tutorial) to understand which operators are taking the most time. <!-- @lint-ignore linter doesn't like this link for some reason -->
23+
* Use [op-level profiling](/tutorials/devtools-integration-tutorial) to understand which operators are taking the most time. <!-- @lint-ignore linter doesn't like this link for some reason -->
2424
* The XNNPACK backend provides operator-level timing for delegated operators.
25-
* See general performance troubleshooting tips in [Performance Troubleshooting](/using-executorch-faqs#inference-is-slow-performance-troubleshooting).
25+
* See general performance troubleshooting tips in [Performance Troubleshooting](/using-executorch-faqs.md#inference-is-slow-performance-troubleshooting).

docs/source/desktop-xnnpack.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
```{include} backends-xnnpack.md
1+
```{include} backends/xnnpack/xnnpack-overview.md

docs/source/edge-platforms-section.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ After choosing your platform:
6565

6666
```{toctree}
6767
:hidden:
68-
:maxdepth: 2
68+
:maxdepth: 3
6969
:caption: Edge Platforms
7070
7171
android-section

docs/source/ios-xnnpack.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
```{include} backends-xnnpack.md
1+
```{include} backends/xnnpack/xnnpack-overview.md

0 commit comments

Comments
 (0)