Skip to content

Commit 037c3a2

Browse files
authored
docs(design): describe the autoware_cuda repository in the CUDA layer (#870)
* docs(design): describe the autoware_cuda repository in the CUDA layer The shared CUDA/TensorRT base packages moved from autoware_universe to autoware_cuda (autowarefoundation/autoware#7340). cuda_blackboard moved to core/cuda in autoware.repos. - core-package-inclusion-criteria.md: the CUDA layer section names the two repositories under src/core/cuda and the images that build them. Autoware 2.0.0 does not have this layer yet. autoware_tensorrt_plugins stays in Universe. - repository-structure.svg: show autoware_cuda and cuda_blackboard in a CUDA layer group under Core, and remove cuda_blackboard from Universe. - repository-structure.md: add autoware_cuda to the list, and say that the diagram shows the main branch. Signed-off-by: Mete Fatih Cırıt <mfc@autoware.org> * docs(design): name the core CUDA images and add negotiated to the CUDA layer The autoware PR that adds the core CUDA images is merged. The images are core-devel-cuda and core-cuda, not autoware-core-*-cuda. negotiated moved from universe/external to core/cuda in autoware.repos, because cuda_blackboard depends on it. So the CUDA layer has three repositories, and the Universe box of the diagram has 7 more external packages, not 8. Signed-off-by: Mete Fatih Cırıt <mfc@autoware.org> * docs(design): say which images hold the CUDA layer and name negotiated on both pages The universe stage runs colcon on all of src, so the CPU-only Universe images also run colcon on src/core/cuda. Without CUDA, its CUDA code does not build. So "only the CUDA images build this layer" was not exact. The pages now say that the core CUDA images hold the layer and that the CPU-only Core images leave it out. repository-structure.md now names negotiated in the autoware_cuda entry and in the note under the diagram, which does not show it. cuda_blackboard shares GPU data only between nodes in one process. Signed-off-by: Mete Fatih Cırıt <mfc@autoware.org> --------- Signed-off-by: Mete Fatih Cırıt <mfc@autoware.org>
1 parent 7192179 commit 037c3a2

3 files changed

Lines changed: 43 additions & 27 deletions

File tree

‎docs/design/autoware-concepts/core-package-inclusion-criteria.md‎

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,21 @@ Promotion is a deliberate port, not a copy:
6767

6868
## The CUDA layer
6969

70-
Core is planned to ship in two forms: the default CPU-only packages, and an optional GPU layer in the [`autoware_cuda`](https://github.com/autowarefoundation/autoware_cuda) repository, built into separate CUDA images.
70+
Core ships in two forms: the default CPU-only packages, and an optional GPU layer.
7171
A package that needs CUDA or TensorRT can still be Core, but only in this layer, so the default build never requires a GPU.
7272

73-
The shared CUDA/TensorRT base (`autoware_cuda_dependency_meta`, `autoware_cuda_utils`, and `autoware_tensorrt_common`) is the first candidate for this layer.
74-
It is Core-quality: it depends only on these packages, Core tooling, ROS, and one external CMake module, with nothing from Universe, and many downstream GPU packages build on it.
75-
`autoware_tensorrt_plugins` stays in Universe, because it still changes often and only a few packages use it.
73+
The CUDA layer has three repositories, all cloned under `src/core/cuda/`:
7674

77-
!!! info "Current state"
75+
- [`autoware_cuda`](https://github.com/autowarefoundation/autoware_cuda) holds the shared CUDA/TensorRT base: `autoware_cuda_dependency_meta`, `autoware_cuda_utils`, and `autoware_tensorrt_common`.
76+
- [`cuda_blackboard`](https://github.com/autowarefoundation/cuda_blackboard) lets nodes in one process share data on the GPU without a copy to the host.
77+
- [`negotiated`](https://github.com/osrf/negotiated) lets a publisher and its subscribers agree on the message type of a topic. `cuda_blackboard` depends on it.
7878

79-
The `autoware_cuda` repository holds the three base packages, but it has no release yet.
80-
The `autoware.repos` file of Autoware 2.0.0 does not include `autoware_cuda`, so Autoware 2.0.0 builds these packages from [Autoware Universe](https://github.com/autowarefoundation/autoware_universe).
81-
The issue [Extract the shared CUDA base packages into a new autoware_cuda repository](https://github.com/autowarefoundation/autoware/issues/7340) tracks the move.
79+
The core CUDA images, `core-devel-cuda` and `core-cuda`, hold this layer, built with CUDA.
80+
The universe CUDA images build on them.
81+
The CPU-only Core images leave out `src/core/cuda`.
82+
The CPU-only Universe images still run colcon on `src/core/cuda`, but without CUDA its CUDA code does not build.
83+
Autoware 2.0.0 does not have this layer yet.
84+
It builds these packages as part of Autoware Universe.
85+
86+
The shared base is Core-quality: it depends only on its own packages, Core tooling, ROS, and one external CMake module, with nothing from Universe, and many downstream GPU packages build on it.
87+
`autoware_tensorrt_plugins` stays in [Autoware Universe](https://github.com/autowarefoundation/autoware_universe), because it still changes often and only a few packages use it.

‎docs/design/images/repository-structure.svg‎

Lines changed: 22 additions & 18 deletions
Loading

‎docs/design/repository-structure.md‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Autoware has the following repository structure defined by the [`autoware.repos`
1212

1313
!!! note
1414

15-
The diagram shows the repositories of Autoware 2.0.0. It leaves out some external packages of Universe, for example vendor packages of third-party libraries.
15+
The diagram shows the repositories of the `main` branch of Autoware. It leaves out some external packages, for example `negotiated` in the CUDA layer and vendor packages of third-party libraries in Universe.
1616

1717
## Important repositories
1818

@@ -24,6 +24,12 @@ Here is an overview of the most important repositories:
2424
- It has sensing, perception, localization, planning, control packages.
2525
- Maintained by the Autoware Foundation.
2626

27+
### `autoware_cuda`
28+
29+
- Contains the shared CUDA and TensorRT base packages: `autoware_cuda_dependency_meta`, `autoware_cuda_utils`, and `autoware_tensorrt_common`.
30+
- It is the optional CUDA layer of Core, together with `cuda_blackboard` and `negotiated`. The core CUDA images hold it, built with CUDA.
31+
- See [the CUDA layer](autoware-concepts/core-package-inclusion-criteria.md#the-cuda-layer).
32+
2733
### `autoware_universe`
2834

2935
- Contains experimental, cutting-edge packages useful for self-driving.

0 commit comments

Comments
 (0)