Skip to content

Add CUDA SM 12.0 (Blackwell/RTX 5090) support to MapSMtoCores #1248

@LightDriverCS

Description

@LightDriverCS

Is your feature request related to a problem? Please describe.
When using OpenMVS with NVIDIA's new RTX 5090 (Blackwell architecture, SM 12.0 / Compute Capability 12.0), the following warning appears:

MapSMtoCores for SM 12.0 is undefined; default to use 64 cores/SM

This indicates that the nGpuArchCoresPerSM array in libs/Common/UtilCUDA.cpp doesn't have a mapping for Blackwell GPUs. The RTX 5090 actually has 128 CUDA cores per SM, but it falls back to 64 cores/SM due to the missing entry.

Environment:

  • GPU: NVIDIA GeForce RTX 5090 (32GB GDDR7)
  • CUDA Compute Capability: 12.0 (sm_120)
  • Driver Version: 591.44
  • CUDA Version: 13.1
  • OpenMVS Version: 2.2.0 (Build date: Aug 19 2025)

Describe the solution you'd like
Add SM 12.0 (Blackwell) support to the nGpuArchCoresPerSM array in libs/Common/UtilCUDA.cpp:

{0xC0, 128}, // Blackwell Generation (SM 12.0) GB202 class

This follows the same pattern used for previous architecture additions (see issue #1130 for SM 8.9/Ada support).

Describe alternatives you've considered
The current fallback mechanism uses a default core count, but this may result in suboptimal CUDA kernel configurations for the new architecture.

Additional context

  • NVIDIA RTX 5090 specs: 21,760 CUDA cores, 170 SMs, 128 cores/SM
  • The Blackwell architecture (RTX 50 series) was released in January 2025
  • Similar updates were needed for Ada Lovelace (SM 8.9) in issue RTX 4060 TI - MapSMtoCores for SM 8.9 is undefined #1130
  • This affects users of OpenDroneMap/NodeODM who use the GPU-accelerated Docker image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions