If you dig into header files that get included when you type
#include <cuda_runtime.h>
or if (I assume) you compile a .cu file, you will find one particular file:
host_defines.h
which defines the macros described in the Programming Guide, for example:
align(n)
noinline
restrict
forceinline
Although they are described in the Programming Guide mainly as a tool to change the behaviour of your device code, they will also accordingly influence your host code.
However, there are more macros defined, e.g.
no_return
thread
… that are never mentioned in the Programming Guide or any other CUDA-related pdf file included with the CUDA 3.1 installer.
My question is:
- Can they somehow influence the GPU code generation?
- Are we permitted to use them for host code without any fear that they will dissapear in some future version of nvcc?