[CI] Automatically build GPU-enabled R package for Windows (#7185)
* [CI] Automatically build GPU-enabled R package for Windows * Update Jenkinsfile-win64 * Build R package for the release branch only * Update install doc
This commit is contained in:
parent
9c64618cb6
commit
3060f0b562
@ -40,7 +40,8 @@ pipeline {
|
||||
steps {
|
||||
script {
|
||||
parallel ([
|
||||
'build-win64-cuda10.1': { BuildWin64() }
|
||||
'build-win64-cuda10.1': { BuildWin64() },
|
||||
'build-rpkg-win64-cuda10.1': { BuildRPackageWithCUDAWin64() }
|
||||
])
|
||||
}
|
||||
}
|
||||
@ -115,6 +116,22 @@ def BuildWin64() {
|
||||
}
|
||||
}
|
||||
|
||||
def BuildRPackageWithCUDAWin64() {
|
||||
node('win64 && cuda10_unified') {
|
||||
unstash name: 'srcs'
|
||||
bat "nvcc --version"
|
||||
if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME.startsWith('release')) {
|
||||
bat """
|
||||
bash tests/ci_build/build_r_pkg_with_cuda_win64.sh ${commit_id}
|
||||
"""
|
||||
echo 'Uploading R tarball...'
|
||||
path = ("${BRANCH_NAME}" == 'master') ? '' : "${BRANCH_NAME}/"
|
||||
s3Upload bucket: 'xgboost-nightly-builds', path: path, acl: 'PublicRead', includePathPattern:'xgboost_r_gpu_win64_*.tar.gz'
|
||||
}
|
||||
deleteDir()
|
||||
}
|
||||
}
|
||||
|
||||
def TestWin64() {
|
||||
node('win64 && cuda10_unified') {
|
||||
unstash name: 'srcs'
|
||||
|
||||
@ -61,9 +61,12 @@ R
|
||||
and then run ``install.packages("xgboost")``. Without OpenMP, XGBoost will only use a
|
||||
single CPU core, leading to suboptimal training speed.
|
||||
|
||||
* We also provide **experimental** pre-built binary on Linux x86_64 with GPU support.
|
||||
* We also provide **experimental** pre-built binary with GPU support. With this binary,
|
||||
you will be able to use the GPU algorithm without building XGBoost from the source.
|
||||
Download the binary package from the Releases page. The file name will be of the form
|
||||
``xgboost_r_gpu_linux_[version].tar.gz``. Then install XGBoost by running:
|
||||
``xgboost_r_gpu_[os]_[version].tar.gz``, where ``[os]`` is either ``linux`` or ``win64``.
|
||||
(We build the binaries for 64-bit Linux and Windows.)
|
||||
Then install XGBoost by running:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -142,9 +145,11 @@ R
|
||||
-
|
||||
|
||||
Other than standard CRAN installation, we also provide *experimental* pre-built binary on
|
||||
Linux x86_64 with GPU support. You can go to `this page
|
||||
with GPU support. You can go to `this page
|
||||
<https://s3-us-west-2.amazonaws.com/xgboost-nightly-builds/list.html>`_, Find the commit
|
||||
ID you want to install: ``xgboost_r_gpu_linux_[commit].tar.gz``, download it then run:
|
||||
ID you want to install and then locate the file ``xgboost_r_gpu_[os]_[commit].tar.gz``,
|
||||
where ``[os]`` is either ``linux`` or ``win64``. (We build the binaries for 64-bit Linux
|
||||
and Windows.) Download it and run the following commands:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
||||
34
tests/ci_build/build_r_pkg_with_cuda_win64.sh
Normal file
34
tests/ci_build/build_r_pkg_with_cuda_win64.sh
Normal file
@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
set -x
|
||||
|
||||
if [ "$#" -ne 1 ]
|
||||
then
|
||||
echo "Build the R package tarball with CUDA code. Usage: $0 [commit hash]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
commit_hash="$1"
|
||||
|
||||
MAKE="/c/Rtools/bin/make" /c/Rtools/bin/make Rpack
|
||||
mv xgboost/ xgboost_rpack/
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -G"Visual Studio 15 2017 Win64" -DUSE_CUDA=ON -DR_LIB=ON -DLIBR_HOME="c:\\Program Files\\R\\R-3.6.3"
|
||||
cmake --build . --config Release --parallel
|
||||
cd ..
|
||||
|
||||
rm xgboost
|
||||
# This super wacky hack is found in cmake/RPackageInstall.cmake.in and
|
||||
# cmake/RPackageInstallTargetSetup.cmake. This hack lets us bypass the normal build process of R
|
||||
# and have R use xgboost.dll that we've already built.
|
||||
rm -v xgboost_rpack/configure
|
||||
rm -rfv xgboost_rpack/src
|
||||
mkdir -p xgboost_rpack/src
|
||||
cp -v lib/xgboost.dll xgboost_rpack/src/
|
||||
echo 'all:' > xgboost_rpack/src/Makefile
|
||||
echo 'all:' > xgboost_rpack/src/Makefile.win
|
||||
mv xgboost_rpack/ xgboost/
|
||||
/c/Rtools/bin/tar -cvf xgboost_r_gpu_win64_${commit_hash}.tar xgboost/
|
||||
/c/Rtools/bin/gzip -9c xgboost_r_gpu_win64_${commit_hash}.tar > xgboost_r_gpu_win64_${commit_hash}.tar.gz
|
||||
Loading…
x
Reference in New Issue
Block a user