Relatedly: why no AMD GPUs? AMD's much more cooperative with Linux than Nvidia is or probably ever will be at this rate, and performance is great even with the FOSS drivers (as I've observed on both my Dell Precision 7510 and the Threadripper + Radeon rig I built about a year ago).
Like, it's kinda maddening that "the" household name in Linux laptops (if there is such a thing) has zero laptops with an AMD GPU as an option.
AMD GPUs require AtomBIOS which contains bytecode (that is: blobs) to initialize the GPU. If you look at the Linux drivers, they come with an AtomBIOS bytecode interpreter for that purpose.
There was some confrontation over that 10 years ago or so (see radeon vs. radeonhd drivers, one point of view is described at https://libv.livejournal.com/27799.html) and the people in charge of Linux GPU drivers decided to go with AtomBIOS.
> AMD GPUs require AtomBIOS which contains bytecode (that is: blobs) to initialize the GPU. If you look at the Linux drivers, they come with an AtomBIOS bytecode interpreter for that purpose.
I'm failing to see how this is any worse than the current situation with Nvidia drivers, especially if System76 is preinstalling them. You'll need blobs either way. You'll arguably need far more of them for an Nvidia GPU than an AMD GPU.
Right, but ACPI has a standard (even if using the standard has onerous restrictions) and so firmware projects like coreboot can (and do) implement their own.
For AtomBIOS, you have a single vendor virtual machine environment (bytecode + semantics) describing whatever they need in a custom form. There's no other documentation for the things out there than AtomBIOS speciment, making reimplementation rather complex.
Are the mobile AMD GPU options all that great? The RX 5500M that's coming out soon looks interesting.
The reasons for going with Nvidia are:
* Nvidia is more power efficient. This is really critical for mobile devices
* Nvidia has CUDA, which is important for (among other things) folks that use machine learning frameworks
* System76 has put in work to make using Nvidia GPUs more seamless on Linux (pre-installing the drivers, etc.)
Zen 2 really gave AMD the power-efficiency over Intel. Intel's 10nm is still largely absent from the market, and even then I'm not sure how much more efficient the 10nm process is.
I don't think the same can be said for Navi vs. Nvidia's architecture. Also, Nvidia is working on their own 7nm based GPUs.
I haven't had issues with them, even with high-performance stuff like gaming and CAD (can't speak much to machine learning, though).
> Nvidia has CUDA, which is important for (among other things) folks that use machine learning frameworks
What's stopping them from using OpenCL? Whether by using an ML library that actually supports OpenCL outright (e.g. Caffe, PlaidML) or using something like Hipify to convert from CUDA to OpenCL, that shouldn't be a limiting factor.
We initially went with OpenCL to maximize optionality, e.g., back then, GPUs were just getting into the cloud, and we were thinking of eventually getting Graphistry running on FPGAs as well. However, we had to bring a bunch of stuff to the JS world, and ultimately, we wasted a ton of time & money here and with minuscule eco-system support. Intel & AMD's SW arms are very narrow in what they actually support, so if you aren't doing some precise deep learning thing or legacy fortran whatever, sorry.
Back then, the case was unclear because so little stuff existed outside of the MPI & graphics worlds. Today, for most engineering leaders today, the CUDA ecosystem, and emerging productivity layers like RAPIDS is quite rich. They make OpenCL a niche & risky call. The goal should be writing ~100X more code than the OpenCL ecosystem is giving you, it's just surface level.
> I haven't had issues with them, even with high-performance stuff like gaming and CAD (can't speak much to machine learning, though).
Good to know. I have a laptop with the Ryzen 3500U and the Vega 8 integrated graphics. I love it for what I use it for (light gaming) but I'm not familiar with the higher-end mobile GPUs.
> What's stopping them from using OpenCL? Whether by using an ML library that actually supports OpenCL outright (e.g. Caffe, PlaidML) or using something like Hipify to convert from CUDA to OpenCL, that shouldn't be a limiting factor.
I assume just familiarity? That's just what the ML people that I know use.
I would really like to see OpenCL take a dominant position in the GPU compute space, regardless of the GPU manufacturer that has best support for it.
I think we're still a little ways off from a tipping point towards OpenCL. I think it will be accelerated with Intel's launch of the Xe discrete graphics.
Basically AI mainly use cuda. Yes there are libraries. But for the moment for most of us ... I still have to stay in high Sierra for that in my old Mac Pro. Other platform ... open CL for machine learning and AI, not sure anyone doing this. Leela zero do havr some success.
Like, it's kinda maddening that "the" household name in Linux laptops (if there is such a thing) has zero laptops with an AMD GPU as an option.