3 ms·
That is mostly pointless. A PCIe4 NVMe can read at around 7 GB/s. You'll likely find that few applications can actually manage that in practice, because you h
by dale_glass 5y ago
That is mostly pointless.
A PCIe4 NVMe can read at around 7 GB/s.
You'll likely find that few applications can actually manage that in practice, because you have to do something with all that stuff: uncompress it, process it into various in-memory data structures, etc. You need a high end CPU to go along with it, as well as software written to do all that decoding in parallel. It may require planning ahead of time just to ensure that it's possible to uncompress data that fast on existing hardware.
Many programs and games aren't going to bother because it massively increases complexity and the benefit isn't a lot for many applications. Eg, having a game load a level in 1 second rather than 15 on a 16 core CPU -- that's neat, but you were going to stay in that level for half an hour anyway, and it's a potential source for bugs.
You're only likely to see code take good advantage of such hardware if it was especially made for it, like you have an enormous world with a very high detail level that can't be preloaded and the code relies on constantly streaming it.
- tristor 5y ago> You're only likely to see code take good advantage of such hardware if it was especially made for it, like you have an enormous world with a very high detail level that can't be preloaded and the code relies on constantly streaming it. For AAA titles this is pretty commonplace, with progressive loading to eliminate loading zones. The exception is MMOs and single-map multiplayer games (CoD, etc) which have a loading point which they also synchronize users. For League of Legends, in particular, it was interesting back in the day because it shows you how long it takes each person to load, I'd always be first by a large margin with a RAM drive. Of course it didn't help since you had to wait for everyone to load before you started, but in single-player games it was a huge benefit, especially epic RPGs which had minimal loading zones.
- dale_glass 5y agoI mean, it's hard to keep up with a NVMe as it is. Anything not specifically intended for that scenario will probably load data too slowly for a RAM disk to improve matters, and anything made for a NVMe is going to be made to stream data in real time where it won't make a noticeable difference.
- Koshkin 5y agoOn the other hand, I think mmap from a ramdisk should be as fast as it gets.
- dale_glass 5y agoOnly if everything is already in 100% usable condition. Eg, if you have textures and need things like decoding the PNG/JPG, creating an instance of the Texture class and filling in the fields, re-encoding it into whatever format and resolution your video card wants... that's where you're going to lose a lot of the performance.
- Koshkin 5y agoYes, mmap is most useful when the data is usable "as is."
- theandrewbailey 5y agoAgreed. Actual benchmarks prove that there isn't a difference in load times between SATA and NVMe SSDs for somewhat modern games, much less RAM disks: https://www.pcgamer.com/anthem-load-times-tested-hdd-vs-ssd-vs-nvme/ https://www.pcgamer.com/anthem-load-times-tested-hdd-vs-ssd-... https://hardforum.com/threads/nvme-m-2-ram-drive-raid-sata-iii-ssd-game-load-time-comparisons.1911914/ https://hardforum.com/threads/nvme-m-2-ram-drive-raid-sata-i... Like you said about requiring a bunch of processing, DirectStorage[0] should be able to skip a lot of processing when loading from NVMe. I haven't read that DirectStorage works with RAM disks, but even if it was, there might not be a difference in load times between them. You'd be better off buying more NVMe than RAM, if game load times are your only use case for a RAM drive. [0] https://devblogs.microsoft.com/directx/directstorage-is-coming-to-pc/ https://devblogs.microsoft.com/directx/directstorage-is-comi...
- ksec 5y ago>DirectStorage[0] Exactly. The reason why they don't shown any difference is because games are not optimised for it yet. PS5 and Xbox now set the baseline for storage standard there will be lots of work going into that.