nsight eclipse and gcc version support

hello,

i remember (being informed that i am) using a gcc version with a previous cuda version, before it was truly supported by cuda

i also see greater c11 support with 4.9, in particular new sync functions; how can one know which versions of gcc would be supported by a current/ latest cuda version?

as far as i know, the getting started guides normally specify the min version, not the ‘max’ version

as far as i know, the getting started guides normally specify the min version, not the ‘max’ version

I wouldn’t describe it that way.

how can one know which versions of gcc would be supported by a current/ latest cuda version?

The official support is limited to the exact configurations specified in the getting started guide. Take a look:

http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#system-requirements

I see GCC ranging from 4.1.2 all the way up to 4.8.2, depending on OS. That doesn’t mean that 4.8.2 is an officially supported GCC compiler version on CentOS 5.x What is officially supported on CentOS 5.x is GCC 4.1.2. Period. Any other version, and you’re in YMMV country. There would be little point in specifying a specific GCC version (and GLIBC version, and Kernel Version) if a min/max range of versions were supported. That is not how it is intended to be interpreted.

The “enforcement” if you want to call it that, is done in host_config.h:

#if defined(__GNUC__)

#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 8)

#error -- unsupported GNU version! gcc 4.9 and up are not supported!

#endif /* __GNUC__> 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 8) */

#endif /* __GNUC__ */

If you attempt to use something greater than GCC 4.8.x with CUDA 6.5 (in any linux OS), the above will trip a compile error. There is no corresponding “min” version enforcement. And again, this is a crude sort of enforcement. Just because you don’t hit this particular compile error does not necessarily mean you have a supported config. The only officially supported configs are the exact configs listed.

If you want to drive around in YMMV country, then just delete the above lines from that header file, and have at it.

i exactly do not wish to gallop like a cuda cowboy on my horse in ‘YMMV’/ take-it-on-faith/ hope-for-the-best/ who-knows? county, gun in hand; hence the question

i unintentionally ‘attempted’ enough the previous time, and the experience was slightly embarrassing and mildly unpleasant

host.config.h - got it; thanks