Installation-Guide.rst 22.4 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
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
107
108
109
     mkdir build ; cd build
     cmake ..
     make -j4
110
111
112

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

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

115
116
macOS
~~~~~
117

118
On macOS LightGBM can be installed using **Homebrew**, or can be built using **CMake** and **Apple Clang** or **gcc**.
119
120
121

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

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

125
126
127
128
129
130
131
132
133
134
Install Using ``Homebrew``
**************************

.. code::

  brew install lightgbm

Build from GitHub
*****************

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

137
   .. code::
Nikita Titov's avatar
Nikita Titov committed
138

139
     brew install cmake
fanliwen's avatar
fanliwen committed
140

141
2. Install **OpenMP**:
fanliwen's avatar
fanliwen committed
142
143
144
145

   .. code::

     brew install libomp
146
147
148
149
150

3. Run the following commands:

   .. code::

151
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
fanliwen's avatar
fanliwen committed
152
153
154
155
     mkdir build ; cd build
     cmake ..
     make -j4

156
157
gcc
^^^
158

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

161
   .. code::
162

163
     brew install cmake
164

165
2. Install **gcc**:
166

167
   .. code::
168

169
170
171
172
173
174
     brew install gcc

3. Run the following commands:

   .. code::

175
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
176
177
178
179
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
     mkdir build ; cd build
     cmake ..
     make -j4
180

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

183
184
185
Docker
~~~~~~

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

188
189
190
191
Build Threadless Version (not Recommended)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The default build version of LightGBM is based on OpenMP.
192
You can build LightGBM without OpenMP support but it is **strongly not recommended**.
193
194
195
196

Windows
^^^^^^^

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

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

225
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release`` folder.
226
227
228
229
230
231
232
233
234
235

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

236
     git clone --recursive https://github.com/microsoft/LightGBM
237
238
239
     cd LightGBM
     mkdir build
     cd build
240
     cmake -A x64 -DUSE_OPENMP=OFF ..
241
242
     cmake --build . --target ALL_BUILD --config Release

243
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
244
245
246
247
248
249
250
251
252
253

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

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

2. Run the following commands:

   .. code::

254
     git clone --recursive https://github.com/microsoft/LightGBM
255
256
257
258
259
260
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" -DUSE_OPENMP=OFF ..
     mingw32-make.exe -j4

261
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
262
263
264
265
266
267

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

268
On Linux a version of LightGBM without OpenMP support can be built using **CMake** and **gcc** or **Clang**.
269
270
271
272
273
274
275

1. Install `CMake`_.

2. Run the following commands:

   .. code::

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

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

macOS
^^^^^

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

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

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

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

   .. code::

     brew install cmake

2. Run the following commands:

   .. code::

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

327
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
328
329
330
331
332
     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

333
334
335
Build MPI Version
~~~~~~~~~~~~~~~~~

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

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

Windows
^^^^^^^

344
On Windows an MPI version of LightGBM can be built using
345
346
347

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

348
- **MS MPI**, **CMake** and **VS Build Tools**.
349

350
351
352
With GUI
********

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

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

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

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

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

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

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

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

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

372
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).
373
374
375
376
377

3. Run the following commands:

   .. code::

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

385
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
386

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

Linux
^^^^^

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

394
1. Install `Open MPI`_.
395

396
2. Install `CMake`_.
397

398
399
400
401
3. Run the following commands:

   .. code::

402
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
403
404
405
     mkdir build ; cd build
     cmake -DUSE_MPI=ON ..
     make -j4
406
407
408

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

409
410
macOS
^^^^^
411

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

414
415
Apple Clang
***********
416

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

419
1. Install `CMake`_ (3.16 or higher):
420

421
   .. code::
422

423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
     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::

441
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
     mkdir build ; cd build
     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::

471
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
472
473
474
475
     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
476
477
478
479
480
481
482

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

Linux
^^^^^

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

485
486
The following dependencies should be installed before compilation:

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

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

491
-  **libboost** 1.56 or later (1.61 or later is recommended).
492
493
494
495
496

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

497
-  **CMake** 3.2 or later.
498
499
500
501
502

To build LightGBM GPU version, run the following commands:

.. code::

503
  git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
504
505
  mkdir build ; cd build
  cmake -DUSE_GPU=1 ..
506
507
  # 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/ ..
508
509
510
511
512
  make -j4

Windows
^^^^^^^

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

515
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.
516

517
518
Following procedure is for the **MSVC** (Microsoft Visual C++) build.

519
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).
520
521
522
523
524

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

525
   - For running on AMD, get AMD APP SDK.
526
527
528

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

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

