Skip to content

Crash in Custom CUDA Thread After Starting cuVSLAM Odometry Tracking #79

Description

@steven-mantis

Description

I have a multi-threaded application with two independent threads:

  1. One thread runs cuVSLAM Odometry tracking (Odometry.Track()).
  2. Another thread runs a custom CUDA-based application.

The CUDA application runs normally when cuVSLAM is not running. However, once I start cuVSLAM odometry tracking, the application eventually crashes.

The crash does not occur inside the cuVSLAM thread. According to the stack trace, the crash happens in my custom CUDA thread during CUDA execution.

Steps to Reproduce

  1. Start the custom CUDA processing thread.
  2. Initialize cuVSLAM.
  3. Keep the CUDA workload running continuously.
  4. Start calling Odometry.Track() in another thread.
  5. The application crashes in the CUDA processing thread.

Expected Behavior

cuVSLAM and another CUDA workload should be able to run concurrently on the same GPU without causing crashes.

Actual Behavior

After Odometry.Track() starts running, the custom CUDA thread crashes.

Environment

  • Hardware: NVIDIA Jetson Orin
  • JetPack version: 6.2.1
  • cuVSLAM version: 16.0

Additional Information

  • The custom CUDA application works correctly when cuVSLAM is not running.
  • The crash only happens after starting cuVSLAM odometry tracking.
  • The crash appears to happen in the custom CUDA thread rather than directly inside cuVSLAM.

Could this be related to CUDA context management, CUDA stream usage, or GPU resource sharing between cuVSLAM and external CUDA workloads?

Are there any recommended practices for running cuVSLAM together with custom CUDA kernels in separate threads?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions