Mathdx Compile Fails at sm.hpp "Incorrect SM Value"

Hi all,

Setup
Card: A100
CUDA version: 13.0
MathDx version: 25.06.1
IDE: Eclipse (with Nsight Plugin for CUDA support)

I am trying to get cuFFT’s introduction_example.cu to compile and am having trouble doing so. When I try to compile with the default SM for CUDA Toolkit 13, I get the following error:

error: static assertion failed with “Incorrect SM<1010> value, use SM<1100"> instead. In CUDA 13 sm_101 (Thor) was renamed sm_110.”

I have thus far tried adding the flags -gencode arch=compute_80,code=sm_80 and -gencode arch=compute_80,code=compute_80 respectively, since I’m using an A100. When I do this, the compiler complains about -dlto and recommends I use code_lto_ instead. I did so and included -rdc=true when that was prompted.

Unfortunately, after resolving those issues, I am still getting the assertion failed error I started with. I’m not sure what to try next and my internet searches regarding this issue haven’t returned anything useful.

Thank you for your time and responses.

Edit: Additional information:

For anyone trying to find sm.hpp, it should be in [wherever you installed mathdx]/nvidia/mathdx/25.06/include/commondx/operators/sm.hpp

I believe I have found the issue.

introduction_example inserts Arch into + SM<>(). When I set it to 800, or any higher architecture that isn’t 1100 or 1010, I compile just fine. I tried using cout to print what arch is and got 800 when I had entered a different value for SM<>() as a test. I’m not sure how to track Arch down, but I’m going to guess it is a flexible variable that is fetched at runtime (probably grabbed from the card drivers) and thus counts as a range of architectures during compile time.