Giter Club home page Giter Club logo

gpuramdrive's People

Contributors

abesada avatar prsyahmi avatar totalcaesar659 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gpuramdrive's Issues

I found how to permanently keep samba (Windows file share) mount point

Once GpuDrive is unmounted, mount again, previous created share location is gone and require re-creating.
Config user and permission is pretty unfriendly with Windows user interface,
meanwhile, powershell New-SmbShare also not accept GpuDrive path like R:\.

In this case, create a symbolic link at always online local drive like C:\ShareRedirect use mklink:

>cd /d C:\
// Create this folder
>md ShareRedirect
>cd /d C:\ShareRedirect
// Create symbolic link
>mklink /d "GpuDisk" "R:\"

Then right click on created symbolic link "GpuDisk", choose properties,
then go to Sharing, set a share location as usual.
Later, after unmount or reboot, share location will keep existing.
If access this location during unmount, file explorer just show a harmless dialog.
Once mount again, the share location is available immediately.

Infinite Shutdown!

If I press 'Shutdown' before un-mounting the drive, Windows keeps shutting down forever, I have to hold power button to shut it down! Which is unhealthy!

Could you add an "automatic un-mount" when the program receives a shutdown/close notice ?

Also, Can you automatically format the drive upon mounting ?

Build Request

Hey,
can you please build the latest Version for Windows and upload it to Releases?
Many Thanks.

Can You Please Support Intel Arc GPUs?

As in thread. recently Intel decided to go all-in as a third player on the GPU market, So how about GPU Ramdrive Supporting Intel Arc cards?
at least in x64bit. no need for x86 as no intel card supports x86 system

Please...

Is it possible to convert ImdiskHandleComm() into multi-threaded version?

I'm adding some multi-gpu stuff into it to use all GPUs for single drive. It works but it is slow because of multiple lock-guards and small paging size in the extra codes I add. If given 64 threads even on 8 core cpu, it can have 5-6 GB/s throughput but it is down to only 50MB/s per thread per gpu sequential and 20MB/s per thread per gpu random access (if page size is 4kB).

Is there a possibility to convert the ImdiskHandleComm() method to make it handle 64 requests in parallel as if char-array is thread-safe (array class I'm using is thread-safe so it doesn't need explicit lock)? Or OS/Imdisk is doing parallelism already? Where can I set number of "parallelism" threads?

Mounted RAM drive: 0bytes

Hello,
I am a newbie.
Great soft. Too bad that works only for some.
Mounting works ok. Formatting impossible. In properties, there is 0b capacity (mounted RAM drive).

Windows 8.1 x64 (with VS 2015 installed).
I have installed the latest drivers for Video Card. I have installed Imdisk and vcredist 2015 as requested, including CUDA toolkit. I also compiled the project in VS 2015. Still, the same effect: 0b capacity (mounted RAM drive).

I tried also with the command line all possible variants for video card name. Same effect.

Video Chipset: NVIDIA GeForce GTX 960
Video Chipset Codename: GM206-300

Obs.
In GpuRamDrive.h,
I also switched the value for GPU_API to GPU_API_OPENCL (to be forced to take the value 2) . Same effect.
Most important, and I think there could be the cause:
I also switched the value for GPU_API to GPU_API_HOSTMEM (to be forced to take the value 0) . Same effect. And that is the RAM from my motherboard. It should be worked at least with the RAM from my motherboard (not that I needed this, since I can do this in Imdisk.exe by example). The idea is that not works to make a valid RAM drive, not even from my motherboard RAM (by forcing assigning the value 0 for GPU_API in GpuRamDrive.h). And that is strange.

The capacity of the mounted RAM drive is null (0 bytes) in any circumstances.

Latest news about and observations:
Lately, I observed these:

  • in Windows 7 (x64) and Windows 8.1(x64), GPU ram disk works though (can be created), even if only below 900 mb (given the premises that should have worked with 3200 mb as the GpuRamDrive informs at startup). And even then, the screen flips as I consumed somehow the every last bit of free RAM from video card.
    Upper 900mb the mounted RAM drive is null (0 bytes) in any circumstances.

