From 1af3b744f0f60df3c510dfdb3a974c007cac0b8d Mon Sep 17 00:00:00 2001 From: Terry Cojean Date: Wed, 4 Aug 2021 14:33:51 +0200 Subject: [PATCH 1/3] Fix README.md and INSTALL.md. Update to the new package status. Simplify the HIP related INSTALL.md section. --- INSTALL.md | 19 +------------------ README.md | 27 +++++++++++++++++---------- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 0b7e21acf16..787508b720c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -2,7 +2,7 @@ Installation Instructions {#install_ginkgo} ------------------------------------- ### Building -Use the standard cmake build procedure: +Use the standard CMake build procedure: ```sh mkdir build; cd build @@ -152,15 +152,6 @@ of HIP either at `/opt/rocm/hip` or at the path specified by `HIP_PATH` as a CMake parameter (`-DHIP_PATH=`) or environment variable (`export HIP_PATH=`), unless `-DGINKGO_BUILD_HIP=ON/OFF` is set explicitly. -#### HIP dependencies for Ginkgo -Ginkgo's HIP backend adds a dependency to the following packages: -+ HIP, -+ hipBLAS, -+ hipSPARSE, -+ rocRAND, -+ rocThrust. - - #### Changing the paths to search for HIP and other packages All HIP installation paths can be configured through the use of environment variables or CMake variables. This way of configuring the paths is currently @@ -195,14 +186,6 @@ environment variable `HIP_PLATFORM` like so: export HIP_PLATFORM=nvcc # or nvidia for ROCM >= 4.1 ``` -When using `HIP_PLATFORM=hcc` (or `amd`), note that two `HIP` compilers can be -set: the old `hcc`, or since ROCm 3.5, `clang`. Ginkgo is only compatible with -the `clang` based installations. Although this setting should be automatically -done, it is also possible to manually set the `HIP` compiler to `clang`: -``` -export HIP_COMPILER=clang -``` - #### Setting platform specific compilation flags Platform specific compilation flags can be given through the following CMake variables: diff --git a/README.md b/README.md index 9f5cffd212b..372d5c58dd7 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Prerequisites For Ginkgo core library: -* _cmake 3.9+_ +* _cmake 3.13+_ * C++14 compliant compiler, one of: * _gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+_ * _clang 3.9+_ @@ -51,6 +51,20 @@ The Ginkgo CUDA module has the following __additional__ requirements: [CUDA installation guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html) or [CUDA installation guide for Mac Os X](https://docs.nvidia.com/cuda/cuda-installation-guide-mac-os-x/index.html) +The Ginkgo HIP module has the following __additional__ requirements: + +* _ROCm 3.5+_ +* the HIP, hipBLAS, hipSPARSE, hip/rocRAND and rocThrust packages compiled with either: + * _AMD_ backend (using the `clang` compiler) + * _9.2 <= CUDA < 11_ backend + +The Ginkgo DPC++ module has the following __additional__ requirements: + +* _OneAPI 2021.3+_ +* Set `dpcpp` as the `CMAKE_CXX_COMPILER` +* The following oneAPI packages should be available: + * oneMKL + * oneDPL In addition, if you want to contribute code to Ginkgo, you will also need the following: @@ -59,21 +73,14 @@ following: * _clang-tidy_ (optional, when setting the flag `-DGINKGO_WITH_CLANG_TIDY=ON`) * _iwyu_ (Include What You Use, optional, when setting the flag `-DGINKGO_WITH_IWYU=ON`) -The Ginkgo HIP module has the following __additional__ requirements: - -* _ROCm 3.5+_ -* the HIP, hipBLAS, hipSPARSE, hip/rocRAND packages compiled with either: - * _AMD_ backend (using the `clang` compiler) - * _CUDA 9.2+_ backend. When using CUDA 10+, _cmake 3.12.2+_ is required. - ### Windows The prequirement needs to be verified -* _cmake 3.9+_ +* _cmake 3.13+_ * C++14 compliant 64-bit compiler: * _MinGW : gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+_ * _Cygwin : gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+_ - * _Microsoft Visual Studio : VS 2017 15.7+_ + * _Microsoft Visual Studio : VS 2019+_ __NOTE:__ Need to add `--autocrlf=input` after `git clone` in _Cygwin_. From ca93c28a8739dbc5d113ab22cc3bd53c0a590c13 Mon Sep 17 00:00:00 2001 From: Terry Cojean Date: Wed, 4 Aug 2021 14:34:26 +0200 Subject: [PATCH 2/3] Disable the MSVC-CUDA 10.2 job. There is an issue with the CUDA implementation which prevents a proper execution. See https://github.com/pytorch/pytorch/issues/25393. Tweaking the compiler settings would allow to get less errors, but it seems impossible to prevent the errors altogether. --- .github/workflows/windows-msvc-cuda.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/windows-msvc-cuda.yml b/.github/workflows/windows-msvc-cuda.yml index 3eb26f008e5..31eaba20d77 100644 --- a/.github/workflows/windows-msvc-cuda.yml +++ b/.github/workflows/windows-msvc-cuda.yml @@ -15,7 +15,6 @@ jobs: fail-fast: false matrix: config: - - {version: "10.2.89.20191206", name: "cuda102/release/shared", "mixed": "ON"} - {version: "latest", name: "cuda-latest/release/shared", "mixed": "OFF"} name: msvc/${{ matrix.config.name }} (only compile) runs-on: [windows-latest] From 14d097241b9575c1718cc4fe33d5c43f146b806a Mon Sep 17 00:00:00 2001 From: Terry Cojean Date: Wed, 4 Aug 2021 15:39:42 +0200 Subject: [PATCH 3/3] Review Updates. + Simplify GCC versions to an approximation of what we know for sure works/is tested. + Test `mixed` in MSVC-CUDA. Co-authored-by: Tobias Ribizel --- .github/workflows/windows-msvc-cuda.yml | 2 +- README.md | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/windows-msvc-cuda.yml b/.github/workflows/windows-msvc-cuda.yml index 31eaba20d77..90b000bfc39 100644 --- a/.github/workflows/windows-msvc-cuda.yml +++ b/.github/workflows/windows-msvc-cuda.yml @@ -15,7 +15,7 @@ jobs: fail-fast: false matrix: config: - - {version: "latest", name: "cuda-latest/release/shared", "mixed": "OFF"} + - {version: "latest", name: "cuda-latest/release/shared", "mixed": "ON"} name: msvc/${{ matrix.config.name }} (only compile) runs-on: [windows-latest] diff --git a/README.md b/README.md index 372d5c58dd7..9482af02be5 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ For Ginkgo core library: * _cmake 3.13+_ * C++14 compliant compiler, one of: - * _gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+_ + * _gcc 5.5+_ * _clang 3.9+_ * _Intel compiler 2018+_ * _Apple LLVM 8.0+_ @@ -75,11 +75,10 @@ following: ### Windows -The prequirement needs to be verified * _cmake 3.13+_ * C++14 compliant 64-bit compiler: - * _MinGW : gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+_ - * _Cygwin : gcc 5.3+, 6.3+, 7.3+, all versions after 8.1+_ + * _MinGW : gcc 5.5+_ + * _Cygwin : gcc 5.5+_ * _Microsoft Visual Studio : VS 2019+_ __NOTE:__ Need to add `--autocrlf=input` after `git clone` in _Cygwin_.