I need to buy a Laptop with a discrete graphic card for Cuda kernel development in Julia. Unfortunately, the situation with current-gen notebooks with discrete GPUs and Linux seems to be as bad as it was 10 years ago [1]
I havenât used Windows for a long time. Howâs the development situation there? I heard in the past that package operations are much slower than on Linux/Mac; has this changed yet?
Can this be circumvented by doing everything under WSL, or is this more of a hack with lots of possibly broken edge cases? Iâd definitely need multiple Julia versions with CUDA.jl, working GLMakie, DiffEq, file system interactions, Plots, IDE, âŚ
[1] Apparently, a lot of newer Laptops have problems ranging from energy management, enabling/disabling discrete GPU, over sleep/wake states to wifi and audio issues.
If you want to develop larger Julia projects, stick to LinuxâŚ
For example multi-threaded system image creation only works on Linux. But if you are not doing that often, you can also use Windows, but you loose about 20% performance. Yes, the performance using WSL is better, but I am not sure if you can use graphical interfaces when using the WSL.
If you install Git for Windows (which provides a bash shell) and VSCode and Windows Terminal, Windows feels nearly as good as LinuxâŚ
And if you buy a laptop with an âAMD Ryzen⢠7 7840Uâ CPU or similar you get very fast graphics without the need of a discrete GPUâŚ
It would be interesting to know if WSL2 is âenoughâ Linux for this to work, though.
Unfortunately, the Ryzen CPU wonât help me since my goal is to test and develop cuda code locally before pushing it to an HPC cluster. For that, I need a dedicated NVIDIA graphics card.
I am very surprised at any statement to not use Windows⌠that would be very unsubstantiated.
I am the lead developer of SciML and I almost exclusively use Windows. I have been doing that since I started in Julia in 2016 and thatâs why you see the whole ecosystem works with Windows. I am a contributor to everything from Julia LinearAlgebra to Plots.jl and MATLAB.jl because for many years I was âthe Windows guyâ that made sure the open source ecosystem played nicely with Windows.
Now that we have a lot more industrial applications and commercial usage of Julia for engineering, Windows isnât even uncommon and I havenât been the only person looking out for Windows in the package ecosystem for a long time (since about 2020 or so many others have been helping out in this respect). And with the Yggdrasil artifacts system most of the Windows issues of pre-v1.0 Julia were largely eliminated.
So with what youâre saying
No, you donât need to go to Linux. In fact, much of what youâve described there was built and tested on Windows first, especially if youâre doing DiffEq + VS Code! And I develop all of SciML directly in Windows, no WSL. I would much rather run into every possible issue and fix it directly than use WSL, though I donât think I can list a single Windows-specific issue that Iâve had to fix since⌠2021?
At this point in time, I do not know of any Windows-specific issues related to SciML or its greater ecosystem other than the aforementioned Julia base issue with multithreaded image building. Also, the Windows file system is just naturally slower, but thatâs just known. If you run into any issues with Windows just open an issue.
[Caveat: I did get a Mac laptop sometime last year, but I still mostly code on my desktop so⌠this at least means that I donât use a Linux machine except with SSH. But this also means that SciML has similar Mac M-series support, which is why it uses AppleAccelerate linear algebra out of the box and will out benchmark other things which donât. But I digress]
I run Ubuntu on my personal computer, but have been using Julia on various Windows machines at work for more than half a decade. I donât notice any significant difference day to day. Juliaup, VSCode, Git, plotting, etc. all work great on both systems.
In the past I have run into some issues with compiled binary artifacts not working on Windows, but itâs been a few years at least since the last one I can remember. Things are pretty smooth all round these days so I wouldnât worry about it!
Itâs also fair to say I think that lots of people have run into an issue that can break any package which relies on any artifacts which has been around since 1.10 pre-release versions and still isnât fixed on 1.10.2:
I could also dig up the old XGBoost issue where that was broken on Windows for multiple Julia versions, or the fact that Pluto cell interruptions never worked (I think until very recently?) - these things donât tend to happen on Linux and Mac, partly because Linux and Mac are nicer development environments I guess, but also because itâs just a fact of life that the Venn diagram intersection between âis a core-ish Julia developerâ and âuses Windowsâ is pretty close to an empty set.
(Just to be clear: Iâm using Windows myself at work, which is 90% of my Julia usage, and itâs absolutely fine, specifically the package operations thing isnât really an issue anymore)
In my experience, this has never been nearly as bad as people on the internet claim. Some distro devs may not have read the driver docs as carefully as they should when packaging the driver for their distro, leading to inelegant or missing solutions for hybrid functionality and power management, but even then the GPU is fully functional.
More importantly, some distros get it right, so if this is important to you, choose one of those. The ones Iâm familiar with are Pop!_OS and EndeavourOS.
Windows is cool too, of course. Just questioning the premise that Cuda is a reason to stay away from Linux.
I just switched full time to Windows a couple of weeks ago after decades on mac. I did it because I found this gem of a tablet/laptop (ROG Flow Z13 (2022)) that just naturally replaced my mac + iPad combo (2023 model has even better specs). Iâd recommend that you look at gaming laptops as these have powerful CPUs, discrete GPUs, and advanced cooling systems (at the cost of battery life though, compared to new macs).
My initial plan was to live inside WSL, but I soon found that itâs entirely unnecessary. WSL is great but uses a lot of RAM. Julia development works perfectly on Win 11. Also, WSL file access can be slow if you access files stored outside it.
Huge latency with Julia packages was definitely an issue (that I reported myself here a few years ago). Especially when dev-ing packages, Windows Defender would have a hard time scanning all the files, slowing the OS down considerably. I have not seen this issue anymore.
Thank you all for the suggestions and replies, your input helped a lot! It seems like overall Windows support is better than the impression I got based on some off-handed comments I read on Slack and Discourse over the years, thatâs great! Iâll see what devices my institution can provide and if I encounter problems with native Linux distros I am not afraid anymore to take on Windows, either with or without WSL.