Lightgbm: Suggestion: Also create a lightgbm-gpu release

Created on 14 Jul 2019  Β·  13Comments  Β·  Source: microsoft/LightGBM

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

feature request

All 13 comments

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

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!

James

Two issues –

  1. Not much you can do about this one but I have very little experience with the whole build process – as a simple Windows user all my life things that are very apparent to a Linux user are not so apparent to me. Building a wheel for Windows IMO should always have high value for any library – Windows users are dummies – we need one click installation. I am using the heck out of lightgbm these last weeks but if I had to build the darn thing it would have never been used.
  2. Too many option paths for the Windows user in your directions – again not real clear what goes with what – pretend your starting from scratch and write a flow for your Windows PC on a piece of paper – lots of points on that flow were decisions need to be made – I am too stupid to accurately make them. There was a very nice example of how to build GPU version for Linux on Kaggle in Jupyter notebook. That at least did give me a little better idea of flow. How about instead of writing on piece of paper you create a notebook with the flow that would get GPU version installed. If I had a windows version of kernel than I could step thru and probably make the right decisions in the right order.
  3. In adding all the pre-req’s to my PC (Visual Studio 2019, cmake, etc) the main issue seems to be that paths are present – so in the step where Cmake used for example, my pc does not see it (in command)

So – my suggestion – write an example notebook for Windows 10. I mean folks wanting to install lightgbm on a windows machine are 99% likely to be using Jupyter notebooks for their work.

Sent from Mail for Windows 10

From: James Lamb
Sent: Wednesday, July 17, 2019 1:09 AM
To: microsoft/LightGBM
Cc: PCJimmmy; Mention
Subject: Re: [microsoft/LightGBM] Suggestion: Also create a lightgbm-gpurelease (#2263)

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!
β€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

For #1, I think it's impossible to build gpu wheels due to dependencies (Boost and OpenCL compatibility issues over different machines), refer to:
https://github.com/dotnet/machinelearning/pull/492#issuecomment-403117877,
https://github.com/microsoft/LightGBM/issues/544#issuecomment-304050731.

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.

Here is link to the Linux Kaggle kernel – I am PC Jimmmy on Kaggle

https://www.kaggle.com/vinhnguyen/gpu-acceleration-for-lightgbm/comments

Doing a current Kaggle and folks (including me) talking about this.

https://www.kaggle.com/c/champs-scalar-coupling/discussion/98785

I will try to follow the link below – it seems like almost the same as the main page directions but the added images might be enough to get thru and build – for sure path issues and installing all the right extra stuff is my wall to success.

Will also try to follow the 2096 path.

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 – lots of reasons to not do machine learning on windows – it’s a shame to have this on the list of reasons to not use windows.

Jim

Sent from Mail for Windows 10

From: Nikita Titov
Sent: Wednesday, July 17, 2019 1:04 PM
To: microsoft/LightGBM
Cc: PCJimmmy; Mention
Subject: Re: [microsoft/LightGBM] Suggestion: Also create a lightgbm-gpurelease (#2263)

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.
β€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

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 πŸ˜ƒ

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

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.

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?

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

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?

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

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ahbon123 picture ahbon123  Β·  4Comments

mayer79 picture mayer79  Β·  3Comments

tbenthompson picture tbenthompson  Β·  3Comments

JoshuaC3 picture JoshuaC3  Β·  3Comments

raphay3l picture raphay3l  Β·  3Comments