dotnet / machinelearning

ML.NET is an open source and cross-platform machine learning framework for .NET.
https://dot.net/ml
MIT License
9.05k stars 1.88k forks source link

GPU #86

Closed FIVIL closed 4 years ago

FIVIL commented 6 years ago

hi, is there (or will there be) any support for training and doing stuff on gpu using ML.net too or no???

glebuk commented 6 years ago

@FIVIL Great question. GPUs are excellent for accelerating DNN training and inference. Currently we do not offer DNN learners. At this point, we do not have GPU-accelerated components available. However, ML.NET is a general-purpose machine learning framework. It can support a variety of machine learning algorithms, including neural nets such as Cognitive Toolkit (CNTK). Adding support for leading DNN packages within ML.NET is on our roadmap. We will likely support GPU training and inference in the future for specific learners and transforms that can benefit from it.

forki commented 6 years ago

In the readme you say this lib is used by Bing & Co. - is this really true given that you don't support GPUs?

ashic commented 6 years ago

R has GPU support for a few things besides neural nets: http://www.r-tutor.com/gpu-computing

Mercurial commented 6 years ago

I agree, this should be priority. I have a GPU Crypto-mining farm and It would be nice to use that from time to time for machine learning computation aswell.

And I think serious data / applications would really want it, I think this should be first priority

turowicz commented 5 years ago

Sorry to say, but

No GPU support = no real use in production

KRcpl88 commented 5 years ago

Any progress on adding GPU support? I agree with the sentiment that without GPU support, this is not a viable solution for serious ML applications. I wish there were a better .NET based framework for using CNTK which does support GPU. Seems natural the ML.NET would be exactly that, but wince there is no support for this currently, it's a big problem.

isandburn commented 5 years ago

agreed. the recent resurgence of popularity in AI/ML/deep-learning is because today's GPUs are far more accessible than super-computing centers. if you build it, they will come.

deepakkumar1984 commented 5 years ago

@FIVIL Great question. GPUs are excellent for accelerating DNN training and inference. Currently we do not offer DNN learners. At this point, we do not have GPU-accelerated components available. However, ML.NET is a general-purpose machine learning framework. It can support a variety of machine learning algorithms, including neural nets such as Cognitive Toolkit (CNTK). Adding support for leading DNN packages within ML.NET is on our roadmap. We will likely support GPU training and inference in the future for specific learners and transforms that can benefit from it.

Working on a high level wrapper to build and execute kernel written in C# on special hardware: https://www.tech-quantum.com/gpu-accelerated-programming-with-amplifier/ https://github.com/tech-quantum/Amplifier.NET

codemzs commented 5 years ago

People on this thread asking for GPU support, can you please specify the scenario where this might be beneficial for you? Please note adding DNN training support is on our roadmap in the coming months and that WILL have GPU support but I want to be sure if there is some other scenario that I might be missing that might benefit from GPUs?

turowicz commented 5 years ago

Realtime footage analysis at 4K resolution and 60 frames per second.

Mercurial commented 5 years ago

People on this thread asking for GPU support, can you please specify the scenario where this might be beneficial for you? Please note adding DNN training support is on our roadmap in the coming months and that WILL have GPU support but I want to be sure if there is some other scenario that I might be missing that might benefit from GPUs?

are you saying we should train models that need GPU in another framework and then consume it in ML.NET

ebarsoumMS commented 5 years ago

@Mercurial no, DNN in ML.NET will support training on the GPU. And you can also consume it on the GPU. So you won't need to train on another framework.

Mercurial commented 5 years ago

@Mercurial no, DNN in ML.NET will support training on the GPU. And you can also consume it on the GPU. So you won't need to train on another framework.

ah I see, thanks @ebarsoumMS I guess just needs more understanding on this part!

codemzs commented 5 years ago

@Mercurial Where did I suggest you should train models in another framework and then consume in ML.NET? I think I was clear that we plan to add DNN support in the coming month and it WILL have GPU support.

ganik commented 4 years ago

closing this as it original question has been answered

Mercurial commented 4 years ago

@Mercurial Where did I suggest you should train models in another framework and then consume in ML.NET? I think I was clear that we plan to add DNN support in the coming month and it WILL have GPU support.

Thanks for the clarification

gvashishtha commented 4 years ago

Anyone on this thread looking for GPU acceleration for prediction in a non-DNN-based model? Would be interested in discussing your use case further, if so.

turowicz commented 4 years ago

I've migrated to NVIDIA Triton Server and GRPC for inference. It decouples inferencing from my .NET code and is way better for model management, versioning and load-balancing across multiple GPUs. It's also much faster than Tensorflow Serving, should anyone wonder.

harishsk commented 4 years ago

closing this as it original question has been answered