“/usr/local/cuda-7.5/bin/…/targets/x86_64-linux/include/host_config.h”, line 89: catastrophic error: #error directive: – unsupported pgc++ configuration! Only pgc++
15.4 on Linux x86_64 is supported! #error – unsupported pgc++ configuration! Only pgc++ 15.4 on Linux x86_64 is supported!
The PGI version I’m using is 15.10.
So my question is,
what does PGI 15.4"+" mean?
Does it mean “15.4 and later” or not?
…I suppose that I have to downgrade PGI compiler to 15.4,
but if you have any useful information, please let me know.
It’s fairly evident from the relevant line of code in host_config.h that the only version that will pass the test is 15.4:
#if defined(__PGIC__)
#if __PGIC__ != 15 || __PGIC_MINOR__ != 4 || !defined(__GNUC__) || !defined(__LP64__) <-only 15.4 will pass
#error -- unsupported pgc++ configuration! Only pgc++ 15.4 on Linux x86_64 is supported!
I can’t explain the discrepancy between that and the documentation - it appears to be an oversight.
It’s quite likely that the only version of the PGI toolchain that CUDA 7.5 was officially tested with was 15.4, and so the restriction was placed that way in the host_config.h file.
In my experience (being doing this for years), you can relax the checks for minor numbers in host_config.h with no side effects.
Unfortunately some of them are now in nvcc and then you have no remedy (aside from using an hex editor).
I have never used the PGI C++ compiler, but I wonder whether ‘-Xcompiler -std=c++11’, which instructs the host compiler to compile for C++11 should instead be ‘-Xcompiler --c++11’? I tried to find a compiler flag reference for PGI C++ by a quick internet search, but have yet to locate one.