Unverified Commit e475831f authored by Samuel Ainsworth's avatar Samuel Ainsworth Committed by GitHub
Browse files

Merge pull request #217333 from ConnorBaker/fix/xgboost-cmake-cuda-compiler

xgboost: CMakeLists.txt does not respect CUDA_HOST_COMPILER
parents 6932bbe2 85323f30
Loading
Loading
Loading
Loading
+22 −6
Original line number Diff line number Diff line
{ config, stdenv, lib, fetchFromGitHub, cmake, gtest, doCheck ? true
, cudaSupport ? config.cudaSupport or false, ncclSupport ? false
, rLibrary ? false, cudaPackages, llvmPackages, R, rPackages }:
{ config
, stdenv
, lib
, fetchFromGitHub
, cmake
, gtest
, doCheck ? true
, cudaSupport ? config.cudaSupport or false
, ncclSupport ? false
, rLibrary ? false
, cudaPackages
, llvmPackages
, R
, rPackages
}:

assert ncclSupport -> cudaSupport;
# Disable regular tests when building the R package
@@ -52,8 +64,12 @@ stdenv.mkDerivation rec {
  cmakeFlags = lib.optionals doCheck [ "-DGOOGLE_TEST=ON" ]
    ++ lib.optionals cudaSupport [
    "-DUSE_CUDA=ON"
      "-DCUDA_HOST_COMPILER=${cudaPackages.cudatoolkit.cc}/bin/cc"
    ] ++ lib.optionals (cudaSupport
    # Their CMakeLists.txt does not respect CUDA_HOST_COMPILER, instead using the CXX compiler.
    # https://github.com/dmlc/xgboost/blob/ccf43d4ba0a94e2f0a3cc5a526197539ae46f410/CMakeLists.txt#L145
    "-DCMAKE_C_COMPILER=${cudaPackages.cudatoolkit.cc}/bin/gcc"
    "-DCMAKE_CXX_COMPILER=${cudaPackages.cudatoolkit.cc}/bin/g++"
  ] ++ lib.optionals
    (cudaSupport
      && lib.versionAtLeast cudaPackages.cudatoolkit.version "11.4.0")
    [ "-DBUILD_WITH_CUDA_CUB=ON" ]
    ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]