From b94b8dbd48c4a44f10cdfd45987097f46ebe71ee Mon Sep 17 00:00:00 2001 From: Ben Sander Date: Thu, 25 Aug 2016 12:36:52 -0500 Subject: [PATCH] Doc update to clarify supported / unsupported features --- docs/markdown/hip_faq.md | 21 +++++++++++++++++---- docs/markdown/hip_kernel_language.md | 5 +---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/docs/markdown/hip_faq.md b/docs/markdown/hip_faq.md index 8b50a9a8c7..cca0965ce2 100644 --- a/docs/markdown/hip_faq.md +++ b/docs/markdown/hip_faq.md @@ -42,21 +42,34 @@ HIP provides the following: The HIP API documentation describes each API and its limitations, if any, compared with the equivalent CUDA API. ### What is not supported? -#### Run-time features +#### Runtime/Driver API features +At a high-level, the following features are not supported: - Textures -- MemcpyToSymbol functions - Dynamic parallelism (CUDA 5.0) - Managed memory (CUDA 6.5) - Graphics interoperation with OpenGL or Direct3D +- CUDA Driver API (Under Development) +- CUDA IPC Functions (Under Development) + - CUDA array, mipmappedArray and pitched memory -- CUDA Driver API +- MemcpyToSymbol functions + +See the [API Support Table](CUDA_Runtime_API_functions_supported_by_HIP.md) for more detailed information. #### Kernel language features - Device-side dynamic memory allocations (malloc, free, new, delete) (CUDA 4.0) - Virtual functions, indirect functions and try/catch (CUDA 4.0) - `__prof_trigger` - PTX assembly (CUDA 4.0) -- Several kernel features are under development. See the [HIP Kernel Language](hip_kernel_language.md) for more information. +- Several kernel features are under development. See the [HIP Kernel Language](hip_kernel_language.md) for more information. These include: + - printf + - assert__ + - `__restrict__` + - `__launch_bounds__` + - `__threadfence*_`, `__syncthreads*` + - Unbounded loop unroll + + ### Is HIP a drop-in replacement for CUDA? No. HIP provides porting tools which do most of the work do convert CUDA code into portable C++ code that uses the HIP APIs. diff --git a/docs/markdown/hip_kernel_language.md b/docs/markdown/hip_kernel_language.md index 88f0237706..e74a010a60 100644 --- a/docs/markdown/hip_kernel_language.md +++ b/docs/markdown/hip_kernel_language.md @@ -156,7 +156,7 @@ The `__constant__` keyword is supported. The host writes constant memory before ### `__shared__` The `__shared__` keyword is supported. -`extern __shared__` allows the host to dynamically allocate shared memory and is specified as a launch parameter. This feature is under development. +`extern __shared__` allows the host to dynamically allocate shared memory and is specified as a launch parameter. HIP uses an alternate syntax based on the HIP_DYNAMIC_SHARED macro. ### `__managed__` Managed memory, including the `__managed__` keyword, are not supported in HIP. @@ -537,7 +537,6 @@ HIP supports the following atomic operations. ### Caveats and Features Under-Development: - HIP enables atomic operations on 32-bit integers. Additionally, it supports an atomic float add. AMD hardware, however, implements the float add using a CAS loop, so this function may not perform efficiently. -- wrapping increment and decrement are under development. ## Warp Cross-Lane Functions @@ -573,8 +572,6 @@ Applications can test whether the target platform supports the any/all instructi ### Warp Shuffle Functions -The following warp shuffle instructions are under development. - Half-float shuffles are not supported. The default width is warpSize---see [Warp Cross-Lane Functions](#warp-cross-lane-functions). Applications should not assume the warpSize is 32 or 64. ```