Lightgbm: Support more platforms (32-bit, arm, etc)

Created on 21 Dec 2017  路  12Comments  路  Source: microsoft/LightGBM

Hello. I have built this for 32bit x86 (the compiler is mingw32-w64) and ran the tests. They have passed. Even if you don't plan to have the official support it is not the reason not to have the code creating a python package for it (I had to modify it to make it build, but the installation must be as easy as git clone and then pip install).

Also it may be nice to test it on other platforms like arm.

help wanted

Most helpful comment

FreeBSD 11.1, amd64.

GCC: compiles and works fine.

Clang: there is a problem with CMake to find OpenMP.
https://gitlab.kitware.com/cmake/cmake/issues/17474
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223678

All 12 comments

@KOLANICH
The main reason is we cannot ensure the performance(speed) on 32-bit and other platforms.

The code is designed for 64-bit platform. Compiling to 32-bit is possible, but it will be much slower. And 32-bit system is going to be replaced by 64 bit system.

For the ARM, we don't have devices and resources to test it. Not sure about its performance.

The code is designed for 64-bit platform. Compiling to 32-bit is possible, but it will be much slower.

Just show a warning about it. And I guess this should be benchmarked using the latest versions of different compilers (gcc, clang, intel, vcpp at least) on maximum optimizations on different cpus, with tuning (-mtune on gcc) for that cpu. GPU-powered learning may be less affected by slowdown.

And 32-bit system is going to be replaced by 64 bit system.

I know. But this is not a reason not to allow it be built for it.

@guolinke This might be a good idea to allow 32-bit (even if it is not optimized) because there are users with R/Excel 32-bit who might want to demo LightGBM inside Excel (or due to very special business restrictions).

Perhaps a note about being unsupported configuration (but working) may help, but the R version requires a 64-bit version (?).

I remember the 32bit version can be compiled.
It only needs some small changes for python/r package.

However, it isn't our priority. We don't have resources for the changes, tests and maintains of this item.
So I would like to call communities for the contributions.

To speak about GPU-version, there is interesting note about NVIDIA drivers related to this topic: http://nvidia.custhelp.com/app/answers/detail/a_id/4604/~/end-of-nvidia-driver-support-for-32-bit-operating-systems

I have tested on arm (-O3 with -mtune and -vectorize-with-neon-quad), the tests also have passed (but there were lot off warnings in process, don't know if it is OK).

FreeBSD 11.1, amd64.

GCC: compiles and works fine.

Clang: there is a problem with CMake to find OpenMP.
https://gitlab.kitware.com/cmake/cmake/issues/17474
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223678

Closed in favor of being in #2302. We decided to keep all feature requests in one place.

Welcome to contribute this feature! Please re-open this issue (or post a comment if you are not a topic starter) if you are actively working on implementing this feature.

You can now test your open source software on multiple CPU architectures.
Travis CI can now run your Linux builds on amd64 and arm64 (i.e. ARMv8 compliant CPUs) CPU architectures.

https://blog.travis-ci.com/2019-10-07-multi-cpu-architecture-support

Travis CI can now run your Linux builds on IBM Power and IBM Z CPU architectures on top of already available amd64 and arm64 (ARMv8).

https://changelog.travis-ci.com/building-on-ibm-power-and-ibm-z-cpu-architectures-126959

The code is designed for 64-bit platform. Compiling to 32-bit is possible, but it will be much slower.

Just show a warning about it. And I guess this should be benchmarked using the latest versions of different compilers (gcc, clang, intel, vcpp at least) on maximum optimizations on different cpus, with tuning (-mtune on gcc) for that cpu. GPU-powered learning may be less affected by slowdown.

And 32-bit system is going to be replaced by 64 bit system.

I know. But this is not a reason not to allow it be built for it.

Conda-forge tells how they are getting prepared to Big Sur and new Apple architecture: https://conda-forge.org/blog/posts/2020-10-29-macos-arm64/.

Was this page helpful?
0 / 5 - 0 ratings