-
Notifications
You must be signed in to change notification settings - Fork 74.4k
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
Please bring back native Windows CUDA support! #59918
Comments
Hello, He is totally right and Windows is still used by so many people even if not all developers using Tensorflow use it mainly, so I find it really stupid to drop the native-Windows GPU support when we know that a lot of people still use Windows from the development to the production deployment(even if it's not perfect and I'm not necessarily talking about companies). Note: I'm sorry if I'm wrong on things I'm not a professional or even working in a company but programming is a hobby that I love and I would like to be able to continue it in good conditions and stay up to date for the longest time possible. Regards. |
Absolutely precise, multitudes of researchers continue to employ TensorFlow on Windows; please reinstate support for native Windows GPU. |
low performance and inconvenience with WSL2 IO, It means that it's hard to apply for large scale dataset via TensorFlow |
This change has been made along with the changes in the release for different platforms build with the help of official build collaborators. |
It seems that you just repeat the same answer as in all the other issues, without really caring about the question I asked. The problem is not that tensorflow doesn’t support gpus on windows anymore, but that there is no way to use cuda natively on windows. Maybe the framework is easier to build and maintain now, but before version 2.11 it worked fine… With this change, tensorflow is almost impossible to use on native cuda windows (or be stuck at v2.10.1), for example if you need cuda custom ops or you can’t use wsl2 or you depend on the TF C-API… Perhaps a native cuda windows custom tensorflow build could be enabled for the users who wish to retain the functionality of the previous versions before 2.11 while also benefiting from the latest updates. That would be a reasonable compromise and a minor step back to native cuda on windows. I feel like you don’t understand me and you just want to ignore the problem like in the other issues I linked. That makes me very sad and disappointed, because tensorflow used to be my favorite framework. :( |
I used to love tensorflow too but I feel like they kinda want to kill users that work from development to production on Windows. Well okay it made it easier to update but at what cost ? You are just cutting of "the legs" of many projects.. That's really unfair in my opinion, If you want quality you always do what it takes to achieve it no ? So why not just continue with cuda support for Windows when it was literally very useful for many people ? Not everything are easy in life and this decition to remove tensorflow really sucks. Don't forget there are even companies that work with Windows from the development to production(even if not a lot) so you are cutting some companies because not everyone want to waste money to pay the developers to rewrite the "whole" project, it's not cheap and also a hard work. |
In this TensorFlow blog please see section "Expanded GPU support on Windows". Also please see TensorFlow install page and this page for more info. Please feel free to sign up to the mailing list [email protected] to be notified of the most recent updates. |
I have tried to build TensorFlow 2.12 with CUDA on windows 10. Errors as follows:
Is it solved in the latest 2.12 source code? |
I also think that is important. There is still many people using Windows as development environment. |
After switching back bazel to 5.3.0, I can run toolchain building until my disk has 7GB left and I stopped it. Don’t expect the build progress can be finished within a single bazel run. The server build script should run bazel command again when it failed (let say 10 times) to better handle errors like 404 not found and XXX is not defined. Build environment: |
While native GPU support on Windows will bring back the 5% perf increase and will support a few more users, please note that the total number of users of TF on Windows is very small compared to the other usecases and that there is almost no Windows expertise at Google to maintain this build. So, more than a year ago, it was decided to drop the Windows GPU support as the maintenance burden did not justify the costs, especially given that alternatives (i.e., WSL and using a Linux environment) exist. I acknowledge that this might not be desired answer (and that previous answers from team did not treat the issue accordingly), but this is the most we can reliably do. |
@mihaimaruseac Is it still possible to build from source on Windows with cuda? I'm sad that I can't benefit from the most recent works of tensorflow and I'd like to build from source myself. However if that means I need to modify lots of cpp code, the price is too high. |
It should still be possible. There's also tensorflow/build repo and SIG Build where community can provide help for that, it's just that Google cannot effectively maintain the build itself. |
If you try to run bazel command again for several times (2 times in my case) without clean away the build progress, the errors related to XXX is not defined should be resolved. @mihaimaruseac My suggestion of prebuilt LLVM path isn't related to CUDA. Is this improvement out of the ability of tensorflow team? |
I'm not sure to understand tbh |
so sad that it doesn't support windows, i just figured it out now. |
There are also some industrial systems using Windows Embeded for inference in production lines. Right now one of the solutions for them is to migrate their plugins to ONNX. |
Hi, yes it is very upsetting that native CUDA Windows support has been discontinued (i think this issue shows this clearly), also making cool projects like the one from @melMass and others less- or even unusable for Windows users. For our use case, running on Windows and relying on native CUDA support, we decided to stick with TF2.10.1 for now. But I'm also looking forward to testing the new Keras 3.0 with different backends, maybe it could make it easier for us to switch to Pytorch or Jax if native Cuda Windows support doesn't come back and we need to upgrade our approach. So in summary, even though there is demand for native CUDA on Windows (and people fixing bugs for TF on Windows like @johnnkp and others), i unfortunately have little hope that it will be re-enabled (see https://discuss.tensorflow.org/t/sig-build-october-meeting-october-3-2pm/19918) even though that would make me very happy. Whatever the future holds for TF on Windows, I thank the TF team for their work. |
I am actually +1 on trying Keras 3.0 and picking the backend that has the most support for your operating system, while you are experimenting. I might come back with future recommendations here to also cover security / supply chain needs. |
I started with deep learning reading the book "Deep Learning with R (second edition)" and all what is mentioned there regarding GPU support is: Download and install the necessary NVIDIA driver... But the standard answer, also in this issue blog is, "use WSL". Well, it's not working, neither for me, and apparently nor for many other people. |
I really hope, tensorflow will bring back native GPU support on Windows. |
Please bring this back, at least in a SIG build form, or add instructions to build (it would be totally fine with just community support) |
For building yourself, you can try the instructions at https://www.tensorflow.org/install/source_windows but you will be on your own as the build is not supported, no one can help fix build errors. You can try submitting PRs to fix build errors, but again those would be hard to validate and might become stale. Also, worth noting that the instructions linked above assumed compiling with MSVC+NVCC but now (most if not all) builds just use clang everywhere. |
The Last version of the GPU source doesn't contain the thing from the problem so. |
You're missing the larger point: bringing machine learning to the public. Prosumers and consumers will (and do) want machine learning on their desktop.
Like how the microprocessor opened up the ability for people to have computers (perviously only available to large corporations) in the home. The next step is to have machine learning in the home. And Windows is the home machine. Put it another way:
|
|
In that case i'd just use ONNX runtime (https://onnxruntime.ai/). Since that's what Microsoft said on their github page announcing they are also abandonining Windows developers:
Which is to say: i'm not. Because now there's a 4th thing you have to master before you can even do the first thing:
|
However, the funny thing is that JAX also does not support native Windows GPU, and even Windows builds are maintained by the community, so the logic holds:
😂😂😂 |
I failed, sorry :) |
Native Windows CUDA was cool but it's still not much of a hassle to just use WSL2 anyway |
We need to put the data on wsl space if we need to prototype models.
…On Mon, Feb 12, 2024, 9:55 p.m. Frost Lord ***@***.***> wrote:
Native Windows CUDA was cool but it's still not much of a hassle to just
use WSL2 anyway
—
Reply to this email directly, view it on GitHub
<#59918 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AZRPJAE2HNINKYU5DLTRCR3YTLW45AVCNFSM6AAAAAAVSGMMRKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBQGQZDGOJWGE>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
The problem with that is that it requires the user's Windows PC to have WSL2 installed. It is a very poor developer indeed who creates a Windows application that cannot run under Windows. |
I predicate this post with deepest thanks to the innumerable developers who have made this library possible and useful. Echoing similar sentiment to the many others who have voiced their disappointment with the decision to drop native Windows CUDA support. The lack of clear communication to the community regarding the underlying reasoning behind the move and the lack of advanced warning was particularly disappointing, disheartening, frustrating, and hugely problematic to the "few" still, not only using, but reliant on TensorFlow, with acceleration, on Windows. The September 2022 announcement post for v2.10 promised that the official build collaborations would not "disrupt end user experiences" and "For the majority of use cases, there will be no changes to the behavior of pip install..." Surprising as it may be to those involved in the responsible management, not being able to use GPU acceleration for a deep learning framework has proven to be an awfully significant change and majorly disruptive to end-users and developers. The project may as well have said that they are dropping Windows support, rather than "leading people on" to think they can effectively develop ML on the platform using just CPU. On a number of levels, particularly after having made the investment(s) necessary in transitioning to v2 from v1 (instead of electing to move to PyTorch then), this has felt like a betrayal of trust. Frankly, it's just such a shame to see this from a company that was built on the premise of "Don't be Evil." Neither WSL2, nor the tensorflow-directml-plugin (which incidentally only seems to have ever been partially functional on versions <=2.10, with development apparently permanently on pause) are sufficient workarounds/solutions Besides the decreased performance and utter disregard for ease-of-use, there are applications, libraries, and codes that simply cannot be run in, or interface easily with, WSL2. For example, (I realize this is somewhat niche) there are vendor-proprietary Mass Spectrometry Imaging .dll libraries, that interface with COM objects, which remain only compatible/functional on native Windows. Effectively, if you happen to be doing work with Agilent Mass Spectrometry platforms, there isn't a simple and effective way to combine these with an accelerated TensorFlow framework for active scanning/inferencing/processing. Expending several utterly fruitless weeks seeking ways to avoid the choice between dropping support for Agilent .d files from my application or learning/rebuilding in yet another ML framework, has only made this more painful. It's been over a year. The lack of viable alternatives to interfacing through WSL2, issues with augmentation performance through Keras (tied to versions <=2.10 releases), and the longstanding (and utterly baffling) inability to clear GPU memory have at last forced a migration to PyTorch (delightfully/incidentally discovered to train faster with an identical architecture). For the sake of those who still are holding out hope, please reinstate the requested support or at least provide clear/updated documentation on alternative methods to leverage Windows-only native functions/capabilities in combination with TensorFlow through WSL2. Thank you. |
Hi all, So this is issue is now a bit over one year old, with lots of comments and discussions. In the meantime users continue to need/ask for native GPU under Windows. (see #62938, #62501, #62613) Additionally (since TF>=2.11), its no longer feasible to develop native Windows applications that use TensorFlow since without GPU acceleration its mostly pointless to use it, see comments of @JackTrapper and @Yatagarasu50469 above. Moreover it seems that even most recent TF for native Windows CPU also is having its problems see: #63860 and #64396. Also the build process seems to rely on clang now: Line 96 in 409ff7b
And even though currently building with MSVC is still supported, the history with this issue and native GPU support has shown that this may not be the case for much longer. Also Windows CI for clang is not public see: tensorflow/ci/official/README.md Line 26 in 409ff7b
With this information it is therefore reasonable to assume that native Windows support will be/might be completely discontinued in the near future. From this, I can start to understand people commenting and meming about TF with "switch to pytorch", since in the future for native Windows users this seems to be one of the only options. Either switch in a slower and smoother way via the new Keras 3.0 and pytorch backend and then switch completely, or switch directly and painfully rewrite using pytorch. Overall, I am very disappointed with how TF has evolved and how native Windows users have been ignored. Our team is currently still holding on to TF 2.10.1 even though we would like to use newer features and benefit from performance improvements. We still have the (small) hope that native Windows support might be re-enabled because we have developed a native Windows application and it is (currently) too expensive to rewrite it using pytorch (only time will tell if we have to). Whatever happens next with TF and native Windows. I thank the TF team for their work as we still enjoy using TF v2.10.1 |
This person wrote on a different thread, even though we mentioned that the main ongoing thread for this issue is here, but he never reposted here. I just felt I should forward his words. "balachander1964 commented on Aug 12 |
Click to expand!
Issue Type
Others
Have you reproduced the bug with TF nightly?
Yes
Source
binary
Tensorflow Version
2.11
Custom Code
Yes
OS Platform and Distribution
Windows 10
Mobile device
No response
Python version
3.9
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
I am very disappointed and sad that native Windows CUDA support was simply dropped.
The replacement with WSL2 is not sufficient for processes and systems that are not able to use WSL2 because, for example, if they are also Windows-native applications and the port is too expensive. So we can only use version 2.10 (of both the Python and C APIs) and are stuck with it, which is a shame because it prevents us from benefiting from and participating in new developments. We also see a performance loss of about 5% in WSL2, which leads to higher power consumption and thus has a direct impact on our climate, which can make a big difference in our already very compute-intensive business. In addition, the Windows Direct-ML-Plugin interface is not sufficient, since the performance does not yet reach CUDA and optimizations like XLA and others are not supported. Also, you lose all your highly optimized and expensively developed TF CUDA Custom Ops.
It is also clear that the native CUDA feature on Windows is much needed, see here in the following issues other people are looking for exactly the native CUDA feature on Windows:
All this leads to the simple exclusion and virtual discrimination of a large part of the Tensorflow community that uses CUDA Windows natively.
Why has support been dropped? You could at least keep support for CUDA Windows Native in custom builds.
I hope and ask that you bring back Windows native CUDA support and let people decide for themselves if they want to use native CUDA or WSL2.
Thank you for the development of Tensorflow! My favourite DL framework! :)
Standalone code to reproduce the issue
Relevant log output
No response
The text was updated successfully, but these errors were encountered: