SWDEV-265003-Update HIP documents
Change-Id: I3aea36f9a817ff0d2a379fc902b1ba7794f9736e
[ROCm/clr commit: 32f35bbd2a]
Этот коммит содержится в:
коммит произвёл
Julia Jiang
родитель
be82aa43fb
Коммит
4f2dab9c86
@@ -142,10 +142,9 @@ The README with the procedures and tips the team used during this porting effort
|
|||||||
|
|
||||||
## Tour of the HIP Directories
|
## Tour of the HIP Directories
|
||||||
* **include**:
|
* **include**:
|
||||||
* **hip_runtime_api.h** : Defines HIP runtime APIs and can be compiled with many standard Linux compilers (hcc, GCC, ICC, CLANG, etc), in either C or C++ mode.
|
* **hip_runtime_api.h** : Defines HIP runtime APIs and can be compiled with many standard Linux compilers (GCC, ICC, CLANG, etc), in either C or C++ mode.
|
||||||
* **hip_runtime.h** : Includes everything in hip_runtime_api.h PLUS hipLaunchKernel and syntax for writing device kernels and device functions. hip_runtime.h can only be compiled with hcc.
|
* **hip_runtime.h** : Includes everything in hip_runtime_api.h PLUS hipLaunchKernel and syntax for writing device kernels and device functions. hip_runtime.h can be compiled using a standard C++ compiler but will expose a subset of the available functions.
|
||||||
* **amd_detail/**** , **nvidia_detail/**** : Implementation details for specific platforms. HIP applications should not include these files directly.
|
* **amd_detail/**** , **nvidia_detail/**** : Implementation details for specific platforms. HIP applications should not include these files directly.
|
||||||
* **hcc.h** : Includes interop APIs for HIP and HCC
|
|
||||||
|
|
||||||
* **bin**: Tools and scripts to help with hip porting
|
* **bin**: Tools and scripts to help with hip porting
|
||||||
* **hipify-perl** : Script based tool to convert CUDA code to portable CPP. Converts CUDA APIs and kernel builtins.
|
* **hipify-perl** : Script based tool to convert CUDA code to portable CPP. Converts CUDA APIs and kernel builtins.
|
||||||
|
|||||||
@@ -147,9 +147,9 @@ directory names.
|
|||||||
### Identifying HIP Target Platform
|
### 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.
|
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_HCC` is defined if the HIP platform targets AMD
|
- `HIP_PLATFORM_AMD` is defined if the HIP platform targets AMD
|
||||||
|
|
||||||
- `HIP_PLATFORM_NVCC` is defined if the HIP platform targets NVIDIA
|
- `HIP_PLATFORM_NVIDA` is defined if the HIP platform targets NVIDIA
|
||||||
|
|
||||||
### Identifying the Compiler: hip-clang or nvcc
|
### 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.
|
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.
|
||||||
@@ -285,7 +285,7 @@ HIP_PATH ?= $(shell hipconfig --path)
|
|||||||
HIP can depend on ROCclr, or NVCC as runtime
|
HIP can depend on ROCclr, or NVCC as runtime
|
||||||
|
|
||||||
- AMD platform
|
- AMD platform
|
||||||
`HIP_ROCclr` is defined on AMD platform that HIP use Radeon Open Compute Common Language Runtime, called ROCclr.
|
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.
|
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.
|
||||||
|
|
||||||
@@ -388,7 +388,7 @@ Applications which are compiled entirely with hipcc, and which benefit from adva
|
|||||||
The hip_runtime.h and hip_runtime_api.h files define the types, functions and enumerations needed to compile a HIP program:
|
The hip_runtime.h and hip_runtime_api.h files define the types, functions and enumerations needed to compile a HIP program:
|
||||||
|
|
||||||
- hip_runtime_api.h: defines all the HIP runtime APIs (e.g., hipMalloc) and the types required to call them. A source file that is only calling HIP APIs but neither defines nor launches any kernels can include hip_runtime_api.h. hip_runtime_api.h uses no custom hc language features and can be compiled using a standard C++ compiler.
|
- hip_runtime_api.h: defines all the HIP runtime APIs (e.g., hipMalloc) and the types required to call them. A source file that is only calling HIP APIs but neither defines nor launches any kernels can include hip_runtime_api.h. hip_runtime_api.h uses no custom hc language features and can be compiled using a standard C++ compiler.
|
||||||
- hip_runtime.h: included in hip_runtime_api.h. It additionally provides the types and defines required to create and launch kernels. hip_runtime.h does use custom hc language features, but they are guarded by ifdef checks. It can be compiled using a standard C++ compiler but will expose a subset of the available functions.
|
- hip_runtime.h: included in hip_runtime_api.h. It additionally provides the types and defines required to create and launch kernels. hip_runtime.h can be compiled using a standard C++ compiler but will expose a subset of the available functions.
|
||||||
|
|
||||||
CUDA has slightly different contents for these two files. In some cases you may need to convert hipified code to include the richer hip_runtime.h instead of hip_runtime_api.h.
|
CUDA has slightly different contents for these two files. In some cases you may need to convert hipified code to include the richer hip_runtime.h instead of hip_runtime_api.h.
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user