To support std::complex and some other standard C/C++ functions in HIP device code,
they need to be forced to be __host__ __device__ functions by pragmas. This is done
by some clang standard C++ wrapper headers which are shared between cuda-clang and hip-Clang.
For these standard C++ wapper headers to work properly, specific include path order
has to be enforced:
- clang C++ wrapper include path
- standard C++ include path
- clang include path
Also, these C++ wrapper headers require device version of some standard C/C++ functions
must be declared before including them. This needs to be done by including a default
header which declares or defines these device functions. The default header is always
included before any other headers are included by users.
This patch adds the the default header and include path for HIP.
Corresponding HIP runtime change: https://github.com/ROCm-Developer-Tools/HIP/pull/2098
CUDA -> GPU?
Looks like there are number of other mentions of CUDA that should be fixed.