Skip to content

Commit

Permalink
ppc64le: Workaround "error: identifier "__ieee128" is undefined"
Browse files Browse the repository at this point in the history
This appears to be a bug with GCC 8+ and CUDA 10. We need to
disable quadruple precision there, which shouldn't be a huge
issue.
LLNL/blt#341 (comment)

libstdc++8 with gcc 8.2 has a bug that it doesn't compile with
-mno-float128. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84654
We would need to upgrade to 8.3 at least. However, I didn't
manage to do that via conda in our Jenkinsfile. Went with 7.2
instead.

Signed-off-by: Max H. Gerlach <git@maxgerlach.de>
  • Loading branch information
maxhgerlach committed Dec 16, 2021
1 parent 616c419 commit c964fa2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
7 changes: 6 additions & 1 deletion CMakeLists.txt
Expand Up @@ -156,8 +156,13 @@ endif()
include(CheckLanguage)
check_language(CUDA)
if (CMAKE_CUDA_COMPILER)
if ((CMAKE_CXX_COMPILER_ID MATCHES GNU) AND (CMAKE_SYSTEM_PROCESSOR MATCHES ppc64le))
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0)
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -mno-float128")
endif ()
endif ()
enable_language(CUDA)
endif()
endif ()

macro(ADD_CUDA)
find_package(CUDAToolkit REQUIRED)
Expand Down
4 changes: 2 additions & 2 deletions Jenkinsfile.ppc64le
Expand Up @@ -24,9 +24,9 @@ pipeline {
sh '''#!/usr/bin/env bash
git submodule update --init --recursive
. ${CONDA_INIT}
conda activate ${CONDA_ENV}
conda install -y "cmake>=3.18"
set -xe
conda activate ${CONDA_ENV}
conda install -y "gcc=7.2"
HOROVOD_WITHOUT_MXNET=1 HOROVOD_WITHOUT_GLOO=1 HOROVOD_WITH_PYTORCH=1 HOROVOD_WITH_TENSORFLOW=1 \
HOROVOD_CUDA_HOME="/usr/local/cuda" HOROVOD_GPU_OPERATIONS=NCCL \
pip install -v . --no-cache-dir --no-deps
Expand Down

0 comments on commit c964fa2

Please sign in to comment.