Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support more platforms (32-bit, arm, etc) #1129

Closed
KOLANICH opened this issue Dec 21, 2017 · 13 comments
Closed

Support more platforms (32-bit, arm, etc) #1129

KOLANICH opened this issue Dec 21, 2017 · 13 comments

Comments

@KOLANICH
Copy link

KOLANICH commented Dec 21, 2017

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.

@guolinke
Copy link
Collaborator

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

@KOLANICH
Copy link
Author

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.

@Laurae2
Copy link
Contributor

Laurae2 commented Dec 22, 2017

@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 (?).

@guolinke
Copy link
Collaborator

guolinke commented Dec 22, 2017

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.

@guolinke guolinke changed the title Support more platforms Support more platforms (32-bit, arm, etc) Dec 22, 2017
@StrikerRUS
Copy link
Collaborator

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

@KOLANICH
Copy link
Author

KOLANICH commented Dec 30, 2017

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

@palevas
Copy link

palevas commented Jan 8, 2018

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

@StrikerRUS
Copy link
Collaborator

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.

@StrikerRUS
Copy link
Collaborator

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

@StrikerRUS
Copy link
Collaborator

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

@ghost
Copy link

ghost commented Mar 30, 2020

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.

@StrikerRUS
Copy link
Collaborator

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

@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity since it was closed. To start a new related discussion, open a new issue at https://github.com/microsoft/LightGBM/issues including a reference to this.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 23, 2023
@microsoft microsoft unlocked this conversation Aug 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants