Installation-Guide.rst 21.8 KB
Newer Older
1
2
3
Installation Guide
==================

4
Here is the guide for the build of LightGBM CLI version.
5
6
7

For the build of Python-package and R-package, please refer to `Python-package`_ and `R-package`_ folders respectively.

8
9
Also you can download artifacts of the latest successful build in master branch: |download artifacts|.

10
11
12
13
14
15
16
17
18
19
**Contents**

-  `Windows <#windows>`__

-  `Linux <#linux>`__

-  `macOS <#macos>`__

-  `Docker <#docker>`__

20
21
- `Threadless Version (not Recommended) <#build-threadless-version-not-recommended>`__

22
23
24
25
26
27
28
29
-  `MPI Version <#build-mpi-version>`__

-  `GPU Version <#build-gpu-version>`__

-  `HDFS Version <#build-hdfs-version>`__

-  `Java Wrapper <#build-java-wrapper>`__

30
31
32
Windows
~~~~~~~

33
34
35
36
On Windows LightGBM can be built using

- **Visual Studio**;

37
- **CMake** and **VS Build Tools**;
38
39

- **CMake** and **MinGW**.
40

41
42
Visual Studio (or VS Build Tools)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
43
44
45
46

With GUI
********

47
1. Install `Visual Studio`_ (2015 or newer).
48
49
50
51
52

2. Download `zip archive`_ and unzip it.

3. Go to ``LightGBM-master/windows`` folder.

53
4. Open ``LightGBM.sln`` file with **Visual Studio**, choose ``Release`` configuration and click ``BUILD`` -> ``Build Solution (Ctrl+Shift+B)``.
54

55
   If you have errors about **Platform Toolset**, go to ``PROJECT`` -> ``Properties`` -> ``Configuration Properties`` -> ``General`` and select the toolset installed on your machine.
56

57
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release`` folder.
58
59
60
61

From Command Line
*****************

62
1. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is already installed).
63
64
65
66
67

2. Run the following commands:

   .. code::

68
     git clone --recursive https://github.com/microsoft/LightGBM
69
70
71
     cd LightGBM
     mkdir build
     cd build
72
     cmake -A x64 ..
73
74
     cmake --build . --target ALL_BUILD --config Release

75
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
76

77
78
MinGW-w64
^^^^^^^^^
79
80
81
82
83
84
85

1. Install `Git for Windows`_, `CMake`_ and `MinGW-w64`_.

2. Run the following commands:

   .. code::

86
     git clone --recursive https://github.com/microsoft/LightGBM
87
88
89
90
91
92
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" ..
     mingw32-make.exe -j4

93
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
94

95
**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.
96

97
98
It is recommended to use **Visual Studio** for its 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>`__).
99
100

Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.
101

102
103
104
Linux
~~~~~

105
On Linux LightGBM can be built using **CMake** and **gcc** or **Clang**.
106

107
1. Install `CMake`_.
108

109
110
111
112
2. Run the following commands:

   .. code::

113
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
114
115
116
     mkdir build ; cd build
     cmake ..
     make -j4
117
118
119

**Note**: glibc >= 2.14 is required.

120
Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.
121

122
123
macOS
~~~~~
124

125
126
127
128
On macOS LightGBM can be built using **CMake** and **Apple Clang** or **gcc**.

Apple Clang
^^^^^^^^^^^
fanliwen's avatar
fanliwen committed
129

130
Only **Apple Clang** version 8.1 or higher is supported.
fanliwen's avatar
fanliwen committed
131

Nikita Titov's avatar
Nikita Titov committed
132
133
1. Install `CMake`_ (3.12 or higher):

134
   .. code::
Nikita Titov's avatar
Nikita Titov committed
135

136
     brew install cmake
fanliwen's avatar
fanliwen committed
137

138
2. Install **OpenMP**:
fanliwen's avatar
fanliwen committed
139
140
141
142

   .. code::

     brew install libomp
143
144
145
146
147

3. Run the following commands:

   .. code::

148
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
fanliwen's avatar
fanliwen committed
149
     mkdir build ; cd build
150
151
152
153
154
155
156
157
158
159
160

     # For Mojave (10.14)
     cmake \
       -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \
       -DOpenMP_C_LIB_NAMES="omp" \
       -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \
       -DOpenMP_CXX_LIB_NAMES="omp" \
       -DOpenMP_omp_LIBRARY=$(brew --prefix libomp)/lib/libomp.dylib \
       ..

     # For High Sierra or earlier (<= 10.13)
fanliwen's avatar
fanliwen committed
161
     cmake ..
162

fanliwen's avatar
fanliwen committed
163
164
     make -j4

165
166
gcc
^^^
167

168
1. Install `CMake`_ (3.2 or higher):
169

170
   .. code::
171

172
     brew install cmake
173

174
2. Install **gcc**:
175

176
   .. code::
177

178
179
180
181
182
183
     brew install gcc

3. Run the following commands:

   .. code::

184
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
185
186
187
188
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
     mkdir build ; cd build
     cmake ..
     make -j4
189

190
Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.
191

192
193
194
Docker
~~~~~~

195
Refer to `Docker folder <https://github.com/microsoft/LightGBM/tree/master/docker>`__.
196

