Repository navigation
Cuda fallback to neon instead no opt - #14801
remibettan merged 1 commit into
Conversation
There was a problem hiding this comment.
Pull request overview
Enables improved SIMD/CUDA selection and behavior for pointcloud/align processing, including a CUDA+NEON hybrid path and expanded NEON distortion model support.
Changes:
- Add INFO logs indicating which implementation (CUDA/SSE/NEON/generic) is selected for
alignandpointcloud. - Extend NEON pointcloud texture projection to support
RS2_DISTORTION_INVERSE_BROWN_CONRADYandRS2_DISTORTION_BROWN_CONRADY. - On ARM+CUDA builds, make
pointcloud_cudainherit frompointcloud_neonto reuse NEON-optimized methods not accelerated by CUDA.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/proc/pointcloud.cpp | Adds easylogging include and logs the chosen pointcloud implementation; keeps NEON fallback path. |
| src/proc/neon/neon-pointcloud.cpp | Adds NEON projection handling for inverse/brown conrady and routes get_texture_map by distortion model. |
| src/proc/cuda/cuda-pointcloud.h | Switches pointcloud_cuda base class to pointcloud_neon when NEON is available (non-Android). |
| src/proc/cuda/cuda-pointcloud.cpp | Adjusts constructor to match the new inheritance strategy. |
| src/proc/align.cpp | Adds easylogging include and logs the chosen align implementation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
78215e7 to
d26ffbb
Compare
| #if defined(__ARM_NEON) && !defined(ANDROID) | ||
| // When NEON is available, inherit from pointcloud_neon which calls pointcloud("Pointcloud (NEON)") | ||
| // We keep the NEON name since this is a hybrid using CUDA for depth_to_points and NEON for get_texture_map | ||
| : pointcloud_neon() |
There was a problem hiding this comment.
Here we don't initialize with a string like in CUDA?
What do we do with this string BTW?
| namespace librealsense | ||
| { | ||
| #if defined(__ARM_NEON) && !defined(ANDROID) | ||
| class pointcloud_cuda : public pointcloud_neon |
There was a problem hiding this comment.
Will this make the pointcloude be done in neon or cuda?
isn't neon implemented the pointcloud functions and will take over even on CUDA?
Nir-Az
left a comment
There was a problem hiding this comment.
Looks good
Let merge after IQ validation
Tracked by: RSDEV-6487