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

Suggestion: Also create a lightgbm-gpu release #2263

Closed
PhilipMay opened this issue Jul 14, 2019 · 16 comments
Closed

Suggestion: Also create a lightgbm-gpu release #2263

PhilipMay opened this issue Jul 14, 2019 · 16 comments

Comments

@PhilipMay
Copy link

Hi,
what about the idear that you could also create a lightgbm-gpu package? Like tensorflow also does?
Can you do that?
Thanks
Philip

@PCJimmmy
Copy link

When ever I get the feeling its time for a full fresh install of windows I come here and try to make installation of lightgbm with GPU on my Windows 10 machine happen.z You directions are almost as bad as having nothing -so I love the idea. Please make PilipMay and I happy

@jameslamb
Copy link
Collaborator

Thanks for the suggestion, @PhilipMay ! I'm not sure we've explored that before, I will have to look into tensorflow-gpu. @huanzhang12 what do you think about this idea?

@PCJimmmy I am sorry you've had a poor experience with the documentation for using lightgbm with GPUs. In a separate issue, could you share some specific things you'd like to see changed or added in that documentation? Updating docs will probably happen before creating a new package, so we'd like to hear from you!

@PCJimmmy
Copy link

PCJimmmy commented Jul 17, 2019 via email

@StrikerRUS
Copy link
Collaborator

For #1, I think it's impossible to build gpu wheels due to dependencies (Boost and OpenCL compatibility issues over different machines), refer to:
dotnet/machinelearning#492 (comment),
#544 (comment).

For #2, I guess that @PCJimmmy means something like https://github.com/microsoft/LightGBM/blob/master/docs/GPU-Windows.rst, but for Visual Studio.
For now, maybe this discussion may help a little: #2096.

There was a very nice example of how to build GPU version for Linux on Kaggle in Jupyter notebook.

Can you please provide a link? Then we can ask the author to replicate it here.

@PCJimmmy
Copy link

PCJimmmy commented Jul 17, 2019 via email

@StrikerRUS
Copy link
Collaborator

Thanks for links, @PCJimmmy !

Windows users are dummies – we need one click installation.

Still would be nice If I did not have to be both a data science guy and a computer guru to get this running on Windows

It's enough to be a "middle-guy", neither dummy, nor expert 😃

@StrikerRUS
Copy link
Collaborator

For the possibility of creating lightgbm-gpu wheel, it's better to wait @huanzhang12 opinion.

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

@itamarst
Copy link
Contributor

itamarst commented Apr 1, 2020

Hi, I would like to contribute a PR to do this for CUDA.

I'm thinking given all the different GPU backends, best to have an additional package on PyPI, say lightgbm-cuda. Build with whatever version of CUDA e.g. latest Tensorflow is using.

Does this sound reasonable, such that a PR to that effect would be accepted?

@StrikerRUS
Copy link
Collaborator

@itamarst Thanks for the interest in this! I think it's better to wait for some info in #2937 as it promises better support for CUDA.

Also, can you please clarify in which way are you planning to contribute? CI script for building packages with CUDA, building all future releases with CUDA on your local machine or what?

@itamarst
Copy link
Contributor

itamarst commented Apr 1, 2020

I'm doing some open source consulting for a client that uses LightGBM, and they don't want to have to build the package themselves each time (and presumably, neither do other people). So they would like to have wheels on PyPI with GPU support. They use NVidia GPUs.

I am not an expert on GPU toolchain, but if the CUDA support is via OpenCL, and OpenCL is defined via ABI, I guess it wouldn't really be a lightgbm-cuda, it'd be a lightgbm-opencl and if you have CUDA, great that works?

Or is OpenCL not accessed via an ABI, and you need to compile versions per implementation?

@itamarst
Copy link
Contributor

itamarst commented Apr 1, 2020

Given goal of "wheels on PyPI", CI script seems like the way to go.

@huanzhang12
Copy link
Contributor

I like the idea of creating a lightgbm-gpu wheel. Compiling LightGBM with GPU acceleration can be very hard for beginners, so providing a wheel directly in pypi can be very helpful.

For NVIDIA GPUs, OpenCL API is provided as part of the CUDA toolkit. So I think what @itamarst suggests is a lightgbm-gpu wheel that works for any OpenCL platform (not specific to NVIDIA, but on NVIDIA systems OpenCL is indeed provided by CUDA toolkit).

@StrikerRUS
Copy link
Collaborator

Given that

  • pypi wheels (both Windows and Linux ones) have built-in support for GPU training,
  • conda packages (only Linux ones) have built-in support for CUDA training
  • we are not planning publishing CUDA wheels due to size limits

can we consider this issue as resolved?
@jameslamb

@jameslamb
Copy link
Collaborator

Thanks for making this connection back to this older issue!

I agree, I think we should consider this resolved. I don't think we should pursue publishing CUDA wheels until someone makes a strong case for why the conda packages are not sufficient.

@PCJimmmy
Copy link

PCJimmmy commented Jul 14, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants