You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Several kernel features are under development. See the [HIP Kernel Language](hip_kernel_language.md) for more information. These include:
69
68
- printf
70
-
- assert
71
-
-`__restrict__`
72
-
-`__threadfence*_`, `__syncthreads*`
73
-
- Unbounded loop unroll
74
-
75
69
76
70
77
71
### Is HIP a drop-in replacement for CUDA?
@@ -100,18 +94,20 @@ However, we can provide a rough summary of the features included in each CUDA SD
100
94
- Per-thread-streams (under development)
101
95
- C++11 (HCC supports all of C++11, all of C++14 and some C++17 features)
102
96
- CUDA 7.5
103
-
- float16
97
+
- float16 (supported)
104
98
- CUDA 8.0
105
-
-TBD.
99
+
-Page Migration including cudaMemAdvise, cudaMemPrefetch, other cudaMem* APIs(not supported)
106
100
107
-
### What libraries does HIP support?
108
-
HIP includes growing support for the 4 key math libraries using hcBlas, hcFft, hcrng and hcsparse.
109
-
These offer pointer-based memory interfaces (as opposed to opaque buffers) and can be easily interfaced with other HCC applications. Developers should use conditional compilation if portability to nvcc systems is desired - using calls to cu* routines on one path and hc* routines on the other.
HIP includes growing support for the 4 key math libraries using hcBlas, hcFft, hcrng and hcsparse, as well as MIOpen for machine intelligence applications.
104
+
These offer pointer-based memory interfaces (as opposed to opaque buffers) and can be easily interfaced with other HIP applications.
105
+
The hip interfaces support both ROCm and CUDA paths, with familiar library interfaces.
106
+
107
+
-[hipBlas](https://github.com/ROCmSoftwarePlatform/hipBLAS), which utilizes [rocBlas](https://github.com/ROCmSoftwarePlatform/rocBLAS).
Additionally, some of the cublas routines are automatically converted to hipblas equivalents by the hipify-clang tool. These APIs use cublas or hcblas depending on the platform, and replace the need
117
113
to use conditional compilation.
@@ -218,7 +214,7 @@ If platform portability is important, use #ifdef __HIP_PLATFORM_NVCC__ to guard
218
214
### On HCC, can I use HC functionality with HIP?
219
215
Yes.
220
216
The code can include hc.hpp and use HC functions inside the kernel. A typical use-case is to use AMD-specific hardware features such as the permute, swizzle, or DPP operations.
221
-
The "-stdlib=libc++" must be passed to hipcc in order to compile hc.hpp. See the 'bit_extract' sample for an example.
217
+
See the 'bit_extract' sample for an example.
222
218
223
219
Also these functions can be used to extract HCC accelerator and accelerator_view structures from the HIP deviceId and hipStream_t:
Copy file name to clipboardExpand all lines: docs/markdown/hip_kernel_language.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -167,7 +167,7 @@ The `__shared__` keyword is supported.
167
167
Managed memory, including the `__managed__` keyword, are not supported in HIP.
168
168
169
169
### `__restrict__`
170
-
The `__restrict__` keyword tells the compiler that the associated memory pointer will not alias with any other pointer in the kernel or function. This feature can help the compiler generate better code. In most cases, all pointer arguments must use this keyword to realize the benefit. hcc support for the `__restrict__` qualifier on kernel arguments is under development.
170
+
The `__restrict__` keyword tells the compiler that the associated memory pointer will not alias with any other pointer in the kernel or function. This feature can help the compiler generate better code. In most cases, all pointer arguments must use this keyword to realize the benefit.
171
171
172
172
173
173
## Built-In Variables
@@ -603,6 +603,7 @@ The Cuda `__prof_trigger()` instruction is not supported.
603
603
## Assert
604
604
605
605
The assert function is under development.
606
+
HIP does support an "abort" call which will terminate the process execution from inside the kernel.
606
607
607
608
## Printf
608
609
@@ -690,7 +691,6 @@ for (int i=0; i<16; i++) ...
690
691
```
691
692
692
693
693
-
Unbounded loop unroll is under development on HCC compiler.
694
694
```
695
695
#pragma unroll /* hint to compiler to completely unroll next loop. */
0 commit comments