197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
Build Threadless Version (not Recommended)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The default build version of LightGBM is based on OpenMP.
However, you can build the LightGBM without OpenMP support, but it is **strongly not recommended**.

Windows
^^^^^^^

On Windows version of LightGBM without OpenMP support can be built using

- **Visual Studio**;

- **CMake** and **VS Build Tools**;

- **CMake** and **MinGW**.

Visual Studio (or VS Build Tools)
*********************************

With GUI
--------

1. Install `Visual Studio`_ (2015 or newer).

2. Download `zip archive`_ and unzip it.

3. Go to ``LightGBM-master/windows`` folder.

4. Open ``LightGBM.sln`` file with **Visual Studio**.

5. Go to ``PROJECT`` -> ``Properties`` -> ``Configuration Properties`` -> ``C/C++`` -> ``Language`` and change the ``OpenMP Support`` property to ``No (/openmp-)``.

6. Get back to the project's main screen, then choose ``Release`` configuration and click ``BUILD`` -> ``Build Solution (Ctrl+Shift+B)``.

   If you have errors about **Platform Toolset**, go to ``PROJECT`` -> ``Properties`` -> ``Configuration Properties`` -> ``General`` and select the toolset installed on your machine.

234
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release`` folder.
235
236
237
238
239
240
241
242
243
244

From Command Line
-----------------

1. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is already installed).

2. Run the following commands:

   .. code::

245
     git clone --recursive https://github.com/microsoft/LightGBM
246
247
248
     cd LightGBM
     mkdir build
     cd build
249
     cmake -A x64 -DUSE_OPENMP=OFF ..
250
251
     cmake --build . --target ALL_BUILD --config Release

252
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
253
254
255
256
257
258
259
260
261
262

MinGW-w64
*********

1. Install `Git for Windows`_, `CMake`_ and `MinGW-w64`_.

2. Run the following commands:

   .. code::

263
     git clone --recursive https://github.com/microsoft/LightGBM
264
265
266
267
268
269
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" -DUSE_OPENMP=OFF ..
     mingw32-make.exe -j4

270
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
271
272
273
274
275
276
277
278
279
280
281
282
283
284

**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.

Linux
^^^^^

On Linux version of LightGBM without OpenMP support can be built using **CMake** and **gcc** or **Clang**.

1. Install `CMake`_.

2. Run the following commands:

   .. code::

285
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
     mkdir build ; cd build
     cmake -DUSE_OPENMP=OFF ..
     make -j4

**Note**: glibc >= 2.14 is required.

macOS
^^^^^

On macOS version of LightGBM without OpenMP support can be built using **CMake** and **Apple Clang** or **gcc**.

Apple Clang
***********

Only **Apple Clang** version 8.1 or higher is supported.

1. Install `CMake`_ (3.12 or higher):

   .. code::

     brew install cmake

2. Run the following commands:

   .. code::

312
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
     mkdir build ; cd build
     cmake -DUSE_OPENMP=OFF ..
     make -j4

gcc
***

1. Install `CMake`_ (3.2 or higher):

   .. code::

     brew install cmake

2. Install **gcc**:

   .. code::

     brew install gcc

3. Run the following commands:

   .. code::

336
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
337
338
339
340
341
     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

342
343
344
Build MPI Version
~~~~~~~~~~~~~~~~~

