This has always confused me. They are pushing ML hard, yet we often use Linux for that kind of work. And these cards are the ones expected to be used in universities and home labs. Linux drivers that "just work" would be a big push forward to really show that they are trying to push for ML development.
- Ubuntu 18 I had hit or miss with the hdmi connection on my laptop (1060Q). 20% of the time it would work if I plugged it in. 50% of the time it would work if I had it plugged in and rebooted. This makes giving presentations difficult.
- Arch/Manjaro/Fedora/Ubuntu 16 I could never get the hdmi connection working for a laptop.
- All distros, difficulty getting cuda running AND using the display. Intel drivers for display + nvidia for cuda works, but this means I can't use my GPU when I want to do some of the limited linux gaming.
Laptops seem to have more problems than desktops. On desktops I have many more hits than misses (if I have the graphics card installed when I install the OS). Laptops have just been terrible.
Most of the people driving server gpu purchases are used to sucking it up and doing their work over ssh, instead of locally.
I don't doubt that they work for you, but not everyone is so lucky. I have encountered serious reliability issues with their drivers.
I tried to get Ubuntu/Pop_OS! 20.04 running on a dual-GPU laptop that has an RTX-2060 and AMD Renoir integrated. Had to modify kernel boot params to disable nouveau modeset and then run script for mainline kernel upgrade + drivers to get it to run. Was not a fun Saturday =/
But prior to this, yeah Nvidia non-open source drivers have mostly "just worked" for me on the older models.
I mean, the constraints of a laptop and a desktop are as different as that of a car and a plane.
Laptops with dual-GPUs are as efficient as both as those car-plane convertibles.
Seems unnecessary to have dual-GPUs, and crazy to have both Nvidia and AMD in the one laptop.
As good as the performance of mobile GPUs is these days, they still suck up a lot of power. I don't think you'll get much work done on the go with a laptop that only has a dedicated AMD/Nvidia GPU.
It's probably beter nowadays, but I will never consider it again.
That's asking for trouble with driver issues.
On Acer Nitro 5 with Nvidia GTX-1060Ti and i5, stock Ubuntu 20.04 loaded no problems, and even DisplayLink driver for dual monitor, one through regular HDMI + other through USB -> HDMI adapter worked (though I couldn't get it to rotate display vertically).
The bugs I did have were with it constantly re-disovering network printers that I had to disable, and changing the default wifi power-saving settings because something was funky with it.
On Asus TUF A15 with Nvidia RTX-2060/AMD Renoir + AMD Ryzen 7 4800h absolutely no distro worked out-of-the-box and I needed mainline kernel + latest Nvidia drivers. But after fixing that myself Pop_OS picks up everything perfectly and no problems.
Both of them have CUDA working IIRC (at least running "nvidia-smi" says it does).
I have heard great things about Pop and I am going to be building a new machine with these new cards and giving pop a try.
Honestly, to me that's not a big sell lol. And probably not to the type of people that like distros like Arch. We just want nivida to work like AMD and mesa drivers do. (Having done some testing, I am able to squeeze more performance out of a distro that builds up, such as Arch, vs a distro that you take down, like Ubuntu).
Not sure how easy it is to actually game on it though, haven't tried yet. For everything else however, Manjaro is an extremely solid choice, with a very recent kernel too.
This is real frustrating when I want to play older games that only support 4:3 and 5:4 resolutions, because I have to knock them all the way down to 1024x768.
There's a roundabout way to manually add custom resolutions, but I've never gotten it to work with X. Maybe it would play nicer with Wayland, if Nvidia made any real effort to actually support it.
IF you are using a server with a DE then it answers the question about how yes it does affect you because you are using a DE.
In either case, it isn't "just for gaming"
What's more surprising is that ATI doesn't take this opening.
https://hackaday.com/2013/03/18/hack-removes-firmware-crippl...
i'm using google chrome, vscode insiders and alacritty and vlc, and that's pretty much it, with very little problems, after i boot into wayland and launch chrome i get some stuttering on the shadows which goes away after a couple of seconds, but that's pretty much the only hassle
Nvidia works if you add their repo and install the blobs, maybe. If your distro is mainstream enough.
I don't have too many problems now, but just recently I ran into trouble with any application that used OpenGL not working, and it went away when I rebooted.
In general I'd say they've done an okay job, but still I've seen enough bugs to say they have room for improvement.
I don't know how many of those bugs are Nvidia's fault explicitly; Linux is a bit of a wild west when it comes to software configuration, and they can't test everything or fix every buggy application.
I've just switched to manjaro kde and I'm having a blast using it every day for work, any tips on the nvidia drivers is appreciated. I have managed to brick my distro a few times trying to get it set up (and by brick, I mean getting it into a state that I can't figure out how to recover it from).
When I install them myself by running the scripts that nvidia gives you, I've never had a problem with the drivers. I've always suspected that was the problem, the way the distro's package the drivers, rather than being a problem with the drivers themselves.
I haven't been able to find any real technical details about what DirectStorage really is, but my expectations are that it will consist of:
1. An asynchronous IO API allowing for low-overhead submission of IO requests from the application to the kernel, including batch submissions and reaping of completion events.
2. Some provision for transparent compression offload, either to the GPU or to a CPU-based fallback
3. Optional support for peer-to-peer DMA transfers of data from SSD to the GPU's VRAM
Linux is already the gold standard for (1) with the relatively recent io_uring API, and has support for (3) to some extent (P2P DMA has been a fairly obscure feature until recently).
There are still some pretty big unanswered questions about DirectStorage. How well will it reduce the IO overhead that currently allows antivirus and other programs to hook into the IO stack? Will it be compatible with non-Microsoft NVMe drivers, including Intel's RST drivers that are commonly used for their software RAID? Microsoft doesn't seem to want to make that kind of information public this year.
Windows NT 3.5 (1994) would beg to differ with its support for IO completion ports (IOCP). I think io_uring is more general and more flexible for the sort of M:N scheduling systems now commonly used in programming languages, but IOCP predates io_uring by 25 years!
The rest of your comment sounds right to me, there are unanswered questions about how DirectStorage interacts with filesystem filter drivers.
io_uring does have a more ergonomic and POSIX API, but that's because it's on Linux! Fundamentally they're both completion port based replacements to polling for IO events and they're both capable of high throughput and horizontal scaling.
Essentially, it's about streaming game textures directly into the GPU memory.
The idea is that this is highly asynchronous and parallel from the perspective of the CPU, so trying to do this through the "main game loop" would be an absolute nightmare to code at the scale we're talking about here. Think 50K IOPS sustained at 8GB/s with pretty hard real time guarantees.
But i must say 3070 is really tempting for $500 for someone who is not looking to upgrade.
Up to now, OEM/AIC/AIB cards had quieter cooling systems, but they also make you pay for the silly graphics, the RGB, etc. I don't think the overclocking ability is really that much better. A quiet reference design with a non-blower cooler and a good warranty is what I've always wanted.
Any temps below 80C at load are perfectly safe and shouldn't result in throttling -- the same is true for CPUs. If you aim for lower temps than 80C, you aren't going to get better performance, although lower temps are a good way to get your computer to run more quietly.
You're not directly going to get better performance, but you can run higher clocks for longer before throttling, leading to higher performance.
In this case, it means they're reserving the best chips for the founders cards. In other cases, there have been instances where a company has two products, a high end and a low end (or medium, etc). In some of those cases, people have investigated and the chips are actually exactly the same, but the lower end product will have a core disabled or similar, depending on the exact product. That'll happen a lot of the time when the company has yield issues where too many of the chips don't have acceptable performance or one part of the chip is just broken. They'll disable the broken portion and boom, the lower end product is born. That's still a net win for them because the alternate is either to throw the entire thing away or spend more time improving the yield.
At the end of the day it doesn't really matter, you're paying a FE premium for early access mostly.
On the plus side, this time the FE card might have a top tier cooling solution, which is why I'll probably be caving to their FE tax (and probably plenty of others, focusing on cooling was a smart move)
My last gaming computer took me 9 years along with only an SSD addition, RAM upgrade, and video card change halfway through. It was only Microsoft Flight Simulator that made me jump up and damn... my timing was a just a little too early on the beefy video card.
Looking forward to some benchmarks that evaluate the difference between PCIe 3.0 and 4.0. Getting a new motherboard with PCIe 4.0 along with a CPU will up the cost considerably, so hopefully that can be avoided.
Also considering an upgrade to the Corsair RM1000x PSU which should be able to be totally silent even with the RTX 3080 according to https://www.tweaktown.com/reviews/7376/corsair-rm1000x-1000w....
UPDATE:
According to this answer, using PCIe 3.0 should not make a huge difference: https://www.reddit.com/r/nvidia/comments/iko4u7/geforce_rtx_...
This assumes, of course, that the PCIe lanes in question actually exist† and are dedicated to the card, and are not shared with another in-use device via a switch or similar chipset shenanigans.
Case in point: the only time I ever had performance problems with my eGPU setup was when attempting to do 4K HDMI output through a Blackmagic Decklink card while simultaneously using the 1070Ti for compute over the same (shared) Thunderbolt bus in DaVinci Resolve.
As far as I know, this would not typically be a problem with a single-GPU, non-Thunderbolt-connected desktop system, as desktop motherboards typically have at least one full-bandwidth x16 slot, which you'd almost always use for the GPU.
† Physical x16 slots can have fewer than sixteen connected PCIe lanes. For example, while my HP Z820 has four "x16" slots, only three have full bandwidth; the fourth slot supports x16 cards, but only at the speed of an x8 slot, because only eight of the slot's sixteen PCIe lanes are actually connected.
There are also some sites that explains why large capacity power suppliers are a waste of money. Ex: https://www.youtube.com/watch?v=X_wtoCBahhM
About the PSU, for me the only reason to go with a 1000W PSU is that the fan will remain quiet with a GTX 1080 when idle and gaming as well. At least thats what I hope.
If the same is possible with the 3080 is more questionable, especially if the card draws 320W at all times.
PSU efficiency is low at the ends of the curve, underutilized (<20%) the efficiency can drop as low as 70%. The top (not peak) efficiency is somewhere in the 30-80% load zone, that is where you want to be.
Based on that info and that the system will draw about 430W for CPU+GPU, it seems that the fanless Seasonic TX-700 is better suited.
It is quite expensive, but as someone who really hate unnecessary noise, it looks like a good choice.
Changing all the existing cables to a new PSU sucks though :p
If you have a spare core not being used when playing a video game, it can be used which should make the difference between 3.0 and 4.0 somewhat indistinguishable.
That's something I've never had a problem with when it comes to NV. And I've been using their cards for years for combined compute/display purposes.
What is your ML dev environment like?
Me too, but for a different reason: I wonder if it can work with BitLocker if you're using software encryption (as hardware encryption is transparent enough that the drive basically locks and unlocks).
It would still save the CPU cost of decompression but it'd have to go through RAM for (AES-NI accelerated) CPU decryption either way. Maybe at that point RAM speed and latencies start to matter more. Or the feature turns off altogether. Definitely something to test.
This has been my experience. Ubuntu "just works". What would get better with what you propose? (speaking from ignorance)
The other key benefit would be driver management. Updating your drivers right now can be a nightmare. If the drivers are open sourced and upstreamed into the kernel this becomes a non-issue. I do understand why Nvidia doesn't want to do that though. A lot of their lead right now is not just hardware based, but software based. They have a choke-hold on the ML ecosystem and it's a huge cash cow for them. Giving away that secret sauce in their drivers, so that AMD could make their cards seamlessly compatible would probably be a huge mistake from a business perspective for Nvidia.
I've seen this argument a lot but never from the ML perspective - and I don't think it makes sense with ML.
Nivida's advantage is ML is CUDA and cuDNN, and the huge set of tools built on them. These aren't the driver, but a layer above it.
I don't really understand the "secret sauce" argument for the drivers at all, but I assumed it applied to gaming somehow. I can't think of how it applies to ML though.
Intel and AMD despite their FOSS support, actually only do open what they feel like.
(Nvidia cards have two drivers on Linux, nouveau, the open-source, slow, and incompatible-with-Quadro ones, and NV, the binary blob shipped by Nvidia that people take religious exception to.)
You might be better off waiting for Quadro.
GeForce, from NVIDIA's perspective, is the consumer line. The drivers are focused on getting the best possible performance for gamers (on Windows you'll see a big deal made of "Game-ready" drivers) and the hardware is intended for desktop usage, i.e. a couple of hours of gaming. GeForce hardware isn't intended for long-running jobs like ML and the drivers aren't stability-focused.
That's not to say that you can't train ML models on a GeForce card or that the GeForce drivers will lead to constant crashing or anything, just that NVIDIA isn't focused on this for GeForce.
Quadro and Tesla on the other hand are all about reliability. They're intended for use in servers and workstations where they're subject to all-day (Quadro) or 24/7 (Tesla) load. The drivers are focused on making sure things don't break.
Though I think the 3090 is intended to be the successor to the previous-generation Titan, so it could be that NVIDIA has different ideas about what goes where these days.
You are more or less buying into their marketing, and paying 100-250% price premiums for a "Quadro" or "Tesla".
Tons of people have been flooring previous generation of cards 24/7 for months with compute workloads, and not nearly all of them were using watercooling. Those cards are still fine.
ECC memory might be an argument though, for CAD/CAE type of work. Doubt ML cares about a few bitflips.
Personally, looking at the RTX 3070, for 1440p, but I'm not doing anything other than some casual gaming.
Kind of works in kernel, update breaks it, switch distros to supported distro, load official driver package, update breaks it... switch to beta/bleeding kernel, graphics work, but kvm/virtualbox completely borked. I may do a clean install with PopOS 20.10 when it drops, which should be well supported in kernel and get virtualization support back in the box.
Since January it's been pretty stable, I've been on the beta kernel releases though.. when say 20.10 ubuntu and derivatives drop, should be using a kernel that's stable for the 5700xt.
I've been working more on my Windows drive, using WSL2 + Docker Desktop (wsl2 option) for the past few months though, which I've been surprisingly happy with.
I'd also love to read a guide about WSL2 + Docker.
If you install docker desktop with WSL2 installed, there's a configuration setting to "use wsl2" it may still be labelled beta as a feature. But it does work better.
I'm using the new Windows Terminal, and my default is set to WSL2 Ubuntu... for all intent and purpose, I launch VS Code from a wsl2 prompt/directory and it's connected into "linux" ... my terminal and code terminal/directory are in linux, and I use it like any linux distro from that pov. The desktop is windows, but almost everything I work in is via Linux under WSL2.
In addition to that they seem to have some issues with their firmware trampling over its own memory, causing glitch artifacts and such. I suspect they'll fix that through a firmware update.
Like I said, I'm cautiously optimistic and I'm also lucky enough that losing out on my $100 deposit isn't a financial issue for me.
a little confused here, I see Dell offering machines with cards up to 48 GB, so 24 GB seems quite nice, but not game changing.
You can buy two of the 3090’s for almost half the price of the Quadro and have 4x the processing power.
EDIT: looks like I'm not fully correct here - nvidia changed how they measure cores: https://www.reddit.com/r/hardware/comments/ikok1b/explaining...
Still great for the price, but not double the power necessarily.
Do they round-off 32-bit floats at 24-bits or something?
> 10496 CUDA cores
Not quite. 5248 cores, each supporting double fp32.
And 10496 for 3090.
Seems it is half the cores but double the fp instructions.
The spec talks cuda cores which is their inventive unit of measure.
My day job is primarily ML as well, so I might just go for the 3090. 24 GB of memory is a game changer for what I can do locally. I really just wish Nvidia would get its shit together with Linux drivers. Ubuntu has done some great work making things easier and just work, but having them directly in the kernel would be so much nicer.
One thing I'm curious about is the RTX IO feature. The slide said it supports DirectStorage for Windows, but is there an equivalent to this for Linux? I'm hoping someone with a little more insight or an Nvidia employee may have some more information.