From 6084d0da2d52ae71241124eafba4b22e10dfd2b3 Mon Sep 17 00:00:00 2001 From: jujiang Date: Tue, 19 Jan 2021 19:28:16 -0500 Subject: [PATCH] SWDEV-265003 - update HIP document Change-Id: I1e8ec3ad380330b48d164a2ca60b0a70f7e54ae6 --- docs/markdown/hip_porting_guide.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/markdown/hip_porting_guide.md b/docs/markdown/hip_porting_guide.md index 2300bd115d..29ad7e33d7 100644 --- a/docs/markdown/hip_porting_guide.md +++ b/docs/markdown/hip_porting_guide.md @@ -147,9 +147,11 @@ directory names. ### Identifying HIP Target Platform All HIP projects target either AMD or NVIDIA platform. The platform affects which headers are included and which libraries are used for linking. -- `HIP_PLATFORM_AMD` is defined if the HIP platform targets AMD +- `HIP_PLATFORM_AMD` is defined if the HIP platform targets AMD. +Note, `HIP_PLATFORM_HCC` was previously defined if the HIP platform targeted AMD, it is deprecated. -- `HIP_PLATFORM_NVIDA` is defined if the HIP platform targets NVIDIA +- `HIP_PLATFORM_NVIDA` is defined if the HIP platform targets NVIDIA. +Note, `HIP_PLATFORM_NVCC` was previously defined if the HIP platform targeted NVIDIA, it is deprecated. ### Identifying the Compiler: hip-clang or nvcc Often, it's useful to know whether the underlying compiler is HIP-Clang or nvcc. This knowledge can guard platform-specific code or aid in platform-specific performance tuning. @@ -189,7 +191,6 @@ HIP-Clang will have multiple passes over the code: one for the host code, and on Unlike `__CUDA_ARCH__`, the `__HIP_DEVICE_COMPILE__` value is 1 or undefined, and it doesn't represent the feature capability of the target device. - ### Compiler Defines: Summary |Define | HIP-Clang | nvcc | Other (GCC, ICC, Clang, etc.) |--- | --- | --- |---| @@ -286,9 +287,10 @@ HIP can depend on ROCclr, or NVCC as runtime - AMD platform On AMD platform, HIP uses Radeon Open Compute Common Language Runtime, called ROCclr. - ROCclr is a virtual device interface that HIP runtimes interact with different backends which allows runtimes to work on Linux , as well as Windows without much efforts. +Note, `HIP_ROCclr` needed to be defined on AMD platform that HIP used ROCclr, only when platform was defined as deprecated `HIP_PLATFORM_HCC`. + - NVIDIA platform On Nvidia platform, HIP is just a thin layer on top of CUDA. On non-AMD platform, HIP runtime determines if nvcc is available and can be used. If available, HIP_PLATFORM is set to nvcc and underneath CUDA path is used.