The Video card have 4 gb ram. It also displays in system 4096 mb.
Also, the video card is new.

  • in Windows 10(x64), the GPU ram disk does not works under any circumstances (the screen freeze) and it reboots after.

Regards

ram usage keeps growing

It started with 20mb then went to 70, 120, and 208
image
then it randomly starts to go down slowly

smh...

Thanks for checking if the partition already exists or owned by the program, got one of my real drives formatted...

Poor performance

Hi,

Thank you for giving us a possibility to utilize a spare graphics card.
I have a RTX 2070 Super and a Quadro K4200. Both are installed in x16 slots directly attached to CPU (not via PCH or external bridge).

Crystal Disk Mark results:

R2070S (PCIe 3.0 x16, 6553MB):
Read Seq Q32T1 754.1
Read 4K Q8T8 46.13
Read 4K Q32T1 45.51
Read 4K Q1T1 42.11
Write Seq Q32T1 861.4
Write 4K Q8T8 67.63
Write 4K Q32T1 53.00
Write 4K Q1T1 45.72

K4200 (PCIe 2.0 x16, 3276MB):
Read Seq Q32T1 708.9
Read 4K Q8T8 46.81
Read 4K Q32T1 50.98
Read 4K Q1T1 39.62
Write Seq Q32T1 782.8
Write 4K Q8T8 49.90
Write 4K Q32T1 56.90
Write 4K Q1T1 41.27

Comparison: An nvme SSD installed in x8 slot makes >3000 MB/s.

Is there any way to see if and where I have bottlenecks?

I did notice the ImDisk driver says "proxy mode", but I couldn't find your explanation about it for the second time. I remember I saw it somewhere here, maybe in Issues.

@brzz: AMD GPURD: OpenMP Compiler: LLVM/Clang compiler that supports offloading to multiple GPU acceleration

At brzz who made the works on AMD GPUs, GPURamDrive:
( you really need your own Issue dept or forum. Hope this is ok prsyahmi?)

Which compiler did you use?
I ask as Intel's Compiler cripples AMD performance by NOT using any hardware extensions (SSE, AVX, etc)
https://www.agner.org/optimize/blog/read.php?i=49

AMD's OpenMP Compiler is a LLVM/Clang based compiler that supports OpenMP and offloading to multiple GPU acceleration targets...
https://www.openmp.org/resources/openmp-compilers-tools/

Other choices:
AOCC 3.1, Clang 12, GCC 11
https://www.phoronix.com/scan.php?page=article&item=aocc31-gcc11-clang12&num=1

A bug in GpuRamDrive-cuda_x**.exe

if you use the GpuRamDrive-cuda_x**.exe to create a new virtual disk, the virtual disk can not be unmount completely, so the imdisk can not uninstall.
You can create a a new virtual disk by GpuRamDrive_x**.exe, and then ummount it. It is right,

Request: Ability to specify ImDisk command line parameter plz:

Hi prsyahmi

Would it be possible to add a the ability to change ImDisk command line attributes plz.

Im specifically interested in being able to use the -o par for Parallel I/O, but other settings like -S for sector size and -o buf may also increase performance..?

Perhaps a means to tweak other timings etc too?

Is this program REAL?

Hello,

When I open the program my GPU is correctly detected, so I click on "Mount" button:

gpu

So the partition appears on "My computer", but it isn't getting the memory from the GPU, it is using the system RAM:

image

So, is in this case the program working incorrectly or, this program is only making a RamDisk?

Thanks.

I know how to use ReadyBoost with this tool!!

Hello! i know this is not the site to put this info but it is useful!
Just has to create a VHD on Disk Manager on the GPU Drive and it will be allowed to configure has ReadyBoost device

RAMDISK

Thank you.

For this awesome GpuRamDrive program worked fantastic in windows 10.

Windows Update 0x80070001

Windows 10 22H2