345
346
The default build version of LightGBM is based on socket. LightGBM also supports MPI.
`MPI`_ is a high performance communication approach with `RDMA`_ support.
347
348
349
350
351
352

If you need to run a parallel learning application with high performance communication, you can build the LightGBM with MPI support.

Windows
^^^^^^^

353
354
355
356
On Windows MPI version of LightGBM can be built using

- **MS MPI** and **Visual Studio**;

357
- **MS MPI**, **CMake** and **VS Build Tools**.
358

359
360
361
With GUI
********

362
1. You need to install `MS MPI`_ first. Both ``msmpisdk.msi`` and ``msmpisetup.exe`` are needed.
363

364
2. Install `Visual Studio`_ (2015 or newer).
365
366
367
368
369

3. Download `zip archive`_ and unzip it.

4. Go to ``LightGBM-master/windows`` folder.

370
5. Open ``LightGBM.sln`` file with **Visual Studio**, choose ``Release_mpi`` configuration and click ``BUILD`` -> ``Build Solution (Ctrl+Shift+B)``.
371

372
   If you have errors about **Platform Toolset**, go to ``PROJECT`` -> ``Properties`` -> ``Configuration Properties`` -> ``General`` and select the toolset installed on your machine.
373

374
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release_mpi`` folder.
375
376
377
378

From Command Line
*****************

379
1. You need to install `MS MPI`_ first. Both ``msmpisdk.msi`` and ``msmpisetup.exe`` are needed.
380

381
2. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is already installed).
382
383
384
385
386

3. Run the following commands:

   .. code::

387
     git clone --recursive https://github.com/microsoft/LightGBM
388
389
390
     cd LightGBM
     mkdir build
     cd build
391
     cmake -A x64 -DUSE_MPI=ON ..
392
393
     cmake --build . --target ALL_BUILD --config Release

394
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
395

396
**Note**: Building MPI version by **MinGW** is not supported due to the miss of MPI library in it.
397
398
399
400

Linux
^^^^^

401
On Linux MPI version of LightGBM can be built using **Open MPI**, **CMake** and **gcc** or **Clang**.
402

403
1. Install `Open MPI`_.
404

405
2. Install `CMake`_.
406

407
408
409
410
3. Run the following commands:

   .. code::

411
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
412
413
414
     mkdir build ; cd build
     cmake -DUSE_MPI=ON ..
     make -j4
415
416
417

**Note**: glibc >= 2.14 is required.

418
419
macOS
^^^^^
420

421
On macOS MPI version of LightGBM can be built using **Open MPI**, **CMake** and **Apple Clang** or **gcc**.
422

423
424
Apple Clang
***********
425

426
Only **Apple Clang** version 8.1 or higher is supported.
427

428
1. Install `CMake`_ (3.12 or higher):
429

430
   .. code::
431

432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
     brew install cmake

2. Install **OpenMP**:

   .. code::

     brew install libomp

3. Install **Open MPI**:

   .. code::

     brew install open-mpi

4. Run the following commands:

   .. code::

450
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
451
     mkdir build ; cd build
452
453
454
455
456
457
458
459
460
461
462
463

     # For Mojave (10.14)
     cmake \
       -DUSE_MPI=ON \
       -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \
       -DOpenMP_C_LIB_NAMES="omp" \
       -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \
       -DOpenMP_CXX_LIB_NAMES="omp" \
       -DOpenMP_omp_LIBRARY=$(brew --prefix libomp)/lib/libomp.dylib \
       ..

     # For High Sierra or earlier (<= 10.13)
464
     cmake -DUSE_MPI=ON ..
465

466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
     make -j4

gcc
***

1. Install `CMake`_ (3.2 or higher):

   .. code::

     brew install cmake

2. Install **gcc**:

   .. code::

     brew install gcc

3. Install **Open MPI**:

   .. code::

     brew install open-mpi

4. Run the following commands:

   .. code::

493
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
494
495
496
497
     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
498
499
500
501
502
503
504

Build GPU Version
~~~~~~~~~~~~~~~~~

Linux
^^^^^

505
506
On Linux GPU version of LightGBM can be built using **OpenCL**, **Boost**, **CMake** and **gcc** or **Clang**.

507
508
The following dependencies should be installed before compilation:

509
-  **OpenCL** 1.2 headers and libraries, which is usually provided by GPU manufacture.
510

