Menu

#40 GpuRamDrive: RAM Drive in GPU VRAM using ImDisk:

open
nobody
None
2023-07-13
2021-07-20
No

Hi.
Thx for a great app!

SUGGESTION:

RAM is always at a premium and in use (Superfetch etc)
GPU RAM is not.
Most all GPU memory is free and idle except when playing games etc.

GpuRamDrive
allows you to make a RAM Disk in GPU memory using ImDisk's Proxy feature:

Intro and
For Nvidia:
https://github.com/prsyahmi/GpuRamDrive

For AMD:
https://github.com/brzz/GpuRamDrive/releases
(the above version creates a RAM Disk in system RAM, not GPU VRAM)

Wish List:
1:
It would be great if GpuRamDrive was fully integrated into ImDisk so that the VRAM disk could be easily auto created and loaded with files at every boot.

2:
It would be even nicer if said disk was auto mounted as a VHD at boot, so that various disk caching apps (StoreMI, Primocache, Readyboost, HDDTurbo etc) could/would auto use it.

3:
Dynamic resizing would be great!?

4:
The Ram Disk created by GpuRamDrive is dissapointingly slow.
Apparently the software is Proof of Concept with much room for improvement and ImDisk's Proxy feature isn't exactly blisteringly fast either!? :)
It wou be really great if the whole lot were optimised for better speed.
Perhaps multi cored memory access like SoftPerfect's RAM Disk uses??

This would be a great and unique feature for ImDisk..!?

Discussion

  • Paul Arakelyan

    Paul Arakelyan - 2023-07-04

    4:
    As I understand, GPU VRAM isn't as easily accessible as main RAM. Factor in PCIEx link speeds, changing GPU/VRAM speeds/power saving/GPU load and you get a totally unpredictable performance. And if it's some notebook - I bet suspend/resume and inreased power draw will be among the issues you'll meet.

    I just tested 3 scenarios on Nvidia 1070 (MSI afterburner all way down, both frequencies and power limit), idle power 10W:
    launched gpuramdrive-cuda, created 6000MB exfat, waited like 30s for GPU/mem speeds to go down before each test.
    1) "fresh":
    CrystalDiskMark 8.0.1 x64 (C) 2007-2021 hiyohiyo
    Profile: Real
    Test: 4 GiB (x4) [R: 0% (0/5998MiB)]
    Mode: [Admin]
    Time: Measure 5 sec / Interval 5 sec
    OS: Windows 10 Pro for Workstation [10.0 Build 19042] (x64)
    [Read]
    SEQ 1MiB (Q= 1, T= 1): 978.009 MB/s [ 932.7 IOPS] < 1071.39 us>
    RND 4KiB (Q= 1, T= 1): 69.954 MB/s [ 17078.6 IOPS] < 58.23 us>

    [Write]
    SEQ 1MiB (Q= 1, T= 1): 1019.970 MB/s [ 972.7 IOPS] < 1026.74 us>
    RND 4KiB (Q= 1, T= 1): 79.224 MB/s [ 19341.8 IOPS] < 51.38 us>

    Power draw: 14.4W, GPU load 20-30%, frequencies don't go up from idle, bus interface load close to 30% - that is hypothetically 3x speeds can be achieved under some conditions (faster CPU/main ram or some other way).


    2) Under GPU load (GPU-Z PCIEx render test, 1500MHz GPU/3300MHz VRAM)
    [Read]
    SEQ 1MiB (Q= 1, T= 1): 848.847 MB/s [ 809.5 IOPS] < 1234.33 us>
    RND 4KiB (Q= 1, T= 1): 6.930 MB/s [ 1691.9 IOPS] < 590.49 us>
    [Write]
    SEQ 1MiB (Q= 1, T= 1): 845.372 MB/s [ 806.2 IOPS] < 1237.97 us>
    RND 4KiB (Q= 1, T= 1): 17.487 MB/s [ 4269.3 IOPS] < 233.81 us>
    Power draw: 90W - notice 10x drop in random read IOPS

    3) hardly reproducible - gpu frequencies didn't drop yet but there's no GPU load
    [Read]
    SEQ 1MiB (Q= 1, T= 1): 1604.766 MB/s [ 1530.4 IOPS] < 652.97 us>
    Power draw was like 40W

    4) Compare to "usual" ImDisk ramdrive, and it doesn't get affected by GPU load as much:
    [Read]
    SEQ 1MiB (Q= 1, T= 1): 4362.111 MB/s [ 4160.0 IOPS] < 240.02 us>
    RND 4KiB (Q= 1, T= 1): 68.100 MB/s [ 16626.0 IOPS] < 59.92 us>

    [Write]
    SEQ 1MiB (Q= 1, T= 1): 5741.130 MB/s [ 5475.2 IOPS] < 182.33 us>
    RND 4KiB (Q= 1, T= 1): 69.784 MB/s [ 17037.1 IOPS] < 58.47 us>

    So, it's worth using only in the case when you can't expand RAM and really have lots of GPU ram coupled with power availability

     
    👍
    1
    • Neville Cawood

      Neville Cawood - 2023-07-13

      Hey Paul

      Thx for the 'Under load' tests. The drop in R4K is eye opening!
      But I don't use GPURamDrive and games etc at the same time

      I cannot speak for everyone; only my often used on client systems use case:

      The client/s has a notebook with a dedicated GPU/VRAM that they never use/game and a HDD.
      I set up GPURamDrive and then eBoostr to use the otherwise wasted VRAM as a cache for frequently used R4K data.

      This works very well, with a noticeable uplift in the speed with which browsers and software load.

      My workstation (AMD 3900x, 16GB DRAM, 8GB 5700xt GPU:
      I have enabled prefetch and Superfetch so my DRAM is always used to the full.

      I use the VRAM drive for unzipping downloads to and installing software etc.
      Basically as a scratch disk to save writes to my SSD.

      I would certainly use it as a disk cache if I were not already running a NVMe SSD and eBoostr on an Optane 800p, which is 4x faster than GPURamDrive at R4K, and 58 GB in size.

      Personally, I think having the choice to use GPU RAM for a/the RamDrive is a very nice feature to have.

      Improving Performance: (currently implementable)
      1:
      RAM physically uses 4KB 'sectors' or data blocks.
      Setting your FS's cluster size to the same 4KB speeds things up.
      ie:
      Format parameters: /fs:exfat /q /a:4096
      (This advice is valid for all RamDrive implementations)

      2:
      Download and Message Signal Interrupt utility v3 :
      https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts-msi-tool.378044/
      Try Msi
      Try 'interupt priority' on high.

      3:
      Set the priority of GPURamDrive .exe to above normal in Device Manager.
      NB:
      That 'above normal' leaves the I/O priority at normal whereas 'high' changes the I/O priority to 'above normal'.
      Changing I/O priority can get your drives' (priority) out of sync and actually slows things down...

       

      Last edit: Neville Cawood 2023-07-13
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.