From 52fdd6e3ccf3eaae852d5956d0762bf965429a9a Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 25 Feb 2019 18:26:25 +0300 Subject: [PATCH] [HIPIFY][doc] Update README.md + Populate Dependencies section with upcoming LLVM versions + Add clang bugs for not working configs LLVM+CUDA + Update Testing section --- hipamd/hipify-clang/README.md | 117 ++++++++++++++++++---------------- 1 file changed, 62 insertions(+), 55 deletions(-) diff --git a/hipamd/hipify-clang/README.md b/hipamd/hipify-clang/README.md index deb951efbb..ee25b23f2d 100644 --- a/hipamd/hipify-clang/README.md +++ b/hipamd/hipify-clang/README.md @@ -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 @@ ## 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** | +
**LATEST STABLE RELEASE** | +
**LATEST STABLE RELEASE** | +| 7.0.0 | 9.2 | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811) | -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | +| 7.0.1 | 9.2 | -
not working due to
the clang's bug [38811](https://bugs.llvm.org/show_bug.cgi?id=38811) | -
not working due to
the clang's bug [36384](https://bugs.llvm.org/show_bug.cgi?id=36384) | +| 7.1.0 | 9.2 (?) | -
LLVM 7.1.0
is not yet released | -
LLVM 7.1.0
is not yet released | +| 8.0.0 | 10.0 (?) | -
LLVM 8.0.0
is not yet released | -
LLVM 8.0.0
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