Repository navigation
Description
Checklist
- I've read the contribution guidelines.
- I've searched other issues and no duplicate issues were found.
- I've agreed with the maintainers that I can plan this task.
Description
This issue tracks the move of the shared CUDA and TensorRT base packages from autoware_universe into a new autoware_cuda repository. The plan and the feedback are in the discussion below.
The repository name is autoware_cuda. Earlier drafts used autoware_core_cuda and autoware_core_ai. The repository holds only packages that need CUDA to build, and the core CUDA images (core-devel-cuda and core-cuda) hold it. Packages for ONNX Runtime do not go here. The name does not include "core", because the core/cuda/ path in autoware.repos already shows the layer.
At the stakeholder sync on 2026-06-25, TIER IV and AWF deferred this migration to the end of September 2026. The work started again in October 2026.
Status
The cutover is done. The three packages moved, and both CI and autoware.repos workspaces use the new repository. The core CUDA images and the docs are done too. One item is still open:
- The final update of discussion 7156.
A workspace that was built before the cutover needs two manual steps after vcs import:
rm -rf src/universe/external/cuda_blackboard
rm -rf {build,install}/{autoware_cuda_dependency_meta,autoware_cuda_utils,autoware_tensorrt_common,cuda_blackboard}The first command removes the old copy of cuda_blackboard, because vcs import does not delete it. The second command removes the CMake caches that point to the old source paths.
These packages move:
| Package | Old directory under src/ |
New directory under src/ |
|---|---|---|
autoware_cuda_dependency_meta |
universe/autoware_universe/common/ |
core/cuda/autoware_cuda/ |
autoware_cuda_utils |
universe/autoware_universe/sensing/ |
core/cuda/autoware_cuda/ |
autoware_tensorrt_common |
universe/autoware_universe/perception/ |
core/cuda/autoware_cuda/ |
These items are not part of this task:
autoware_tensorrt_pluginsstays inautoware_universe. It still changes often, and only a few packages use it.trt_batched_nmshas no consumer. Its entry leftautoware.reposin the PR below.- chore: drop the orphaned tensorrt_rtmdet artifact and the trt_batched_nms repos entry #7253
cuda_blackboard stays a standalone repository. Only its path in autoware.repos changes, from universe/external/cuda_blackboard to core/cuda/cuda_blackboard.
Purpose
- Let projects use the CUDA base at the core layer without the full
autoware_universerepository. - Keep the heavy GPU build and CI setup out of the packages that do not need it.
- Release the CUDA base on its own version line, apart from unrelated universe code.
- Prepare later steps that make
autoware_universesmaller. We will discuss those steps separately.
Possible approaches
The package names do not change. Colcon finds packages by name, so the downstream package.xml and CMakeLists.txt files need no edits.
- Create
autowarefoundation/autoware_cudawith the standard AWF repository files and CI for Humble and Jazzy. The code owners are the current maintainers of the three packages and the AWF maintainers. - Copy the three packages into the new repository. The new repository starts without the old Git history. That history stays in
autoware_universe. - Release
autoware_cuda1.0.0. The repository starts its own version line, apart from the universe line (0.53.0 today). - Announce a short freeze for PRs that change the three packages.
- Merge one PR in
autoware_universe, then releaseautoware_universe. The PR does these things:- Remove the three packages and their
CODEOWNERSentries. - Add
core/cuda/autoware_cudatobuild_depends_stable.repos. This entry is permanent, because the CPU-only CI images do not containsrc/core/cuda. - Move
cuda_blackboardtocore/cuda/cuda_blackboardinbuild_depends_stable.repos.
- Remove the three packages and their
- Merge one PR in
autoware. The PR does these things:- Bump
autoware_universeinautoware.reposto the release from step 5. - Add
core/cuda/autoware_cudatoautoware.repos. - Move
cuda_blackboardtocore/cuda/cuda_blackboardinautoware.repos. - Change
docker/. The CPU-only core images do not buildsrc/core/cuda. The universe stages (CPU and CUDA) build it from source. Newautoware-core-*-cudaimages are a separate task.
- Bump
- Close the open PRs on the three packages in
autoware_universe, with a note to the authors to open them again inautoware_cuda.
The cutover needs two merges, because of these facts:
autoware.repospinsautoware_universeto a release tag. Ifautoware.reposaddsautoware_cudabefore it points to a universe release without the three packages, a workspace holds two copies of them.- The universe CI takes core packages prebuilt from the
universe-dependencies*images. These images do not containautoware_cuda, so the universe CI builds it frombuild_depends_stable.repos. docker/core.Dockerfilebuilds every package undersrc/corewithout CUDA.cuda_blackboarddepends onnegotiated, which has no rosdep rule and lives inuniverse/external. As a result, thedocker/change must be in the same PR as theautoware.reposchange.
Progress:
| Step | Result | Date |
|---|---|---|
| 1 - 3 | autoware_cuda 1.0.0 |
Oct 30 |
| 5 | universe PR 13564 merged, autoware_universe 0.53.2 |
Oct 31 |
| 6 | autoware PR 7379 merged | Oct 31 |
| 7 | universe PRs 13446 and 12240 closed | Oct 30 |
| Core CUDA images | autoware PRs 7383 and 7386 merged, tracked in issue 7381 | Nov 2 |
| Docs | autoware-documentation PR 870 merged | Nov 4 |
- https://github.com/autowarefoundation/autoware_cuda/releases/tag/1.0.0
- refactor!: move the CUDA base packages to autoware_cuda autoware_universe#13564
- https://github.com/autowarefoundation/autoware_universe/releases/tag/0.53.2
- refactor!: move the CUDA base packages to autoware_cuda #7379
- Build the CUDA layer of Core into its own Docker images #7381
- feat(docker): add core CUDA images #7383
- refactor(docker): build the universe CUDA images on the core CUDA images #7386
- docs(design): describe the autoware_cuda repository in the CUDA layer autoware-documentation#870
Definition of done
-
autowarefoundation/autoware_cudaexists, has CI for Humble and Jazzy, has aCODEOWNERSfile, and has the 1.0.0 release that holds the three packages. -
autoware_universeno longer holdsautoware_cuda_dependency_meta,autoware_cuda_utils, orautoware_tensorrt_common, or theirCODEOWNERSentries. -
autoware.reposlistscore/cuda/autoware_cudaandcore/cuda/cuda_blackboard, and no longer listsuniverse/external/cuda_blackboard. - The CPU-only core images do not build
src/core/cuda. -
docker/builds theautoware-core-*-cudaimages. This is a separate task now. The images are namedcore-dependencies-cuda,core-devel-cudaandcore-cuda: Build the CUDA layer of Core into its own Docker images #7381 - The universe packages that use the CUDA base build in CI against the new repository.
-
build_depends_stable.reposinautoware_universelistscore/cuda/autoware_cudaandcore/cuda/cuda_blackboard. - The open PRs on the three packages are closed in
autoware_universe, with a pointer toautoware_cuda. - The "CUDA layer" section of
docs/design/autoware-concepts/core-package-inclusion-criteria.mdinautoware-documentationnamesautoware_cuda, notautoware_core_cuda, and no longer listsautoware_tensorrt_plugins. The section still namesautoware_tensorrt_plugins, but only to say that it stays in Universe: docs(design): describe the autoware_cuda repository in the CUDA layer autoware-documentation#870 - The diagram in
docs/design/repository-structure.mdinautoware-documentationshowsautoware_cudaandcuda_blackboardunder Core, and no longer showstrt_batched_nms: docs(design): describe the autoware_cuda repository in the CUDA layer autoware-documentation#870 - Discussion 7156 links to this issue and shows the final state.
Activity
[-]Extract the shared CUDA base packages into a new autoware_core_cuda repository[/-][+]Extract the shared CUDA base packages into a new autoware_core_ai repository[/+][-]Extract the shared CUDA base packages into a new autoware_core_ai repository[/-][+]Extract the shared CUDA base packages into a new autoware_cuda repository[/+]xmfcx commentedon Oct 30, 2026
Update (2026-10-30):
autoware_cuda1.0.0 is out. It holdsautoware_cuda_dependency_meta,autoware_cuda_utils, andautoware_tensorrt_common, with the same code asautoware_universe0.53.0.The CI of
autoware_cudabuilds and tests these packages on Humble and Jazzy. It also builds and tests the universe packages that depend on them.The freeze starts now. Please do not merge PRs in
autoware_universethat change the three packages. Open new PRs for them inautoware_cuda.These open universe PRs change the packages. I will ask their authors to move them to
autoware_cuda.Next steps:
autoware_universeremoves the three packages, then a universe release.autowareupdatesautoware.reposautoware-core-*-cudaimages.The freeze ends when the universe PR merges.
cc. @mojomex @technolojin @mitsudome-r @YoshiRi
docs(design): describe the autoware_cuda repository in the CUDA layer
refactor!: move the CUDA base packages to autoware_cuda (#13564)
refactor!: move the CUDA base packages to autoware_cuda (autowarefoun…
docs(design): describe the autoware_cuda repository in the CUDA layer (…
refactor!: move the CUDA base packages to autoware_cuda (autowarefoun…
refactor!: move the CUDA base packages to autoware_cuda (autowarefoun…
refactor!: move the CUDA base packages to autoware_cuda (autowarefoun…
refactor!: move the CUDA base packages to autoware_cuda (autowarefoun…
refactor!: move the CUDA base packages to autoware_cuda (autowarefoun…
refactor!: move the CUDA base packages to autoware_cuda (autowarefoun…