Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(autoware_pointcloud_preprocessor): cuda-accelerated pointcloud concatenation #9455

Draft
wants to merge 103 commits into
base: main
Choose a base branch
from

Conversation

knzo25
Copy link
Contributor

@knzo25 knzo25 commented Nov 25, 2024

Description

This PR is part of a series of PRs that aim to accelerate the Sensing/Perception pipeline through an appropriate use of CUDA.

List of PRs:

To use these branches, the following additions to the autoware.repos are necessary:

  vendor/cuda_blackboard:
    type: git
    url: [email protected]:knzo25/cuda_blackboard.git
    version: main
  vendor/negotiated:
    type: git
    url: https://github.com/osrf/negotiated.git
    version: master

Depending on your machine and how many nodes are in a container, the following branch may also be required:
https://github.com/knzo25/launch_ros/tree/fix/load_composable_node
There seems to be a but in ROS where if you send too many services at once some will be lost and ros_launch can not handle that.

Related links

Parent Issue:

  • Link

How was this PR tested?

The sensing/perception pipeline was tested until centerpoint for TIER IV's taxi using the logging simulator.

Notes for reviewers

The main branch that I used for development is feat/cuda_acceleration_and_transport_layer.
However, the changes were too big so I split the PRs. That being said, development, if any will still be on that branch (and then cherrypicked to the respective PRs), and the review changes will be cherrypicked into the development branch.

Interface changes

An additional topic is added to perform type negotiation:
Example: input/pointcloud -> input/pointcloud and input/pointcloud/cuda

Effects on system behavior

Enabling this preprocessing in the launchers should provide a much reduced latency and cpu usage (at the cost of a higher GPU usage)

vividf and others added 30 commits September 19, 2024 11:40
Signed-off-by: vividf <[email protected]>
Signed-off-by: vividf <[email protected]>
Signed-off-by: vividf <[email protected]>
…combine_cloud_handler.cpp

Co-authored-by: Max Schmeller <[email protected]>
…_time_sync_node.schema.json

Co-authored-by: Max Schmeller <[email protected]>
…_time_sync_node.schema.json

Co-authored-by: Max Schmeller <[email protected]>
…combine_cloud_handler.cpp

Co-authored-by: Max Schmeller <[email protected]>
…combine_cloud_handler.cpp

Co-authored-by: Max Schmeller <[email protected]>
Signed-off-by: vividf <[email protected]>
…hub.com:vividf/autoware.universe into feature/redesign_concatenate_and_time_sync_node
vividf and others added 21 commits October 22, 2024 11:01
Signed-off-by: vividf <[email protected]>
…hub.com:vividf/autoware.universe into feature/redesign_concatenate_and_time_sync_node
Signed-off-by: vividf <[email protected]>
…hub.com:vividf/autoware.universe into feature/redesign_concatenate_and_time_sync_node
…hub.com:vividf/autoware.universe into feature/redesign_concatenate_and_time_sync_node
…egrated it with the cuda blackboard

Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
@github-actions github-actions bot added type:documentation Creating or refining documentation. (auto-assigned) component:sensing Data acquisition from sensors, drivers, preprocessing. (auto-assigned) tag:require-cuda-build-and-test labels Nov 25, 2024
Copy link

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

@knzo25
Copy link
Contributor Author

knzo25 commented Nov 25, 2024

Note, this PR will be kept as a draft until #8300 is merged, at which point this PR will be rebased

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:sensing Data acquisition from sensors, drivers, preprocessing. (auto-assigned) tag:require-cuda-build-and-test type:documentation Creating or refining documentation. (auto-assigned)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants