-
Notifications
You must be signed in to change notification settings - Fork 722
feat(autoware_cuda_pointcloud_preprocessor): pointcloud concatenation #10300
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_cuda_pointcloud_preprocessor): pointcloud concatenation #10300
Conversation
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your continued work on CUDA integration into pointcloud preprocessor!
- Apart from comments, there is an error while passing host msgs to concatenated pointcloud:
[cuda_concatenate_and_time_sync_node-1] [WARN 1742948909.196968462] [cuda_concatenate_and_time_sync_node]: The compatible callback was called. This results in a performance loss. This behavior is probably not intended or a temporal measure (compatibleCallback() at /workspace/src/universe/external/cuda_blackboard/src/cuda_blackboard_subscriber.cpp:121)
[cuda_concatenate_and_time_sync_node-1] terminate called after throwing an instance of 'std::runtime_error'
[cuda_concatenate_and_time_sync_node-1] what(): cudaErrorIllegalAddress (700)@/workspace/src/universe/external/cuda_blackboard/include/cuda_blackboard/cuda_unique_ptr.hpp#L50: an illegal memory access was encountered
If this node is not supposed to work with host messages, please address this use case.
- Passing cuda messages results with:
[cuda_pointcloud_preprocessor_node-3] [INFO 1742955625.198786715] [right.cuda_pointcloud_preprocessor]: Negotiating (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:610)
[cuda_pointcloud_preprocessor_node-1] [INFO 1742955625.200537233] [top.cuda_pointcloud_preprocessor]: Negotiating (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:610)
[cuda_pointcloud_preprocessor_node-2] [INFO 1742955625.202174008] [left.cuda_pointcloud_preprocessor]: Negotiating (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:610)
[cuda_pointcloud_preprocessor_node-3] [INFO 1742955625.275429451] [right.cuda_pointcloud_preprocessor]: Negotiating (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:610)
[cuda_pointcloud_preprocessor_node-3] [INFO 1742955625.275482867] [right.cuda_pointcloud_preprocessor]: Could not negotiate (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:633)
[cuda_pointcloud_preprocessor_node-1] [INFO 1742955625.280224024] [top.cuda_pointcloud_preprocessor]: Negotiating (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:610)
[cuda_pointcloud_preprocessor_node-1] [INFO 1742955625.280280914] [top.cuda_pointcloud_preprocessor]: Could not negotiate (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:633)
[cuda_pointcloud_preprocessor_node-2] [INFO 1742955625.280701652] [left.cuda_pointcloud_preprocessor]: Negotiating (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:610)
[cuda_pointcloud_preprocessor_node-2] [INFO 1742955625.280758089] [left.cuda_pointcloud_preprocessor]: Could not negotiate (negotiate() at /workspace/src/universe/external/negotiated/negotiated/src/negotiated_publisher.cpp:633)
- I tried to check how it works, but due to the problems mentioned above it is impossible. I cherry-picked commits from parent PR, but I'm not sure if my custom launch file is correct. Could you please update "Notes for reviewers" section and prepare launch file for reviewing purposes which:
- Run nebula.
- Run cuda pointcloud preprocessor for top, right and left sensor.
- Run cuda concatenate.
Of course I did it, but seems it doesn't work.
...include/autoware/cuda_pointcloud_preprocessor/cuda_concatenate_data/cuda_cloud_collector.hpp
Outdated
Show resolved
Hide resolved
sensing/autoware_cuda_pointcloud_preprocessor/schema/concatenate_and_time_sync_node.schema.json
Outdated
Show resolved
Hide resolved
sensing/autoware_cuda_pointcloud_preprocessor/schema/concatenate_and_time_sync_node.schema.json
Outdated
Show resolved
Hide resolved
...toware_cuda_pointcloud_preprocessor/src/cuda_concatenate_data/cuda_combine_cloud_handler.cpp
Outdated
Show resolved
Hide resolved
...toware_cuda_pointcloud_preprocessor/src/cuda_concatenate_data/cuda_combine_cloud_handler.cpp
Outdated
Show resolved
Hide resolved
...toware_cuda_pointcloud_preprocessor/src/cuda_concatenate_data/cuda_combine_cloud_handler.cpp
Outdated
Show resolved
Hide resolved
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
…e as the non-gpu node Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
@amadeuszsz |
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
…b.com:knzo25/autoware.universe into feat/cuda_blackboard_concatenated_pointcloud2 Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Signed-off-by: Kenzo Lobos-Tsunekawa <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #10300 +/- ##
==========================================
- Coverage 24.93% 24.81% -0.13%
==========================================
Files 1340 1336 -4
Lines 104860 103769 -1091
Branches 39681 39322 -359
==========================================
- Hits 26151 25747 -404
+ Misses 76226 75584 -642
+ Partials 2483 2438 -45
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Description
NOTE: #10298 needs to be merged before this PR
The beforementioned PR templated the pointcloud concatenation, which this PR exploits to implement the cuda version is as little code duplication as possible.
This is part of the series of PR related to #9722
List of PRs:
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:
How was this PR tested?
The sensing/perception pipeline was tested until centerpoint for TIER IV's taxi using the logging simulator.
The following tests were executed in a laptop equipped with a RTX 4060 (laptop) GPU and a Intel(R) Core(TM) Ultra 7 165H (22 cores)
(2.03 are H->D copies)
10.26 speedup!
Notes for reviewers
The main branch that I used for development is
feat/cuda_acceleration_and_transport_layer2
.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.
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
None.