Burrito of Peace wrote on Sep 2, 2020, 22:55:
RedEye9 wrote on Sep 2, 2020, 18:36:
I'm not going to get that technical because it would hurt my head and I wouldn't understand it anyways, but don't you start running into an issue with the number of lanes if you have a mongo GPU along with 3 or more nvme drives all vying for the same freeway?
With current systems, yes. I don't give a flying fuck about Intel because they are so far behind so I'll focus on AMD. Current gen 3000 Ryzen systems can support up to 20 lanes (technically 24 but 4 are dedicated to the chipset interconnect so they're non-addressable). However, current gen EPYC CPUs give you 128 lanes per processor. It is not implausible to assume that future platforms within the next 1-5 years will gain some of EPYC's tech and provide more lanes than what is currently available. Most likely due to the future demands of GPUs and storage. We always see server tech filter down to desktops. Multigig NICs, for example.
eRe4s3r wrote on Sep 2, 2020, 20:53:
I give you a neat hint: Pci-E extension cards for NVMe to PCI-E, cost about $15
You probably should check what games are sized at nowadays ^^ Because RAM DISK isn't a solution to anything. Ram is precious, and also should never be involved in LOADING something to the GPU but that's another issue.
Yeah, an add-in card that takes up a slot unnecessarily and disrupts airflow. I'll pass.
I am well aware of what games are sized at nowadays. The super huge ones are outliers, not median average. A random sample of game sizes I have currently installed:
Control Ultimate Edition - 42GB
Wasteland 3 - 37.8GB
Guild Wars 2 -47.6GB
For the sake of whole numbers, I rounded W3 and GW2 up to the nearest whole number which gives me a mean average of 43GB (again, rounded up to the nearest whole number).
I have VMs and video files that are larger than that.
A ramdisk is very much a solution to many applications. Hell, I have run whole OSes out of ramdisks with desktop environments and applications installed. They're also awesome for cache pools for DB transactions, write caches, read caches, data streaming pools between cluster nodes, etc. Data is just data. Also, in no way is RAM "precious" unless you're using some shithole OS like Windows which has its head shoved way up its ass in how it handles memory. Even monetarily, it isn't precious. I can deck out a system with 64GB of ECC DDR4 3200 RAM for $452USD. It wasn't that long ago that I would spend five times as much on half that much RAM.
Even so, the GPU is almost irrelevant in terms of external transfer speed because data doesn't magically leap off a disk straight to the GPU. It has to go through an engine which is largely processed by the CPU which is a sequential processing unit. We kind of cheat with multiple cores but few games are genuinely multithreaded to the point where processing threads in parallel actually achieves a substantive difference. Let's take our 32GB of ECC RAM. It's maximum theoretical transfer rate is 25GB/s. However, that's not indicative of actual, real world transfer because there's a whole bunch of things going on in the backend that is going to cut that down. So let's be optimistic and say 20GB/s. The fastest NVMe on the planet's maximum theoretical sequential read speed is 6.5GB/s and that NVMe (the Samsung 980 Pro) hasn't even seen the light of day yet. But wait, there's more! The PCI-e 4.0 spec states that an x4 configuration has a theoretical maximum of 8GB/s. So let's quadruple that for an x16 configuration and say the maximum theoretical limit is 32GB/s. Even on its best day, the fastest NVMe on the planet isn't going to be able to max out PCI-e 4,0's theoretical limit at its theoretical limit. What comes closest to filling that pipe the fastest is a ramdisk backed by ECC memory. BUT...we forgot a small detail. We need to deduct around 10% of the RAM's speed because, of course, ECC. So that drops it down to a real world speed of around 18GB/s. Which is bigger? A theoretical maximum of 6.5GB/s or a real world maximum of 18GB/s? And that's all just a really simplified view of just transfer rate. It doesn't take in to account loads of things like preemptive interrupts which is going to degrade speed even further. Things that are going to hit the NVMe a lot harder since it is further down the bus than the RAM.
RAM is there to be used, period. If it's not being used to at least 85% of capacity, it's wasted money and electricity.
It's reply worthy only because you managed to write such an insanely good and well written explanation for SERVERS and their loading and ram and IO requirements, and yet you managed to miss the mark on how games and their engines actually work. A ram disk is never going to give you ANY speed or loading advantage in games. Because RAM DISK gives you CPU overhead which is the actual limiting factor, not throughput, NVME + this new GPU feature will eliminate the CPU bottleneck for NVME <-> GPU transfers. And that means a full 16x pci-e lane for loading with NO cpu overhead. Which is superior, in every instance, to anything you can have on Linux with Ram Disks (or even on Windows, a ramdisk is ALWAYS incuring a CPU overhead penalty)
Not to mention if you played ACTUAL AAA titles you'd know that they are not "43gb on average" ;p Fallout 4 has 90gb (without mods, those come on top) Warhammer 2 has 61GB and many other modern games go way beyond that, like Destiny 2, Horizon Zero Dawn, Red Dead Redemption 2...... a SSD is always going the be the superior choice for game loads. If you could avoid going through the RAM and eleminate any CPU/RAM dependency games could already run way faster than they do now too, because again. CPU = Bottleneck, Not your bandwidth throughput on the PCI-E lanes.