511
   The generic OpenCL ICD packages (for example, Debian package ``ocl-icd-libopencl1`` and ``ocl-icd-opencl-dev``) can also be used.
512

513
-  **libboost** 1.56 or later (1.61 or later is recommended).
514
515
516
517
518

   We use Boost.Compute as the interface to GPU, which is part of the Boost library since version 1.61. However, since we include the source code of Boost.Compute as a submodule, we only require the host has Boost 1.56 or later installed. We also use Boost.Align for memory allocation. Boost.Compute requires Boost.System and Boost.Filesystem to store offline kernel cache.

   The following Debian packages should provide necessary Boost libraries: ``libboost-dev``, ``libboost-system-dev``, ``libboost-filesystem-dev``.

519
-  **CMake** 3.2 or later.
520
521
522
523
524

To build LightGBM GPU version, run the following commands:

.. code::

525
  git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
526
527
  mkdir build ; cd build
  cmake -DUSE_GPU=1 ..
528
529
  # 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/ ..
530
531
532
533
534
  make -j4

Windows
^^^^^^^

535
On Windows GPU version of LightGBM can be built using **OpenCL**, **Boost**, **CMake** and **VS Build Tools** or **MinGW**.
536

537
If you use **MinGW**, the build procedure is similar to the build on Linux. Refer to `GPU Windows Compilation <./GPU-Windows.rst>`__ to get more details.
538

539
540
Following procedure is for the **MSVC** (Microsoft Visual C++) build.

541
1. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is installed).
542
543
544
545
546

2. Install **OpenCL** for Windows. The installation depends on the brand (NVIDIA, AMD, Intel) of your GPU card.

   - For running on Intel, get `Intel SDK for OpenCL`_.

547
   - For running on AMD, get AMD APP SDK.
548
549
550

   - For running on NVIDIA, get `CUDA Toolkit`_.

551
552
   Further reading and correspondence table: `GPU SDK Correspondence and Device Targeting Table <./GPU-Targets.rst>`__.

Nikita Titov's avatar
Nikita Titov committed
553
3. Install `Boost Binaries`_.
554

555
   **Note**: Match your Visual C++ version:
556
557
558
   
   Visual Studio 2015 -> ``msvc-14.0-64.exe``,

559
560
561
   Visual Studio 2017 -> ``msvc-14.1-64.exe``,

   Visual Studio 2019 -> ``msvc-14.2-64.exe``.
562
563
564
565
566

4. Run the following commands:

   .. code::

567
     git clone --recursive https://github.com/microsoft/LightGBM
568
569
570
     cd LightGBM
     mkdir build
     cd build
571
572
573
     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 ..
     # 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" ..
574
575
     cmake --build . --target ALL_BUILD --config Release

576
   **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).
577
578
579
580

Docker
^^^^^^

581
Refer to `GPU Docker folder <https://github.com/microsoft/LightGBM/tree/master/docker/gpu>`__.
582

583
584
585
Build HDFS Version
~~~~~~~~~~~~~~~~~~

586
HDFS version of LightGBM was tested on CDH-5.14.4 cluster.
587
588
589
590

Linux
^^^^^

591
On Linux HDFS version of LightGBM can be built using **CMake** and **gcc**.
592

593
1. Install `CMake`_.
fanliwen's avatar
fanliwen committed
594
595
596
597
598

2. Run the following commands:

   .. code::

599
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
fanliwen's avatar
fanliwen committed
600
601
     mkdir build ; cd build
     cmake -DUSE_HDFS=ON ..
602
603
604
605
606
607
     # 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/" \
     #   ..
fanliwen's avatar
fanliwen committed
608
609
     make -j4

610
611
612
Build Java Wrapper
~~~~~~~~~~~~~~~~~~

613
614
615
616
617
By the following instructions you can generate a JAR file containing the LightGBM `C API <./Development-Guide.rst#c-api>`__ wrapped by **SWIG**.

Windows
^^^^^^^

618
On Windows Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **VS Build Tools** or **MinGW**.
619

620
621
VS Build Tools
**************
622

623
1. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is already installed).
624
625
626
627
628
629
630

2. Install `SWIG`_ and **Java** (also make sure that ``JAVA_HOME`` is set properly).

3. Run the following commands:

   .. code::

