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

4
This is a guide for building the LightGBM Command Line Interface (CLI). If you want to build the Python-package or R-package please refer to `Python-package`_ and `R-package`_ folders respectively.
5

6
7
8
All instructions below are aimed at compiling the 64-bit version of LightGBM.
It is worth compiling the 32-bit version only in very rare special cases involving environmental limitations.
The 32-bit version is slow and untested, so use it at your own risk and don't forget to adjust some of the commands below when installing.
9

10
11
If you need to build a static library instead of a shared one, you can add ``-DBUILD_STATIC_LIB=ON`` to CMake flags.

12
Users who want to perform benchmarking can make LightGBM output time costs for different internal routines by adding ``-DUSE_TIMETAG=ON`` to CMake flags.
Guolin Ke's avatar
Guolin Ke committed
13

14
It is possible to build LightGBM in debug mode. In this mode all compiler optimizations are disabled and LightGBM performs more checks internally. To enable debug mode you can add ``-DUSE_DEBUG=ON`` to CMake flags or choose ``Debug_*`` configuration (e.g. ``Debug_DLL``, ``Debug_mpi``) in Visual Studio depending on how you are building LightGBM.
Guolin Ke's avatar
Guolin Ke committed
15

16
You can also download the artifacts of the latest successful build on master branch (nightly builds) here: |download artifacts|.
17

18
19
20
21
.. contents:: **Contents**
    :depth: 1
    :local:
    :backlinks: none
22

23
24
25
Windows
~~~~~~~

26
27
28
29
On Windows LightGBM can be built using

- **Visual Studio**;

30
- **CMake** and **VS Build Tools**;
31
32

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

34
35
Visual Studio (or VS Build Tools)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
36
37
38
39

With GUI
********

40
1. Install `Visual Studio`_ (2015 or newer).
41
42
43
44
45

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

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

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

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

50
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release`` folder.
51
52
53
54

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

55
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).
56
57
58
59
60

2. Run the following commands:

   .. code::

61
     git clone --recursive https://github.com/microsoft/LightGBM
62
63
64
     cd LightGBM
     mkdir build
     cd build
65
     cmake -A x64 ..
66
67
     cmake --build . --target ALL_BUILD --config Release

68
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
69

70
71
MinGW-w64
^^^^^^^^^
72
73
74
75
76
77
78

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

2. Run the following commands:

   .. code::

79
     git clone --recursive https://github.com/microsoft/LightGBM
80
81
82
83
84
85
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" ..
     mingw32-make.exe -j4

86
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
87

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