If you mount virtual disk before your system drive (mount at A: or B: in case system drive is C:),
run Windows Update can result in 0x80070001, failed to download, and get these in WindowsUpdate.log

DownloadManager *FAILED* [80070001] Method failed
CAgentDownloadManager::EnsureSufficientFreeSpace

There is a workaround posted on a Chinese forum, says mount after system drive could solve this.
For example, change mount point from A: to D: or X:, Y:, Z: any letter after system drive (usually is C:)
I found that unmount temporary also help.

https://bbs.pcbeta.com/viewthread-1813767-1-1.html

how do i use/install?

i tried to follow what you said. it doesnt seem to work. i mean i can't find the output dll you're talking about. i put everything into the same Dir as you asked. what did i do wron? :(

Resizable BAR support?

I don't know if this makes any sense, but I'd like to ask for Resizable BAR support. It just seems to me that in this case the access will be more direct. The only thing, though, would be the need for barriers. Also, may needs Vulkan API.

[Solved] Run on Windows start via Task Scheduler

Create a new task in Task Scheduler with following details:

  • program to run:

    cmd.exe
    
  • arguments (set aside in second input) - I used R: disk + timeout 5 seconds + create a Temp folder after timeout

    /Q /C start D:\Apps\RamDriveGPU\GpuRamDrive_x64.exe --device GeForce --size 5120 --mount R: --format "/fs:ntfs /q" --removable --hide & timeout 5 > NUL & mkdir R:\Temp
    

TaskScheduler-RamGPU.xml.zip

Set the task to run for all users and tick the box to not save passwords, that helps to not see any cmd window popping. Also exe will not appear in taskbar, but you can eject the disk via menu anyway. Can be run on demand or upon Win boot.

Request: format parameters back plz. + Tips for users.

Hi prsyahmi
Thx again for a really great n useful app! :)

I note that one can no longer specify format parameters as one could.
This is important for 2 reasons:

  • eg: The default exFAT (fastest FS) allocation unit size for GPU sized RAM amounts is 32kb.
    This does not match the 4kb blocks in which system RAM stores data, leading to slower I/O in the ~R4K department and 66% of windows I/O is R4K...
  • It also wastes space/RAM: Slack.

ie: being able to add /a:4096 etc to /fs:exfat /q again would be nice.

Also; I understand the code has large and adjustable ...wait states? Latencies? in it to make it 'just work'.
Being able to adjust said wait states and tweak GPU-RD to ones hardware in the GUI would be great!

Also NB: [Since] ImDisk Virtual Disk Driver beta 2.0.0.
"...Rewritten I/O request logic to allow fully parallel I/O..."
http://www.ltr-data.se/opencode.html/changelog.html
That may speed things up nicely!??

Everyone:
Setting the CPU priority of GPU-RD to 'Above Normal' increases the large sequential speeds by around 20MB/s on a cheap Geforce 210 card. Probably more on better cards.

Using MSI Utility v3 to tweak (Message Signaled) Interrupts and priority for the GPU will increase the all important, to Windows, Random 4K numbers.
It will also increase FPS in games.
https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts-msi-tool.378044/

eBoostr, a disk caching app that works with Win 10 and is free (trial) for 2 hours after each boot works well with GPU-RD.
NB that it auto builds the cache every hour unless you do so manually, so don't think it's crap after 5 minutes..!
NB that you can also specify which apps/games to accelerate and files/directories to exclude.
https://www.eboostr.com/

Thx again. :)

Suggestion: DX12 Upload Heaps: use a CPU thread as a copy engine:

"...With the VRAM being managed by Windows, D3D now exposes the heap memory access directly to the CPU! This allows both the CPU and GPU to directly access the memory simultaneously..."
https://devblogs.microsoft.com/directx/preview-agility-sdk-1-710-0/

"...Copy engines can execute copy commands in a COPY queue concurrently with other GPU work, and multiple COPY queues can be used concurrently. One problem with using async COPY queues though is that you must take care of synchronizing the queues with DX12 Fences, which may be complicated to implement and may have significant overhead.