Nikita Titov's avatar
Nikita Titov committed
531
3. Install `Boost Binaries`_.
532

533
   **Note**: Match your Visual C++ version:
534
535
536
   
   Visual Studio 2015 -> ``msvc-14.0-64.exe``,

537
538
539
   Visual Studio 2017 -> ``msvc-14.1-64.exe``,

   Visual Studio 2019 -> ``msvc-14.2-64.exe``.
540
541
542
543
544

4. Run the following commands:

   .. code::

545
     git clone --recursive https://github.com/microsoft/LightGBM
546
547
548
     cd LightGBM
     mkdir build
     cd build
549
550
551
     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" ..
552
553
     cmake --build . --target ALL_BUILD --config Release

554
   **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).
555
556
557
558

Docker
^^^^^^

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

561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
Build CUDA Version (Experimental)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The `original GPU build <#build-gpu-version>`__ of LightGBM is based on OpenCL.

The CUDA-based build 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).

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

Linux
^^^^^

On Linux a CUDA version of LightGBM can be built using **CUDA**, **CMake** and **gcc**.

The following dependencies should be installed before compilation:

-  **CUDA** libraries. Please refer to `this detailed guide`_.

-  **CMake** 3.16 or later.

To build LightGBM CUDA version, run the following commands:

.. code::

  git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
  mkdir build ; cd build
  cmake -DUSE_CUDA=1 ..
  make -j4

590
591
592
Build HDFS Version
~~~~~~~~~~~~~~~~~~

593
The HDFS version of LightGBM was tested on CDH-5.14.4 cluster.
594
595
596
597

Linux
^^^^^

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

600
1. Install `CMake`_.
fanliwen's avatar
fanliwen committed
601
602
603
604
605

2. Run the following commands:

   .. code::

606
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
fanliwen's avatar
fanliwen committed
607
608
     mkdir build ; cd build
     cmake -DUSE_HDFS=ON ..
609
610
611
612
613
614
     # 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
615
616
     make -j4

617
618
619
Build Java Wrapper
~~~~~~~~~~~~~~~~~~

620
Using the following instructions you can generate a JAR file containing the LightGBM `C API <./Development-Guide.rst#c-api>`__ wrapped by **SWIG**.
621
622
623
624

Windows
^^^^^^^

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

627
628
VS Build Tools
**************
629

630
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).
631
632
633
634
635
636
637

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

3. Run the following commands:

   .. code::

638
     git clone --recursive https://github.com/microsoft/LightGBM
639
640
641
     cd LightGBM
     mkdir build
     cd build
642
     cmake -A x64 -DUSE_SWIG=ON ..
643
644
     cmake --build . --target ALL_BUILD --config Release

645
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/Release`` folder.
646
647
648
649
650
651
652
653
654
655
656
657

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

658
     git clone --recursive https://github.com/microsoft/LightGBM
659
660
661
662
663
664
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" -DUSE_SWIG=ON ..
     mingw32-make.exe -j4

665
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/`` folder.
666
667
668

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

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

672
673
674

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

675
676
677
Linux
^^^^^

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

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

682
2. Run the following commands:
683

684
685
   .. code::

686
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
687
688
     mkdir build ; cd build
     cmake -DUSE_SWIG=ON ..
689
     make -j4
690

691
692
693
macOS
^^^^^

694
On macOS a Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **Apple Clang** or **gcc**.
695
696
697
698
699
700
701
702
703

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.

704
1. Install `CMake`_ (3.16 or higher):
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719

   .. code::

     brew install cmake

2. Install **OpenMP**:

   .. code::

     brew install libomp

3. Run the following commands:

   .. code::

720
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
     mkdir build ; cd build
     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::

744
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
745
746
747
748
749
750
751
752
     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>`__.


753
754
755
.. |download artifacts| image:: ./_static/images/artifacts-not-available.svg
   :target: https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

756
.. _Python-package: https://github.com/microsoft/LightGBM/tree/master/python-package
757

758
.. _R-package: https://github.com/microsoft/LightGBM/tree/master/R-package
759

760
.. _zip archive: https://github.com/microsoft/LightGBM/archive/master.zip
761

762
.. _Visual Studio: https://visualstudio.microsoft.com/downloads/
763
764
765
766
767

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

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

768
.. _VS Build Tools: https://visualstudio.microsoft.com/downloads/
769
770
771
772
773
774
775

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

776
.. _MS MPI: https://www.microsoft.com/en-us/download/details.aspx?id=100593
777
778
779
780
781
782
783

.. _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
784
.. _Boost Binaries: https://bintray.com/boostorg/release/boost-binaries/_latestVersion#files
785
786

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

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