90
It is recommended that you use **Visual Studio** since it has better multithreading efficiency in **Windows** for many-core systems
91
(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>`__).
92
93

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

95
96
97
Linux
~~~~~

98
On Linux LightGBM can be built using **CMake** and **gcc** or **Clang**.
99

100
1. Install `CMake`_.
101

102
103
104
105
2. Run the following commands:

   .. code::

106
107
108
109
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
110
111
     cmake ..
     make -j4
112
113
114

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

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

117
118
macOS
~~~~~
119

120
On macOS LightGBM can be built using **CMake** and **Apple Clang** or **gcc**.
121
122
123

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

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

127
1. Install `CMake`_ (3.16 or higher):
Nikita Titov's avatar
Nikita Titov committed
128

129
   .. code::
Nikita Titov's avatar
Nikita Titov committed
130

131
     brew install cmake
fanliwen's avatar
fanliwen committed
132

133
2. Install **OpenMP**:
fanliwen's avatar
fanliwen committed
134
135
136
137

   .. code::

     brew install libomp
138
139
140
141
142

3. Run the following commands:

   .. code::

143
144
145
146
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
fanliwen's avatar
fanliwen committed
147
148
149
     cmake ..
     make -j4

150
151
gcc
^^^
152

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

155
   .. code::
156

157
     brew install cmake
158

159
2. Install **gcc**:
160

161
   .. code::
162

163
164
165
166
167
168
     brew install gcc

3. Run the following commands:

   .. code::

169
170
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
171
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
172
173
     mkdir build
     cd build
174
175
     cmake ..
     make -j4
176

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

179
180
181
Docker
~~~~~~

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

184
185
186
187
Build Threadless Version (not Recommended)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The default build version of LightGBM is based on OpenMP.
188
You can build LightGBM without OpenMP support but it is **strongly not recommended**.
189
190
191
192

Windows
^^^^^^^

193
On Windows a version of LightGBM without OpenMP support can be built using
194
195
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

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

221
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release`` folder.
222
223
224
225
226
227
228
229
230
231

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::

232
     git clone --recursive https://github.com/microsoft/LightGBM
233
234
235
     cd LightGBM
     mkdir build
     cd build
236
     cmake -A x64 -DUSE_OPENMP=OFF ..
237
238
     cmake --build . --target ALL_BUILD --config Release

239
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
240
241
242
243
244
245
246
247
248
249

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

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

2. Run the following commands:

   .. code::

250
     git clone --recursive https://github.com/microsoft/LightGBM
251
252
253
254
255
256
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" -DUSE_OPENMP=OFF ..
     mingw32-make.exe -j4

257
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
258
259
260
261
262
263

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

264
On Linux a version of LightGBM without OpenMP support can be built using **CMake** and **gcc** or **Clang**.
265
266
267
268
269
270
271

1. Install `CMake`_.

2. Run the following commands:

   .. code::

272
273
274
275
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
276
277
278
279
280
281
282
283
     cmake -DUSE_OPENMP=OFF ..
     make -j4

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

macOS
^^^^^

284
On macOS a version of LightGBM without OpenMP support can be built using **CMake** and **Apple Clang** or **gcc**.
285
286
287
288
289
290

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

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

291
1. Install `CMake`_ (3.16 or higher):
292
293
294
295
296
297
298
299
300

   .. code::

     brew install cmake

2. Run the following commands:

   .. code::

301
302
303
304
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
     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::

327
328
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
329
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
330
331
     mkdir build
     cd build
332
333
334
     cmake -DUSE_OPENMP=OFF ..
     make -j4

335
336
337
Build MPI Version
~~~~~~~~~~~~~~~~~

338
339
The default build version of LightGBM is based on socket. LightGBM also supports MPI.
`MPI`_ is a high performance communication approach with `RDMA`_ support.
340

341
If you need to run a distributed learning application with high performance communication, you can build the LightGBM with MPI support.
342
343
344
345

Windows
^^^^^^^

346
On Windows an MPI version of LightGBM can be built using
347
348
349

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

350
- **MS MPI**, **CMake** and **VS Build Tools**.
351

352
353
354
With GUI
********

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

357
2. Install `Visual Studio`_ (2015 or newer).
358
359
360
361
362

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

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

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

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

367
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release_mpi`` folder.
368
369
370
371

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

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

374
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).
375
376
377
378
379

3. Run the following commands:

   .. code::

380
     git clone --recursive https://github.com/microsoft/LightGBM
381
382
383
     cd LightGBM
     mkdir build
     cd build
384
     cmake -A x64 -DUSE_MPI=ON ..
385
386
     cmake --build . --target ALL_BUILD --config Release

387
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
388

389
**Note**: Building MPI version by **MinGW** is not supported due to the miss of MPI library in it.
390
391
392
393

Linux
^^^^^

394
On Linux an MPI version of LightGBM can be built using **Open MPI**, **CMake** and **gcc** or **Clang**.
395

396
1. Install `Open MPI`_.
397

398
2. Install `CMake`_.
399

400
401
402
403
3. Run the following commands:

   .. code::

404
405
406
407
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
408
409
     cmake -DUSE_MPI=ON ..
     make -j4
410
411
412

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

413
414
macOS
^^^^^
415

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

418
419
Apple Clang
***********
420

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

423
1. Install `CMake`_ (3.16 or higher):
424

425
   .. code::
426

427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
     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::

445
446
447
448
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
     cmake -DUSE_MPI=ON ..
     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::

477
478
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
479
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
480
481
     mkdir build
     cd build
482
483
     cmake -DUSE_MPI=ON ..
     make -j4
484
485
486
487
488
489
490

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

Linux
^^^^^

491
On Linux a GPU version of LightGBM (``device_type=gpu``) can be built using **OpenCL**, **Boost**, **CMake** and **gcc** or **Clang**.
492

493
494
The following dependencies should be installed before compilation:

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

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

499
-  **libboost** 1.56 or later (1.61 or later is recommended).
500
501
502
503
504

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

505
-  **CMake** 3.2 or later.
506
507
508
509
510

To build LightGBM GPU version, run the following commands:

.. code::

511
512
513
514
  git clone --recursive https://github.com/microsoft/LightGBM
  cd LightGBM
  mkdir build
  cd build
515
  cmake -DUSE_GPU=1 ..
516
517
  # 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/ ..
518
519
520
521
522
  make -j4

Windows
^^^^^^^

523
On Windows a GPU version of LightGBM (``device_type=gpu``) can be built using **OpenCL**, **Boost**, **CMake** and **VS Build Tools** or **MinGW**.
524

525
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.
526

527
528
Following procedure is for the **MSVC** (Microsoft Visual C++) build.

529
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).
530
531
532
533
534

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`_.

535
   - For running on AMD, get AMD APP SDK.
536
537
538

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

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

Nikita Titov's avatar
Nikita Titov committed
541
3. Install `Boost Binaries`_.
542

543
   **Note**: Match your Visual C++ version:
544
545
546
   
   Visual Studio 2015 -> ``msvc-14.0-64.exe``,

547
548
549
   Visual Studio 2017 -> ``msvc-14.1-64.exe``,

   Visual Studio 2019 -> ``msvc-14.2-64.exe``.
550
551
552
553
554

4. Run the following commands:

   .. code::

555
     git clone --recursive https://github.com/microsoft/LightGBM
556
557
558
     cd LightGBM
     mkdir build
     cd build
559
560
561
     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" ..
562
563
     cmake --build . --target ALL_BUILD --config Release

564
   **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).
