[HIPIFY][doc] Update README.md
+ Populate Dependencies section with upcoming LLVM versions
+ Add clang bugs for not working configs LLVM+CUDA
+ Update Testing section
[ROCm/hip commit: 391aa7221b]
这个提交包含在:
@@ -1,6 +1,6 @@
|
||||
# hipify-clang
|
||||
|
||||
`hipify-clang` is a clang-based tool to automatically translate CUDA source code into portable HIP C++.
|
||||
`hipify-clang` is a clang-based tool to translate CUDA source code into portable HIP C++ automatically.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
@@ -32,25 +32,27 @@
|
||||
## <a name="dependencies"></a> Dependencies
|
||||
|
||||
`hipify-clang` requires:
|
||||
1. LLVM+CLANG of at least version 3.8.0, latest stable and recommended release: 6.0.1 (linux and windows).
|
||||
1. LLVM+CLANG of at least version 3.8.0, the latest stable and recommended release: 6.0.1 (Linux and windows).
|
||||
|
||||
2. CUDA at least version 7.0, latest supported version is 9.0.
|
||||
2. CUDA at least version 7.0, the latest supported version is 9.0.
|
||||
|
||||
| **LLVM release version** | **CUDA latest supported version** | **Comments** |
|
||||
|:------------------------:|:---------------------------------:|:------------:|
|
||||
| 3.8.0 | 7.5 |
|
||||
| 3.8.1 | 7.5 |
|
||||
| 3.9.0 | 7.5 |
|
||||
| 3.9.1 | 7.5 |
|
||||
| 4.0.0 | 8.0 |
|
||||
| 4.0.1 | 8.0 |
|
||||
| 5.0.0 | 8.0 |
|
||||
| 5.0.1 | 8.0 |
|
||||
| 5.0.2 | 8.0 |
|
||||
| 6.0.0 | 9.0 |
|
||||
| **6.0.1** | **9.0** | **LATEST STABLE RELEASE** |
|
||||
| 7.0.0 | 9.2 | windows is not supported, on linux there is a clang bug: https://bugs.llvm.org/show_bug.cgi?id=36384 |
|
||||
| | 10.0 | not yet supported |
|
||||
| **LLVM release version** | **CUDA latest supported version** | **Windows** | **Linux** |
|
||||
|:------------------------:|:---------------------------------:|:------------:|:---------:|
|
||||
| 3.8.0 | 7.5 | + | + |
|
||||
| 3.8.1 | 7.5 | + | + |
|
||||
| 3.9.0 | 7.5 | + | + |
|
||||
| 3.9.1 | 7.5 | + | + |
|
||||
| 4.0.0 | 8.0 | + | + |
|
||||
| 4.0.1 | 8.0 | + | + |
|
||||
| 5.0.0 | 8.0 | + | + |
|
||||
| 5.0.1 | 8.0 | + | + |
|
||||
| 5.0.2 | 8.0 | + | + |
|
||||
| 6.0.0 | 9.0 | + | + |
|
||||
| **6.0.1** | **9.0** | + <br/> **LATEST STABLE RELEASE** | + <br/> **LATEST STABLE RELEASE** |
|
||||
| 7.0.0 | 9.2 | - <br/> not working due to <br/> the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811) | - <br/> not working due to <br/> the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) |
|
||||
| 7.0.1 | 9.2 | - <br/> not working due to <br/> the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811) | - <br/> not working due to <br/> the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) |
|
||||
| 7.1.0 | 9.2 (?) | - <br/> LLVM 7.1.0 <br/> is not yet released | - <br/> LLVM 7.1.0 <br/> is not yet released |
|
||||
| 8.0.0 | 10.0 (?) | - <br/> LLVM 8.0.0 <br/> is not yet released | - <br/> LLVM 8.0.0 <br/> is not yet released |
|
||||
|
||||
In most cases, you can get a suitable version of LLVM+CLANG with your package manager.
|
||||
|
||||
@@ -78,7 +80,7 @@ make -j install
|
||||
On Windows, the following option should be specified for `cmake` at first place: `-G "Visual Studio 15 2017 Win64"`; the generated `hipify-clang.sln` should be built by `Visual Studio 15 2017` instead of `make.`
|
||||
|
||||
Debug build type `-DCMAKE_BUILD_TYPE=Debug` is also supported and tested; `LLVM+CLANG` should be built in `Debug` mode as well.
|
||||
64 bit build mode `-Thost=x64` is supported as well; `LLVM+CLANG` should be built in 64bit mode as well.
|
||||
64-bit build mode `-Thost=x64` is supported as well; `LLVM+CLANG` should be built in 64-bit mode as well.
|
||||
|
||||
The binary can then be found at `./dist/bin/hipify-clang`.
|
||||
|
||||
@@ -131,7 +133,7 @@ To run it:
|
||||
|
||||
`-DCUDA_SDK_ROOT_DIR="c:/ProgramData/NVIDIA Corporation/CUDA Samples/v9.0"`
|
||||
|
||||
4. Ensure [`cuDNN`](https://developer.nvidia.com/rdp/cudnn-archive) of version corresponding to CUDA's version is installed.
|
||||
4. Ensure [`cuDNN`](https://developer.nvidia.com/rdp/cudnn-archive) of the version corresponding to CUDA's version is installed.
|
||||
|
||||
* Path to cuDNN should be specified by the `CUDA_DNN_ROOT_DIR` option:
|
||||
|
||||
@@ -234,37 +236,45 @@ make test-hipify
|
||||
*A corresponding successful output:*
|
||||
```shell
|
||||
[100%] Running HIPify regression tests
|
||||
-- Testing: 28 tests, 12 threads --
|
||||
PASS: hipify :: allocators.cu (1 of 28)
|
||||
PASS: hipify :: coalescing.cu (2 of 28)
|
||||
PASS: hipify :: cuDNN/cudnn_softmax.cu (3 of 28)
|
||||
PASS: hipify :: cuFFT/simple_cufft.cu (4 of 28)
|
||||
PASS: hipify :: cuComplex/cuComplex_Julia.cu (5 of 28)
|
||||
PASS: hipify :: cuBLAS/cublas_sgemm_matrix_multiplication.cu (6 of 28)
|
||||
PASS: hipify :: cuBLAS/cublas_1_based_indexing.cu (7 of 28)
|
||||
PASS: hipify :: cuBLAS/cublas_0_based_indexing.cu (8 of 28)
|
||||
PASS: hipify :: axpy.cu (9 of 28)
|
||||
PASS: hipify :: dynamic_shared_memory.cu (10 of 28)
|
||||
PASS: hipify :: headers_test_01.cu (11 of 28)
|
||||
PASS: hipify :: headers_test_02.cu (12 of 28)
|
||||
PASS: hipify :: headers_test_03.cu (13 of 28)
|
||||
PASS: hipify :: headers_test_05.cu (14 of 28)
|
||||
PASS: hipify :: cuDNN/cudnn_convolution_forward.cu (15 of 28)
|
||||
PASS: hipify :: cuRAND/poisson_api_example.cu (16 of 28)
|
||||
PASS: hipify :: cudaRegister.cu (17 of 28)
|
||||
PASS: hipify :: headers_test_06.cu (18 of 28)
|
||||
PASS: hipify :: headers_test_04.cu (19 of 28)
|
||||
PASS: hipify :: intro.cu (20 of 28)
|
||||
PASS: hipify :: headers_test_07.cu (21 of 28)
|
||||
PASS: hipify :: square.cu (22 of 28)
|
||||
PASS: hipify :: static_shared_memory.cu (23 of 28)
|
||||
PASS: hipify :: vec_add.cu (24 of 28)
|
||||
PASS: hipify :: headers_test_08.cu (25 of 28)
|
||||
PASS: hipify :: cuRAND/benchmark_curand_generate.cpp (26 of 28)
|
||||
PASS: hipify :: cuRAND/benchmark_curand_kernel.cpp (27 of 28)
|
||||
PASS: hipify :: headers_test_09.cu (28 of 28)
|
||||
Testing Time: 1.71s
|
||||
Expected Passes : 28
|
||||
CUDA 8.0 will be used for testing.
|
||||
-- Testing: 35 tests, 12 threads --
|
||||
PASS: hipify :: unit_tests/headers/headers_test_05.cu (1 of 35)
|
||||
PASS: hipify :: unit_tests/headers/headers_test_01.cu (2 of 35)
|
||||
PASS: hipify :: unit_tests/headers/headers_test_02.cu (3 of 35)
|
||||
PASS: hipify :: unit_tests/headers/headers_test_03.cu (4 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_0_based_indexing.cu (5 of 35)
|
||||
PASS: hipify :: unit_tests/headers/headers_test_06.cu (6 of 35)
|
||||
PASS: hipify :: unit_tests/headers/headers_test_07.cu (7 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/CAFFE2/caffe2_02.cu (8 of 35)
|
||||
PASS: hipify :: unit_tests/headers/headers_test_04.cu (9 of 35)
|
||||
PASS: hipify :: unit_tests/headers/headers_test_08.cu (10 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_1_based_indexing.cu (11 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuBLAS/cublas_sgemm_matrix_multiplication.cu (12 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_1_based_indexing_rocblas.cu (13 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_0_based_indexing_rocblas.cu (14 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuComplex/cuComplex_Julia.cu (15 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuBLAS/rocBLAS/cublas_sgemm_matrix_multiplication_rocblas.cu (16 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuDNN/cudnn_softmax.cu (17 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuFFT/simple_cufft.cu (18 of 35)
|
||||
PASS: hipify :: unit_tests/samples/allocators.cu (19 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_02.cu (20 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_01.cu (21 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuSPARSE/cuSPARSE_03.cu (22 of 35)
|
||||
PASS: hipify :: unit_tests/samples/coalescing.cu (23 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuDNN/cudnn_convolution_forward.cu (24 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuRAND/poisson_api_example.cu (25 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/CAFFE2/caffe2_01.cu (26 of 35)
|
||||
PASS: hipify :: unit_tests/samples/intro.cu (27 of 35)
|
||||
PASS: hipify :: unit_tests/samples/static_shared_memory.cu (28 of 35)
|
||||
PASS: hipify :: unit_tests/samples/axpy.cu (29 of 35)
|
||||
PASS: hipify :: unit_tests/samples/dynamic_shared_memory.cu (30 of 35)
|
||||
PASS: hipify :: unit_tests/samples/square.cu (31 of 35)
|
||||
PASS: hipify :: unit_tests/samples/cudaRegister.cu (32 of 35)
|
||||
PASS: hipify :: unit_tests/samples/vec_add.cu (33 of 35)
|
||||
PASS: hipify :: unit_tests/headers/headers_test_09.cu (34 of 35)
|
||||
PASS: hipify :: unit_tests/libraries/cuRAND/benchmark_curand_generate.cpp (35 of 35)
|
||||
Testing Time: 1.81s
|
||||
Expected Passes : 35
|
||||
[100%] Built target test-hipify
|
||||
```
|
||||
|
||||
@@ -318,10 +328,7 @@ To process a file, `hipify-clang` needs access to the same headers that would be
|
||||
For example:
|
||||
|
||||
```shell
|
||||
./hipify-clang \
|
||||
square.cu \
|
||||
--cuda-path=/usr/local/cuda-8.0 \
|
||||
-I /usr/local/cuda-8.0/samples/common/inc
|
||||
./hipify-clang square.cu --cuda-path=/usr/local/cuda-8.0 -I /usr/local/cuda-8.0/samples/common/inc
|
||||
```
|
||||
|
||||
`hipify-clang` arguments are given first, followed by a separator, and then the arguments you'd pass to `clang` if you
|
||||
|
||||
在新工单中引用
屏蔽一个用户