Doc update to clarify supported / unsupported features

This commit is contained in:
Ben Sander
2016-08-25 12:36:52 -05:00
parent 8b918b065a
commit b94b8dbd48
2 changed files with 18 additions and 8 deletions
+17 -4
View File
@@ -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. The HIP API documentation describes each API and its limitations, if any, compared with the equivalent CUDA API.
### What is not supported? ### What is not supported?
#### Run-time features #### Runtime/Driver API features
At a high-level, the following features are not supported:
- Textures - Textures
- MemcpyToSymbol functions
- Dynamic parallelism (CUDA 5.0) - Dynamic parallelism (CUDA 5.0)
- Managed memory (CUDA 6.5) - Managed memory (CUDA 6.5)
- Graphics interoperation with OpenGL or Direct3D - Graphics interoperation with OpenGL or Direct3D
- CUDA Driver API (Under Development)
- CUDA IPC Functions (Under Development)
- CUDA array, mipmappedArray and pitched memory - 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 #### Kernel language features
- Device-side dynamic memory allocations (malloc, free, new, delete) (CUDA 4.0) - Device-side dynamic memory allocations (malloc, free, new, delete) (CUDA 4.0)
- Virtual functions, indirect functions and try/catch (CUDA 4.0) - Virtual functions, indirect functions and try/catch (CUDA 4.0)
- `__prof_trigger` - `__prof_trigger`
- PTX assembly (CUDA 4.0) - 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? ### 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. No. HIP provides porting tools which do most of the work do convert CUDA code into portable C++ code that uses the HIP APIs.
+1 -4
View File
@@ -156,7 +156,7 @@ The `__constant__` keyword is supported. The host writes constant memory before
### `__shared__` ### `__shared__`
The `__shared__` keyword is supported. 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__`
Managed memory, including the `__managed__` keyword, are not supported in HIP. 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: ### 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. - 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 ## Warp Cross-Lane Functions
@@ -573,8 +572,6 @@ Applications can test whether the target platform supports the any/all instructi
### Warp Shuffle Functions ### 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. 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.
``` ```