зеркало из https://github.com/microsoft/LightGBM.git
[docs] [ci] encourage use of `cmake --build` (#6368)
This commit is contained in:
Родитель
631e0a2a7b
Коммит
4332b9d515
36
.ci/test.sh
36
.ci/test.sh
|
@ -22,7 +22,6 @@ if [[ "${TASK}" == "r-package" ]] || [[ "${TASK}" == "r-rchk" ]]; then
|
|||
fi
|
||||
|
||||
if [[ "$TASK" == "cpp-tests" ]]; then
|
||||
mkdir $BUILD_DIRECTORY/build && cd $BUILD_DIRECTORY/build
|
||||
if [[ $METHOD == "with-sanitizers" ]]; then
|
||||
extra_cmake_opts="-DUSE_SANITIZER=ON"
|
||||
if [[ -n $SANITIZERS ]]; then
|
||||
|
@ -31,9 +30,9 @@ if [[ "$TASK" == "cpp-tests" ]]; then
|
|||
else
|
||||
extra_cmake_opts=""
|
||||
fi
|
||||
cmake -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF -DUSE_DEBUG=ON $extra_cmake_opts ..
|
||||
make testlightgbm -j4 || exit 1
|
||||
./../testlightgbm || exit 1
|
||||
cmake -B build -S . -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF -DUSE_DEBUG=ON $extra_cmake_opts
|
||||
cmake --build build --target testlightgbm -j4 || exit 1
|
||||
./testlightgbm || exit 1
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
@ -42,21 +41,20 @@ CONDA_PYTHON_REQUIREMENT="python=$PYTHON_VERSION[build=*cpython]"
|
|||
if [[ $TASK == "if-else" ]]; then
|
||||
mamba create -q -y -n $CONDA_ENV ${CONDA_PYTHON_REQUIREMENT} numpy
|
||||
source activate $CONDA_ENV
|
||||
mkdir $BUILD_DIRECTORY/build && cd $BUILD_DIRECTORY/build && cmake .. && make lightgbm -j4 || exit 1
|
||||
cmake -B build -S . || exit 1
|
||||
cmake --build build --target lightgbm -j4 || exit 1
|
||||
cd $BUILD_DIRECTORY/tests/cpp_tests && ../../lightgbm config=train.conf convert_model_language=cpp convert_model=../../src/boosting/gbdt_prediction.cpp && ../../lightgbm config=predict.conf output_result=origin.pred || exit 1
|
||||
cd $BUILD_DIRECTORY/build && make lightgbm -j4 || exit 1
|
||||
cd $BUILD_DIRECTORY/tests/cpp_tests && ../../lightgbm config=predict.conf output_result=ifelse.pred && python test.py || exit 1
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ $TASK == "swig" ]]; then
|
||||
mkdir $BUILD_DIRECTORY/build && cd $BUILD_DIRECTORY/build
|
||||
if [[ $OS_NAME == "macos" ]]; then
|
||||
cmake -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON ..
|
||||
cmake -B build -S . -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON
|
||||
else
|
||||
cmake -DUSE_SWIG=ON ..
|
||||
cmake -B build -S . -DUSE_SWIG=ON
|
||||
fi
|
||||
make -j4 || exit 1
|
||||
cmake --build build -j4 || exit 1
|
||||
if [[ $OS_NAME == "linux" ]] && [[ $COMPILER == "gcc" ]]; then
|
||||
objdump -T $BUILD_DIRECTORY/lib_lightgbm.so > $BUILD_DIRECTORY/objdump.log || exit 1
|
||||
objdump -T $BUILD_DIRECTORY/lib_lightgbm_swig.so >> $BUILD_DIRECTORY/objdump.log || exit 1
|
||||
|
@ -224,9 +222,7 @@ if [[ $TASK == "gpu" ]]; then
|
|||
pytest $BUILD_DIRECTORY/tests || exit 1
|
||||
exit 0
|
||||
elif [[ $METHOD == "source" ]]; then
|
||||
mkdir $BUILD_DIRECTORY/build
|
||||
cd $BUILD_DIRECTORY/build
|
||||
cmake -DUSE_GPU=ON ..
|
||||
cmake -B build -S . -DUSE_GPU=ON
|
||||
fi
|
||||
elif [[ $TASK == "cuda" ]]; then
|
||||
sed -i'.bak' 's/std::string device_type = "cpu";/std::string device_type = "cuda";/' $BUILD_DIRECTORY/include/LightGBM/config.h
|
||||
|
@ -252,9 +248,7 @@ elif [[ $TASK == "cuda" ]]; then
|
|||
pytest $BUILD_DIRECTORY/tests || exit 1
|
||||
exit 0
|
||||
elif [[ $METHOD == "source" ]]; then
|
||||
mkdir $BUILD_DIRECTORY/build
|
||||
cd $BUILD_DIRECTORY/build
|
||||
cmake -DUSE_CUDA=ON ..
|
||||
cmake -B build -S . -DUSE_CUDA=ON
|
||||
fi
|
||||
elif [[ $TASK == "mpi" ]]; then
|
||||
if [[ $METHOD == "pip" ]]; then
|
||||
|
@ -275,17 +269,13 @@ elif [[ $TASK == "mpi" ]]; then
|
|||
pytest $BUILD_DIRECTORY/tests || exit 1
|
||||
exit 0
|
||||
elif [[ $METHOD == "source" ]]; then
|
||||
mkdir $BUILD_DIRECTORY/build
|
||||
cd $BUILD_DIRECTORY/build
|
||||
cmake -DUSE_MPI=ON -DUSE_DEBUG=ON ..
|
||||
cmake -B build -S . -DUSE_MPI=ON -DUSE_DEBUG=ON
|
||||
fi
|
||||
else
|
||||
mkdir $BUILD_DIRECTORY/build
|
||||
cd $BUILD_DIRECTORY/build
|
||||
cmake ..
|
||||
cmake -B build -S .
|
||||
fi
|
||||
|
||||
make _lightgbm -j4 || exit 1
|
||||
cmake --build build --target _lightgbm -j4 || exit 1
|
||||
|
||||
cd $BUILD_DIRECTORY && sh ./build-python.sh install --precompile --user || exit 1
|
||||
pytest $BUILD_DIRECTORY/tests || exit 1
|
||||
|
|
|
@ -17,11 +17,9 @@ if ($env:TASK -eq "r-package") {
|
|||
}
|
||||
|
||||
if ($env:TASK -eq "cpp-tests") {
|
||||
mkdir $env:BUILD_SOURCESDIRECTORY/build; cd $env:BUILD_SOURCESDIRECTORY/build
|
||||
cmake -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF -DUSE_DEBUG=ON -A x64 ..
|
||||
cmake --build . --target testlightgbm --config Debug ; Check-Output $?
|
||||
cd ../Debug
|
||||
.\testlightgbm.exe ; Check-Output $?
|
||||
cmake -B build -S . -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF -DUSE_DEBUG=ON -A x64
|
||||
cmake --build build --target testlightgbm --config Debug ; Check-Output $?
|
||||
.\Debug\testlightgbm.exe ; Check-Output $?
|
||||
Exit 0
|
||||
}
|
||||
|
||||
|
@ -32,8 +30,8 @@ if ($env:TASK -eq "swig") {
|
|||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory("$env:BUILD_SOURCESDIRECTORY/swig/swigwin.zip", "$env:BUILD_SOURCESDIRECTORY/swig")
|
||||
$env:PATH = "$env:BUILD_SOURCESDIRECTORY/swig/swigwin-4.0.2;" + $env:PATH
|
||||
mkdir $env:BUILD_SOURCESDIRECTORY/build; cd $env:BUILD_SOURCESDIRECTORY/build
|
||||
cmake -A x64 -DUSE_SWIG=ON .. ; cmake --build . --target ALL_BUILD --config Release ; Check-Output $?
|
||||
cmake -B build -S . -A x64 -DUSE_SWIG=ON ; Check-Output $?
|
||||
cmake --build build --target ALL_BUILD --config Release ; Check-Output $?
|
||||
if ($env:AZURE -eq "true") {
|
||||
cp $env:BUILD_SOURCESDIRECTORY/build/lightgbmlib.jar $env:BUILD_ARTIFACTSTAGINGDIRECTORY/lightgbmlib_win.jar ; Check-Output $?
|
||||
}
|
||||
|
@ -71,8 +69,8 @@ if ($env:TASK -ne "bdist") {
|
|||
}
|
||||
|
||||
if ($env:TASK -eq "regular") {
|
||||
mkdir $env:BUILD_SOURCESDIRECTORY/build; cd $env:BUILD_SOURCESDIRECTORY/build
|
||||
cmake -A x64 .. ; cmake --build . --target ALL_BUILD --config Release ; Check-Output $?
|
||||
cmake -B build -S . -A x64 ; Check-Output $?
|
||||
cmake --build build --target ALL_BUILD --config Release ; Check-Output $?
|
||||
cd $env:BUILD_SOURCESDIRECTORY
|
||||
sh $env:BUILD_SOURCESDIRECTORY/build-python.sh install --precompile ; Check-Output $?
|
||||
cp $env:BUILD_SOURCESDIRECTORY/Release/lib_lightgbm.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
|
||||
|
|
|
@ -21,11 +21,10 @@ RUN git clone \
|
|||
--branch stable \
|
||||
--depth 1 \
|
||||
https://github.com/Microsoft/LightGBM && \
|
||||
mkdir LightGBM/build && \
|
||||
cd LightGBM/build && \
|
||||
cmake .. && \
|
||||
make -j4 && \
|
||||
make install && \
|
||||
cd ./Lightgbm && \
|
||||
cmake -B build -S . && \
|
||||
cmake --build build -j4 && \
|
||||
cmake --install build && \
|
||||
cd "${HOME}" && \
|
||||
rm -rf LightGBM
|
||||
|
||||
|
|
|
@ -40,9 +40,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||
# LightGBM
|
||||
WORKDIR /opt
|
||||
RUN git clone --recursive --branch stable --depth 1 https://github.com/Microsoft/LightGBM && \
|
||||
cd LightGBM && mkdir build && cd build && \
|
||||
cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=${OPENCL_LIBRARIES}/libOpenCL.so.1 -DOpenCL_INCLUDE_DIR=$OPENCL_INCLUDE_DIR .. && \
|
||||
make OPENCL_HEADERS=$OPENCL_INCLUDE_DIR LIBOPENCL=$OPENCL_LIBRARIES
|
||||
cd LightGBM && \
|
||||
cmake -B build -S . -DUSE_GPU=1 -DOpenCL_LIBRARY=${OPENCL_LIBRARIES}/libOpenCL.so.1 -DOpenCL_INCLUDE_DIR=$OPENCL_INCLUDE_DIR && \
|
||||
OPENCL_HEADERS=$OPENCL_INCLUDE_DIR LIBOPENCL=$OPENCL_LIBRARIES cmake --build build
|
||||
|
||||
FROM gcr.io/distroless/cc-debian10
|
||||
COPY --from=build \
|
||||
|
|
|
@ -40,9 +40,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||
# LightGBM
|
||||
WORKDIR /opt
|
||||
RUN git clone --recursive --branch stable --depth 1 https://github.com/Microsoft/LightGBM && \
|
||||
cd LightGBM && mkdir build && cd build && \
|
||||
cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=${OPENCL_LIBRARIES}/libOpenCL.so.1 -DOpenCL_INCLUDE_DIR=$OPENCL_INCLUDE_DIR .. && \
|
||||
make OPENCL_HEADERS=$OPENCL_INCLUDE_DIR LIBOPENCL=$OPENCL_LIBRARIES
|
||||
cd LightGBM && \
|
||||
cmake -B build -S . -DUSE_GPU=1 -DOpenCL_LIBRARY=${OPENCL_LIBRARIES}/libOpenCL.so.1 -DOpenCL_INCLUDE_DIR=$OPENCL_INCLUDE_DIR && \
|
||||
OPENCL_HEADERS=$OPENCL_INCLUDE_DIR LIBOPENCL=$OPENCL_LIBRARIES cmake --build build
|
||||
|
||||
FROM nvidia/opencl:runtime
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
|
|
|
@ -82,9 +82,9 @@ RUN conda config --set always_yes yes --set changeps1 no && \
|
|||
|
||||
RUN cd /usr/local/src && mkdir lightgbm && cd lightgbm && \
|
||||
git clone --recursive --branch stable --depth 1 https://github.com/microsoft/LightGBM && \
|
||||
cd LightGBM && mkdir build && cd build && \
|
||||
cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ .. && \
|
||||
make OPENCL_HEADERS=/usr/local/cuda-8.0/targets/x86_64-linux/include LIBOPENCL=/usr/local/cuda-8.0/targets/x86_64-linux/lib
|
||||
cd LightGBM && \
|
||||
cmake -B build -S . -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ && \
|
||||
OPENCL_HEADERS=/usr/local/cuda-8.0/targets/x86_64-linux/include LIBOPENCL=/usr/local/cuda-8.0/targets/x86_64-linux/lib cmake --build build
|
||||
|
||||
ENV PATH /usr/local/src/lightgbm/LightGBM:${PATH}
|
||||
|
||||
|
|
|
@ -59,13 +59,10 @@ Now we are ready to checkout LightGBM and compile it with GPU support:
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_GPU=1 ..
|
||||
cmake -B build -S . -DUSE_GPU=1
|
||||
# if you have installed NVIDIA CUDA to a customized location, you should specify paths to OpenCL headers and library like the following:
|
||||
# cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ ..
|
||||
make -j$(nproc)
|
||||
cd ..
|
||||
# cmake -B build -S . -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/
|
||||
cmake --build build -j$(nproc)
|
||||
|
||||
You will see two binaries are generated, ``lightgbm`` and ``lib_lightgbm.so``.
|
||||
|
||||
|
|
|
@ -77,10 +77,8 @@ From Command Line
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -A x64 ..
|
||||
cmake --build . --target ALL_BUILD --config Release
|
||||
cmake -B build -S . -A x64
|
||||
cmake --build build --target ALL_BUILD --config Release
|
||||
|
||||
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
|
||||
|
||||
|
@ -95,14 +93,12 @@ MinGW-w64
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "MinGW Makefiles" ..
|
||||
mingw32-make.exe -j4
|
||||
cmake -B build -S . -G "MinGW Makefiles"
|
||||
cmake --build build -j4
|
||||
|
||||
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
|
||||
|
||||
**Note**: You may need to run the ``cmake -G "MinGW Makefiles" ..`` one more time if you encounter the ``sh.exe was found in your PATH`` error.
|
||||
**Note**: You may need to run the ``cmake -B build -S . -G "MinGW Makefiles"`` one more time if you encounter the ``sh.exe was found in your PATH`` error.
|
||||
|
||||
It is recommended that you use **Visual Studio** since it has better multithreading efficiency in **Windows** for many-core systems
|
||||
(see `Question 4 <./FAQ.rst#i-am-using-windows-should-i-use-visual-studio-or-mingw-for-compiling-lightgbm>`__ and `Question 8 <./FAQ.rst#cpu-usage-is-low-like-10-in-windows-when-using-lightgbm-on-very-large-datasets-with-many-core-systems>`__).
|
||||
|
@ -122,10 +118,8 @@ On Linux LightGBM can be built using **CMake** and **gcc** or **Clang**.
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make -j4
|
||||
cmake -B build -S .
|
||||
cmake --build build -j4
|
||||
|
||||
**Note**: glibc >= 2.28 is required.
|
||||
|
||||
|
@ -142,10 +136,8 @@ On Linux, LightGBM can also be built with `Ninja <https://ninja-build.org/>`__ i
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G 'Ninja' ..
|
||||
ninja -j2
|
||||
cmake -B build -S . -G 'Ninja'
|
||||
cmake --build build -j2
|
||||
|
||||
macOS
|
||||
~~~~~
|
||||
|
@ -185,10 +177,8 @@ Build from GitHub
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make -j4
|
||||
cmake -B build -S .
|
||||
cmake --build build -j4
|
||||
|
||||
gcc
|
||||
^^^
|
||||
|
@ -212,10 +202,8 @@ gcc
|
|||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
export CXX=g++-7 CC=gcc-7 # replace "7" with version of gcc installed on your machine
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make -j4
|
||||
cmake -B build -S .
|
||||
cmake --build build -j4
|
||||
|
||||
Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.
|
||||
|
||||
|
@ -274,10 +262,8 @@ From Command Line
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -A x64 -DUSE_OPENMP=OFF ..
|
||||
cmake --build . --target ALL_BUILD --config Release
|
||||
cmake -B build -S . -A x64 -DUSE_OPENMP=OFF
|
||||
cmake --build build --target ALL_BUILD --config Release
|
||||
|
||||
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
|
||||
|
||||
|
@ -292,14 +278,12 @@ MinGW-w64
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "MinGW Makefiles" -DUSE_OPENMP=OFF ..
|
||||
mingw32-make.exe -j4
|
||||
cmake -B build -S . -G "MinGW Makefiles" -DUSE_OPENMP=OFF
|
||||
cmake --build build -j4
|
||||
|
||||
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
|
||||
|
||||
**Note**: You may need to run the ``cmake -G "MinGW Makefiles" -DUSE_OPENMP=OFF ..`` one more time if you encounter the ``sh.exe was found in your PATH`` error.
|
||||
**Note**: You may need to run the ``cmake -B build -S . -G "MinGW Makefiles" -DUSE_OPENMP=OFF`` one more time if you encounter the ``sh.exe was found in your PATH`` error.
|
||||
|
||||
Linux
|
||||
^^^^^
|
||||
|
@ -314,10 +298,8 @@ On Linux a version of LightGBM without OpenMP support can be built using **CMake
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_OPENMP=OFF ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_OPENMP=OFF
|
||||
cmake --build build -j4
|
||||
|
||||
**Note**: glibc >= 2.14 is required.
|
||||
|
||||
|
@ -343,10 +325,8 @@ Only **Apple Clang** version 8.1 or higher is supported.
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_OPENMP=OFF ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_OPENMP=OFF
|
||||
cmake --build build -j4
|
||||
|
||||
gcc
|
||||
***
|
||||
|
@ -370,10 +350,8 @@ gcc
|
|||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
export CXX=g++-7 CC=gcc-7 # replace "7" with version of gcc installed on your machine
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_OPENMP=OFF ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_OPENMP=OFF
|
||||
cmake --build build -j4
|
||||
|
||||
Build MPI Version
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
@ -422,10 +400,8 @@ From Command Line
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -A x64 -DUSE_MPI=ON ..
|
||||
cmake --build . --target ALL_BUILD --config Release
|
||||
cmake -B build -S . -A x64 -DUSE_MPI=ON
|
||||
cmake --build build --target ALL_BUILD --config Release
|
||||
|
||||
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
|
||||
|
||||
|
@ -446,10 +422,8 @@ On Linux an MPI version of LightGBM can be built using **Open MPI**, **CMake** a
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_MPI=ON ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_MPI=ON
|
||||
cmake --build build -j4
|
||||
|
||||
**Note**: glibc >= 2.14 is required.
|
||||
|
||||
|
@ -489,10 +463,8 @@ Only **Apple Clang** version 8.1 or higher is supported.
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_MPI=ON ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_MPI=ON
|
||||
cmake --build build -j4
|
||||
|
||||
gcc
|
||||
***
|
||||
|
@ -522,10 +494,8 @@ gcc
|
|||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
export CXX=g++-7 CC=gcc-7 # replace "7" with version of gcc installed on your machine
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_MPI=ON ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_MPI=ON
|
||||
cmake --build build -j4
|
||||
|
||||
Build GPU Version
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
@ -555,12 +525,10 @@ To build LightGBM GPU version, run the following commands:
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_GPU=1 ..
|
||||
cmake -B build -S . -DUSE_GPU=1
|
||||
# if you have installed NVIDIA CUDA to a customized location, you should specify paths to OpenCL headers and library like the following:
|
||||
# cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ ..
|
||||
make -j4
|
||||
# cmake -B build -S . -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/
|
||||
cmake --build build
|
||||
|
||||
**Note**: glibc >= 2.14 is required.
|
||||
|
||||
|
@ -605,12 +573,10 @@ Following procedure is for the **MSVC** (Microsoft Visual C++) build.
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:/local/boost_1_63_0 -DBOOST_LIBRARYDIR=C:/local/boost_1_63_0/lib64-msvc-14.0 ..
|
||||
cmake -B build -S . -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:/local/boost_1_63_0 -DBOOST_LIBRARYDIR=C:/local/boost_1_63_0/lib64-msvc-14.0
|
||||
# if you have installed NVIDIA CUDA to a customized location, you should specify paths to OpenCL headers and library like the following:
|
||||
# cmake -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:/local/boost_1_63_0 -DBOOST_LIBRARYDIR=C:/local/boost_1_63_0/lib64-msvc-14.0 -DOpenCL_LIBRARY="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/lib/x64/OpenCL.lib" -DOpenCL_INCLUDE_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/include" ..
|
||||
cmake --build . --target ALL_BUILD --config Release
|
||||
# cmake -B build -S . -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:/local/boost_1_63_0 -DBOOST_LIBRARYDIR=C:/local/boost_1_63_0/lib64-msvc-14.0 -DOpenCL_LIBRARY="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/lib/x64/OpenCL.lib" -DOpenCL_INCLUDE_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/include"
|
||||
cmake --build build --target ALL_BUILD --config Release
|
||||
|
||||
**Note**: ``C:/local/boost_1_63_0`` and ``C:/local/boost_1_63_0/lib64-msvc-14.0`` are locations of your **Boost** binaries (assuming you've downloaded 1.63.0 version for Visual Studio 2015).
|
||||
|
||||
|
@ -644,10 +610,8 @@ To build LightGBM CUDA version, run the following commands:
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_CUDA=1 ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_CUDA=1
|
||||
cmake --build build -j4
|
||||
|
||||
**Note**: glibc >= 2.14 is required.
|
||||
|
||||
|
@ -682,16 +646,14 @@ On Linux a HDFS version of LightGBM can be built using **CMake** and **gcc**.
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_HDFS=ON ..
|
||||
cmake -B build -S . -DUSE_HDFS=ON
|
||||
# if you have installed HDFS to a customized location, you should specify paths to HDFS headers (hdfs.h) and library (libhdfs.so) like the following:
|
||||
# cmake \
|
||||
# -DUSE_HDFS=ON \
|
||||
# -DHDFS_LIB="/opt/cloudera/parcels/CDH-5.14.4-1.cdh5.14.4.p0.3/lib64/libhdfs.so" \
|
||||
# -DHDFS_INCLUDE_DIR="/opt/cloudera/parcels/CDH-5.14.4-1.cdh5.14.4.p0.3/include/" \
|
||||
# ..
|
||||
make -j4
|
||||
cmake --build build -j4
|
||||
|
||||
**Note**: glibc >= 2.14 is required.
|
||||
|
||||
|
@ -720,10 +682,8 @@ VS Build Tools
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -A x64 -DUSE_SWIG=ON ..
|
||||
cmake --build . --target ALL_BUILD --config Release
|
||||
cmake -B build -S . -A x64 -DUSE_SWIG=ON
|
||||
cmake --build build --target ALL_BUILD --config Release
|
||||
|
||||
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/Release`` folder.
|
||||
|
||||
|
@ -740,14 +700,12 @@ MinGW-w64
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G "MinGW Makefiles" -DUSE_SWIG=ON ..
|
||||
mingw32-make.exe -j4
|
||||
cmake -B build -S . -G "MinGW Makefiles" -DUSE_SWIG=ON
|
||||
cmake --build build -j4
|
||||
|
||||
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/`` folder.
|
||||
|
||||
**Note**: You may need to run the ``cmake -G "MinGW Makefiles" -DUSE_SWIG=ON ..`` one more time if you encounter the ``sh.exe was found in your PATH`` error.
|
||||
**Note**: You may need to run the ``cmake -B build -S . -G "MinGW Makefiles" -DUSE_SWIG=ON`` one more time if you encounter the ``sh.exe was found in your PATH`` error.
|
||||
|
||||
It is recommended to use **VS Build Tools (Visual Studio)** since it has better multithreading efficiency in **Windows** for many-core systems
|
||||
(see `Question 4 <./FAQ.rst#i-am-using-windows-should-i-use-visual-studio-or-mingw-for-compiling-lightgbm>`__ and `Question 8 <./FAQ.rst#cpu-usage-is-low-like-10-in-windows-when-using-lightgbm-on-very-large-datasets-with-many-core-systems>`__).
|
||||
|
@ -767,10 +725,8 @@ On Linux a Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMa
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_SWIG=ON ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_SWIG=ON
|
||||
cmake --build build -j4
|
||||
|
||||
**Note**: glibc >= 2.14 is required.
|
||||
|
||||
|
@ -807,10 +763,8 @@ Only **Apple Clang** version 8.1 or higher is supported.
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON
|
||||
cmake --build build -j4
|
||||
|
||||
gcc
|
||||
***
|
||||
|
@ -834,10 +788,8 @@ gcc
|
|||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
export CXX=g++-7 CC=gcc-7 # replace "7" with version of gcc installed on your machine
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON ..
|
||||
make -j4
|
||||
cmake -B build -S . -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON
|
||||
cmake --build build -j4
|
||||
|
||||
Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.
|
||||
|
||||
|
@ -857,10 +809,8 @@ On Windows, C++ unit tests of LightGBM can be built using **CMake** and **VS Bui
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -A x64 -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF ..
|
||||
cmake --build . --target testlightgbm --config Debug
|
||||
cmake -B build -S . -A x64 -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF
|
||||
cmake --build build --target testlightgbm --config Debug
|
||||
|
||||
The ``.exe`` file will be in ``LightGBM/Debug`` folder.
|
||||
|
||||
|
@ -877,10 +827,8 @@ On Linux a C++ unit tests of LightGBM can be built using **CMake** and **gcc** o
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF ..
|
||||
make testlightgbm -j4
|
||||
cmake -B build -S . -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF
|
||||
cmake --build build --target testlightgbm -j4
|
||||
|
||||
**Note**: glibc >= 2.14 is required.
|
||||
|
||||
|
@ -906,10 +854,8 @@ Only **Apple Clang** version 8.1 or higher is supported.
|
|||
|
||||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF ..
|
||||
make testlightgbm -j4
|
||||
cmake -B build -S . -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF
|
||||
cmake --build build --target testlightgbm -j4
|
||||
|
||||
gcc
|
||||
***
|
||||
|
@ -933,10 +879,8 @@ gcc
|
|||
git clone --recursive https://github.com/microsoft/LightGBM
|
||||
cd LightGBM
|
||||
export CXX=g++-7 CC=gcc-7 # replace "7" with version of gcc installed on your machine
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF ..
|
||||
make testlightgbm -j4
|
||||
cmake -B build -S . -DBUILD_CPP_TEST=ON -DUSE_OPENMP=OFF
|
||||
cmake --build build --target testlightgbm -j4
|
||||
|
||||
|
||||
.. |download artifacts| image:: ./_static/images/artifacts-not-available.svg
|
||||
|
|
|
@ -49,7 +49,7 @@ TEST(SingleRow, JustWorks) {
|
|||
&output_size);
|
||||
EXPECT_EQ(0, result) << "LGBM_BoosterCalcNumPredict result code: " << result;
|
||||
|
||||
std::ifstream test_file("../examples/binary_classification/binary.test");
|
||||
std::ifstream test_file("examples/binary_classification/binary.test");
|
||||
std::vector<double> test;
|
||||
double x;
|
||||
int test_set_size = 0;
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace LightGBM {
|
|||
* Creates a Dataset from the internal repository examples.
|
||||
*/
|
||||
int TestUtils::LoadDatasetFromExamples(const char* filename, const char* config, DatasetHandle* out) {
|
||||
std::string fullPath("../examples/");
|
||||
std::string fullPath("examples/");
|
||||
fullPath += filename;
|
||||
Log::Info("Debug sample data path: %s", fullPath.c_str());
|
||||
return LGBM_DatasetCreateFromFile(
|
||||
|
|
Загрузка…
Ссылка в новой задаче