How to add an NVCC flag

조회 수: 45 (최근 30일)
Aidan Fishenden
Aidan Fishenden 2024년 7월 9일
편집: .json 2025년 8월 17일 10:49
I am attempting to compile a program using CUDA, and am getting the following error in response
C:\Program Files\MATLAB\R2024a\sys\cuda\win64\cuda\include\crt/host_config.h(164): fatal error C1189:
#error: -- unsupported Microsoft Visual Studio version! Only the versions between 2017 and 2022
(inclusive) are supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this
version check; however, using an unsupported host compiler may cause compilation failure or incorrect run
time execution. Use at your own risk.
I looked and it seems the problem is caused by a small glitch in a recent update of visual studio that shouldnt have any effect on the compiler. How do I add the flag to override the version check? My current code is as follows
mex -setup:'C:\Program Files\MATLAB\R2024a\bin\win64\mexopts\msvcpp2022.xml' C++
mexGPUall
  댓글 수: 1
Matt J
Matt J 2024년 10월 9일
I looked and it seems the problem is caused by a small glitch in a recent update of visual studio that shouldnt have any effect on the compiler.
I am having the same difficulty. How did you verify this?

댓글을 달려면 로그인하십시오.

채택된 답변

Xiao Haonan
Xiao Haonan 2024년 7월 13일
Hi Aiden,
I encountered the same problem, and solved it by setting environmental variable "NVCC_APPEND_FLAGS".
To do this, you can try:
setenv("NVCC_APPEND_FLAGS", '-allow-unsupported-compiler')
mexcuda -v mexGPUExample.cu
Hope it helps!
  댓글 수: 2
Aidan Fishenden
Aidan Fishenden 2024년 7월 15일
This worked perfectly, thank you!
Matt J
Matt J 2024년 10월 11일
Didn't work for me, unfortunately.

댓글을 달려면 로그인하십시오.

추가 답변 (3개)

Akash
Akash 2024년 7월 10일
Hi Aidan,
To address the issue, you can ensure that the compiler and its version are supported with the product. You can find the list of supported and compatible compilers at the following link:-
The tables on this page outline the compilers that are supported by various MathWorks products.
For configuring parameters for CUDA code generation, you can use "coder.gpuConfig". This allows setting additional flags for the GPU compiler, including the NVCC flag. You can find more information on how to set these properties in the below provided MATLAB documentation link:-
  댓글 수: 1
Aidan Fishenden
Aidan Fishenden 2024년 7월 10일
편집: Walter Roberson 2024년 7월 10일
Would it be possible for you to show example code? I've gone through the page you reccomended but am still getting the same error despite the changes. It still does not recognize the flag.
mex -setup:'C:\Program Files\MATLAB\R2024a\bin\win64\mexopts\msvcpp2022.xml' C++
cfg = coder.gpuConfig( "mex" );
cfg.TargetLang = "C++";
cfg.GpuConfig.CompilerFlags = "--allow-unsupported-compiler";
cfg.GpuConfig.SelectCudaDevice = 0;
mexGPUall

댓글을 달려면 로그인하십시오.


Matt J
Matt J 2024년 10월 11일
편집: Matt J 2024년 10월 11일

.json
.json 2025년 8월 17일 7:23
편집: .json 2025년 8월 17일 10:49
I had a similar problem using gpucoder on linux (ubuntu 24.04 is currently on gcc 13.2, matlab 2025a ships with cuda 12.2 which only supports gcc 12.2). The error message was:
#error -- unsupported GNU version! gcc versions later than 12 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.
The "--allow-unsupported-compiler" flag didn't work for me (maybe the gcc version delta was too wide). I installed gcc-12 using anaconda:
conda create --name gcc-12 gcc=12.2 gxx=12.2
conda activate gcc-12
Then pointed matlab to the correct compiler with:
cfg = coder.gpuConfig('mex');
cfg.GpuConfig.CompilerFlags = '--compiler-bindir ${HOME}/miniforge3/envs/gcc-12/bin';
where ${HOME} is my home folder. codegen worked fine from there.

카테고리

Help CenterFile Exchange에서 Get Started with GPU Coder에 대해 자세히 알아보기

태그

제품


릴리스

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by