Had VAM running from a server-grade SATA
HDD is the past and did some measurements against SATA
SSDs with and without DRAM cache. Measured the VAM load times on a bloated installation. I do not have the numbers anymore, but they ranked like this:
- SATA SSD with DRAM cache, fastest but within margin of error of 2), like 1-3 seconds
- SATA HDD Seagate Ironwolf Pro 10 TB
- SATA SSD no DRAM cache, VAM load time very long!
The measurements on the SATA-SSDs are from multiple drives. Samsung, HP and cheap no-name brands. I have a bunch of them laying around here from my previous IT-job. They where 512GB / 1 TB in size. The one big mayor difference in performance always came from whether they had DRAM cache or not.
I did not test the VAM cache specifically here - instead the entire VAM folder was copied to that drive. Would like to have compared against NVMe too - but I have only one M.2 slot. That's the system drive that I will not touch. To important.
Even tried raid 0 with two known good SATA SSDs - not worth it.
Edit / speculation:
My guess is that we are all using a very suboptimal texture format anyway - which increases especially texture load times unnecessary.
PNGs and JPEGs are stored in such a way that they need to be converted to be usable from VRAM.
There are formats specifically designed to be used on GPUs and
Unity 2018 actually supports it but VAM does not.
BC7 for example could be loaded directly. No CPU time spend on converting into the pixelformat needed by the GPU. MipMaps already included. Sure the package-file sizes would be bigger but on modern SSDs (especially NVMe) I doubt this would be a bottleneck.
Unfortunately it's not that simple to "just add" another format to VAM. One has to consider special scenarios. For example when the genital texture is being generated from the torso texture. There are many cases where combining multiple texture "layers" into one final texture would be the optimal way for render-performance / less VRAM consumption - decals for example. I do not know how the VAM caching system works, but if I had to guess it does exactly that - combine multiple textures before they are being shoved into precious VRAM to save memory. I know that's how DAZ Studio does it.