Hmm, technically no, an R7 5700G system and 2x 32GB sticks would be around a fifth of the price. That's if you don't need a lot of compute. It's also right around 1/8th the performance of a 3080 but it doesn't have Tensor cores which is big downside in ML.
In theory you could even push the 5700G to 128GB if you figured out a way to get ECC to work on it.
But that’s system memory. Not GPU memory. M1 shares that memory, so it’s addressable by both directly, but with ryzen (and almost every other consumer platform) the cpu and gpu memory are separate.
It's unlike 5700G would push 200-400GB/s for GPU tasks, assuming one gets pytorch/tensorflow to use the shared memory and BIOS allows setting such a large shared window, all of them unlikely unfortunately.
Now that's a completely different argument, and still mostly incorrect. The 5700G will access as much memory throughput from its GPU as you can feed it. The limitation is not the GPU, it's how fast you can clock your RAM.
The BIOS doesn't set the shared memory. The BIOS sets the dedicated memory. The shared memory is set by the OS and driver as you need, and the only limit is how much memory you have and how much is used by other processes.
You can force any program to use shared memory by making dedicated memory low. As I said, these programs don't really choose to use it, it's a driver/OS responsibility.
The 5700Gs memory controller indeed can't go above 100GB/s. However 200-400GB/s is not what the M1 Max GPU can do, it's combined performance. You'd have to substract CPU performance. The M1 Max GPU would still be faster of course. But the premise is that GPU performance doesn't really matter.
In theory you could even push the 5700G to 128GB if you figured out a way to get ECC to work on it.