565
566
567
568

Docker
^^^^^^

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

571
572
573
Build CUDA Version (Experimental)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

574
The `original GPU build <#build-gpu-version>`__ of LightGBM (``device_type=gpu``) is based on OpenCL.
575

576
The CUDA-based build (``device_type=cuda``) is a separate implementation and requires an NVIDIA graphics card with compute capability 6.0 and higher. It should be considered experimental, and we suggest using it only when it is impossible to use OpenCL version (for example, on IBM POWER microprocessors).
577
578
579
580
581
582

**Note**: only Linux is supported, other operating systems are not supported yet.

Linux
^^^^^

583
On Linux a CUDA version of LightGBM can be built using **CUDA**, **CMake** and **gcc** or **Clang**.
584
585
586

The following dependencies should be installed before compilation:

587
-  **CUDA** 9.0 or later libraries. Please refer to `this detailed guide`_. Pay great attention to the minimum required versions of host compilers listed in the table from that guide and use only recommended versions of compilers.
588
589
590
591
592
593
594

-  **CMake** 3.16 or later.

To build LightGBM CUDA version, run the following commands:

.. code::

595
596
597
598
  git clone --recursive https://github.com/microsoft/LightGBM
  cd LightGBM
  mkdir build
  cd build
599
600
601
  cmake -DUSE_CUDA=1 ..
  make -j4

602
603
604
Build HDFS Version
~~~~~~~~~~~~~~~~~~

605
The HDFS version of LightGBM was tested on CDH-5.14.4 cluster.
606
607
608
609

Linux
^^^^^

610
On Linux a HDFS version of LightGBM can be built using **CMake** and **gcc**.
611

612
1. Install `CMake`_.
fanliwen's avatar
fanliwen committed
613
614
615
616
617

2. Run the following commands:

   .. code::

618
619
620
621
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
fanliwen's avatar
fanliwen committed
622
     cmake -DUSE_HDFS=ON ..
623
624
625
626
627
628
     # 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
629
630
     make -j4

631
632
633
Build Java Wrapper
~~~~~~~~~~~~~~~~~~

634
Using the following instructions you can generate a JAR file containing the LightGBM `C API <./Development-Guide.rst#c-api>`__ wrapped by **SWIG**.
635
636
637
638

Windows
^^^^^^^

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

641
642
VS Build Tools
**************
643

644
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).
645
646
647
648
649
650
651

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

3. Run the following commands:

   .. code::

652
     git clone --recursive https://github.com/microsoft/LightGBM
653
654
655
     cd LightGBM
     mkdir build
     cd build
656
     cmake -A x64 -DUSE_SWIG=ON ..
657
658
     cmake --build . --target ALL_BUILD --config Release

659
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/Release`` folder.
660
661
662
663
664
665
666
667
668
669
670
671

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::

672
     git clone --recursive https://github.com/microsoft/LightGBM
673
674
675
676
677
678
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" -DUSE_SWIG=ON ..
     mingw32-make.exe -j4

679
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/`` folder.
680
681
682

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

683
It is recommended to use **VS Build Tools (Visual Studio)** since it has better multithreading efficiency in **Windows** for many-core systems
684
685
(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>`__).

686
687
688

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

689
690
691
Linux
^^^^^

692
On Linux a Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **gcc** or **Clang**.
693

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

696
2. Run the following commands:
697

698
699
   .. code::

700
701
702
703
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
704
     cmake -DUSE_SWIG=ON ..
705
     make -j4
706

707
708
709
macOS
^^^^^

710
On macOS a Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **Apple Clang** or **gcc**.
711
712
713
714
715
716
717
718
719

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.

720
1. Install `CMake`_ (3.16 or higher):
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735

   .. code::

     brew install cmake

2. Install **OpenMP**:

   .. code::

     brew install libomp

3. Run the following commands:

   .. code::

736
737
738
739
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
     mkdir build
     cd build
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
     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::

762
763
     git clone --recursive https://github.com/microsoft/LightGBM
     cd LightGBM
764
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
765
766
     mkdir build
     cd build
767
768
769
770
771
772
     cmake -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON ..
     make -j4

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


773
774
775
.. |download artifacts| image:: ./_static/images/artifacts-not-available.svg
   :target: https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

776
.. _Python-package: https://github.com/microsoft/LightGBM/tree/master/python-package
777

778
.. _R-package: https://github.com/microsoft/LightGBM/tree/master/R-package
779

780
.. _zip archive: https://github.com/microsoft/LightGBM/archive/master.zip
781

782
.. _Visual Studio: https://visualstudio.microsoft.com/downloads/
783
784
785
786
787

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

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

788
.. _VS Build Tools: https://visualstudio.microsoft.com/downloads/
789
790
791
792
793
794
795

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

796
.. _MS MPI: https://www.microsoft.com/en-us/download/details.aspx?id=100593
797
798
799
800
801
802
803

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

804
.. _Boost Binaries: https://sourceforge.net/projects/boost/files/boost-binaries/
805
806

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

.. _this detailed guide: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html