The latest release of the Microsoft provides an alternative solution for DX12 applications to effectively use a CPU thread as a copy engine. This can be achieved by creating a DX12 GPU upload heap (D3D12_HEAP_TYPE_GPU_UPLOAD) if available. CPU writes to this GPU upload heap are then forwarded directly to VRAM, over the PCIe bus..."
https://developer.nvidia.com/blog/optimizing-dx12-resource-uploads-to-the-gpu-using-gpu-upload-heaps/

Problem with CUDA (maybe just me)

I had this warning while I was trying to use CUDA version of GpuRamDrive
image

Normal version does the job just fine
image

May I ask what's the difference between CUDA and the normal one?

Multi GPU Support

No support for multiple Gpu setup. :(

I want to be able to add all of my Mining's rig's GPUs memory to a single drive letter.

If I try mount 2 GPUs (using 2 instances of GpuRamDrive), I get a Imdisk service already in use error message.

I get 5 GPUs with 2GB each and 1 GPU with 6GB... thats about ~16GB of usable Gddr ram

Is this a limitation of Imdisk?

[Question] Performance comparison if CUDA was used

First, great PoC! I can't believe nobody had though of this! ๐Ÿ‘
A quick question: I noticed your'e handling the communication via OpenCL. I was curions to know if using CUDA would've made any improvements overall. I know CUDA supports overlapping operations and tons of optimizations under the hood, and I wanted to know if you ever considered or tried that.

Also, for anybody else who may be curious about the performance on a higher end GPU, here's a screenshot of the benchmark that was done using my GTX 1080 card.

GTX 1080

Again, great work!

2 disks

can i mount 2 disks simultaneously on 2 different video cards?

ImDisk Virtual Disk Driver: fully parallel I/O: Enable with -o par command line option?

I'm no dev. Just looking for ways to speed up GPURamDrive..
Just found this:

[Since] ImDisk Virtual Disk Driver beta 2.0.0.

"...Rewritten I/O request logic to allow fully parallel I/O. This is by default only used when communicating with AWEAlloc driver for physical memory virtual disks, but can be turned on for any virtual disks backed by an image file or another kernel level driver, provided that the underlying driver supports it.
Use -o par command line option to turn on this feature.
This change should give better physical RAM disk performance. It should also give better performance for instance when using ImDisk to mount offsets of \?\PhysicalDrive objects as virtual disks.
AWEAlloc driver rewritten to support multiple requests simultaneously, which means that ImDisk no longer need to queue requests and switch to a worker thread to complete requests to a physical memory RAM disk..."
http://www.ltr-data.se/opencode.html/changelog.html

???! :)

Unable to format mounted drive.

Hi. I installed the program and tried to use it. I do mount the new drive, however the new unit cannot be formatted at all. Tried to change the format parameters and also the combination between hard drive/floppy disk and removable/non removable.
Windows recognices there is a new drive but this drive cannot be formatted. Tried with Fat32, exfat, ntfs, and even after a full format there is allways the same error: "Windows cannot complete the format".

I'm using Windows 7 64 bits, 8 gb of ram and a radeon RX 580 8 GB

Pass imDisk parameters to GpuRamDrive

GpuRamDrive doesn't have much customization available, for example, you can't create the drive as removable!

So can we pass imDisk parameters to GpuRamDrive to set more options ?

APPCRASH on close

I have a Windows 7 SP1 x64, GpuRamDrive always crashes when I close it.

Can't format drive larger than 4095 Megabytes

Trying to create a drive on a Vega FE, but 4095 Megabytes is the largest size I can allocate before it stops working. 4096 and above results in the issue where you are unable to format the drive despite it showing up properly in the ImDisk control panel.

System setup: Asus P8Z68-V with an i7 3770k, 16GB DDR3, Vega FE with 16GB HBM memory, 17.12.2 drivers in Gaming mode, Windows 10 Pro x64 version 1709. ImDisk Version 2.0.9. Tried with Vega's HBCC feature both on and off.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.