631
     git clone --recursive https://github.com/microsoft/LightGBM
632
633
634
     cd LightGBM
     mkdir build
     cd build
635
     cmake -A x64 -DUSE_SWIG=ON ..
636
637
     cmake --build . --target ALL_BUILD --config Release

638
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/Release`` folder.
639
640
641
642
643
644
645
646
647
648
649
650

MinGW-w64
*********

1. Install `Git for Windows`_, `CMake`_ and `MinGW-w64`_.

2. Install `SWIG`_ and **Java** (also make sure that ``JAVA_HOME`` is set properly).

3. Run the following commands:

   .. code::

651
     git clone --recursive https://github.com/microsoft/LightGBM
652
653
654
655
656
657
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" -DUSE_SWIG=ON ..
     mingw32-make.exe -j4

658
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/`` folder.
659
660
661

**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.

662
663
664
It is recommended to use **VS Build Tools (Visual Studio)** for its 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>`__).

665
666
667

Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.

668
669
670
Linux
^^^^^

671
On Linux Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **gcc** or **Clang**.
672

673
1. Install `CMake`_, `SWIG`_ and **Java** (also make sure that ``JAVA_HOME`` is set properly).
674

675
2. Run the following commands:
676

677
678
   .. code::

679
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
680
681
     mkdir build ; cd build
     cmake -DUSE_SWIG=ON ..
682
     make -j4
683

684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
macOS
^^^^^

On macOS Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **Apple Clang** or **gcc**.

First, install `SWIG`_ and **Java** (also make sure that ``JAVA_HOME`` is set properly).
Then, either follow the **Apple Clang** or **gcc** installation instructions below.

Apple Clang
***********

Only **Apple Clang** version 8.1 or higher is supported.

1. Install `CMake`_ (3.12 or higher):

   .. code::

     brew install cmake

2. Install **OpenMP**:

   .. code::

     brew install libomp

3. Run the following commands:

   .. code::

713
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
     mkdir build ; cd build

     # For Mojave (10.14)
     cmake \
       -DUSE_SWIG=ON \
       -DAPPLE_OUTPUT_DYLIB=ON \
       -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \
       -DOpenMP_C_LIB_NAMES="omp" \
       -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \
       -DOpenMP_CXX_LIB_NAMES="omp" \
       -DOpenMP_omp_LIBRARY=$(brew --prefix libomp)/lib/libomp.dylib \
       ..

     # For High Sierra or earlier (<= 10.13)
     cmake -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON ..

     make -j4

gcc
***

1. Install `CMake`_ (3.2 or higher):

   .. code::

     brew install cmake

2. Install **gcc**:

   .. code::

     brew install gcc

3. Run the following commands:

   .. code::

751
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
752
753
754
755
756
757
758
759
     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

Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.


760
761
762
.. |download artifacts| image:: ./_static/images/artifacts-not-available.svg
   :target: https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

763
.. _Python-package: https://github.com/microsoft/LightGBM/tree/master/python-package
764

765
.. _R-package: https://github.com/microsoft/LightGBM/tree/master/R-package
766

767
.. _zip archive: https://github.com/microsoft/LightGBM/archive/master.zip
768

769
.. _Visual Studio: https://visualstudio.microsoft.com/downloads/
770
771
772
773
774

.. _Git for Windows: https://git-scm.com/download/win

.. _CMake: https://cmake.org/

775
.. _VS Build Tools: https://visualstudio.microsoft.com/downloads/
776
777
778
779
780
781
782

.. _MinGW-w64: https://mingw-w64.org/doku.php/download

.. _MPI: https://en.wikipedia.org/wiki/Message_Passing_Interface

.. _RDMA: https://en.wikipedia.org/wiki/Remote_direct_memory_access

783
.. _MS MPI: https://www.microsoft.com/en-us/download/details.aspx?id=57467
784
785
786
787
788
789
790

.. _Open MPI: https://www.open-mpi.org/

.. _Intel SDK for OpenCL: https://software.intel.com/en-us/articles/opencl-drivers

.. _CUDA Toolkit: https://developer.nvidia.com/cuda-downloads

Nikita Titov's avatar
Nikita Titov committed
791
.. _Boost Binaries: https://bintray.com/boostorg/release/boost-binaries/_latestVersion#files
792
793

.. _SWIG: http://www.swig.org/download.html