Skip to content

Build system rejects valid CMAKE CUDA_ARCHITECTURES inputs #38

@carterbox

Description

@carterbox

Version

0.5.0, 0.6.0

Describe the bug.

The custom CUDA_ARCHITECTURES validator doesn't accept all of the standard CMAKE cuda architecture expressions. For example, the following error message is not correct:

-- CUDA targeted archs: 
CMake Error at CMakeLists.txt:283 (message):
  None of the provided CUDA architectures
  ({50-real;52-real;60-real;61-real;70-real;75-real;80-real;86-real;89-real;90a-real;100f-real;103f-real;120a-real;121f-real;121-virtual})
  is supported by
  /home/conda/feedstock_root/build_artifacts/nvimgcodec_1757428707123/_build_env/bin/nvcc,
  use one or more of: 50;60;70;80;90


-- Configuring incomplete, errors occurred!

50-real;60-real;70-real;80-real;90a-real are all a subset of 50;60;70;80;90, so it doesn't make sense that these CUDA targets would not be allowed.

In addition to not recognizing that these are valid targets, the following issues are related:

  1. It seems that this function is trying to check compiler args before they are passed to the compiler. This is redundant error checking. Why not just let the compiler check its own arguments? Then you don't need to update this logic as new compilers become available.

  2. Does it make sense that there would be an upper limit on allowed CUDA targets? Why would the source code not be forward compatible?

  3. If there truly is a lower/upper limit on supported CUDA target architectures. Why not just use the existing __CUDA_ARCH__ macros which are already in use in this code base? Something like:

#if __CUDA_ARCH__ < 500
  #error "Only compute capability 5.0+ is supported."
#endif

Minimum reproducible example

Environment details

Relevant log output

Other/Misc.

No response

Check for duplicates

  • I have searched the open bugs/issues and have found no duplicates for this bug report

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions