I try to compile a C++ OpenACC code (unchanged) that was working before my distribution update (from Ubuntu 20 to 22).
And as you could guess, this compilation is not working anymore.
Therefore, I think to the problem is more a setup problem that a code problem.
So now my compiler is: nvc++ 22.11-0
on Ubuntu 22.04.
The compilation returns the following error message:
nvc++-Warning-unknown driver variable assigned on the command line: /home/user/src/file.cpp
nvc++-Warning-No files to process
And unfortunately, I found nothing about this error message on the Internet nor in the compiler documentation.
The code is big and I did not manage to create a MWE from it, but simple examples from nvc++
documentation are working fine (otherwise, it would be too easy to reproduce this error…).
So if you have any idea about how to solve this error, or a comprehension of about what the message means or a test to reproduce the error, I would be glad; because now I fill like blocked in a dead-end.
2
Answers
Ok, as weird as it can seems, the problem was in the path to the file: it contained a
=
character.nvc++
is disturbed by such symbol in the path to the file. Nothing to do with the drivers. A misleading error message...I’ve seen this once before and it had to do with the order in which the compiler flags were listed on the command line. I don’t remember the details but thought it was specific to the "-ta=tesla:managed" flag and moving this towards the beginning of the command line fixed the issue.
What command line flags are you using and what is the order in which they appear ?
The "-ta" flag is deprecated in favor of the "-gpu" flag. "-ta" is specific to OpenACC but with nvc++ now also supporting OpenMP target offload and standard language parallelism, we decided to move the GPU specific sub-options under a common flag. Hence I recommend moving from using "-ta=tesla:managed" to "-acc -gpu=managed".