Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

TheophilusField

12
Posts
1
Followers
1
Following
A member registered Jul 22, 2020

Recent community posts

Hi Ixtch,

Well this is a strange one!

Have you tried running DainApp as Administrator?

The only other thing I can recommend is installing the latest Studio Driver (451.77 according to my research) rather than a Game Ready driver as Studio drivers are designed to maintain compatibility & stability rather than using cutting edge (& usually more buggy) changes.

Also, I would suggest installing it with the "Clean Previous Installations" option checked so the new Driver will remove previous drivers that may be having an unwanted impact on your current installation.

I'm afraid I can't offer any other recommendations, maybe someone else has an idea?

Theo

Hi IDKOmegaLul,

I would try as GRisk suggested.

If you can, use a Studio driver rather than a Game Ready or Beta as Studio Drivers are designed to maintain compatibility and stability rather than implementing cutting edge (& potentially buggy) changes.

Also, I would suggest installing it with the "Clean Previous Installations" option checked so the new Driver will remove previous drivers that may be having an unwanted impact on your current installation.

I hope this helps,

Theo

Hmmm,

Have you tried running DainApp as admin?

And are you using the Default algorithm or are you trying to use the Experimental algorithm? I managed to reproduce a "no CUDA capable device error" when using the Experimental algorithm so I would avoid trying to use that.

Its odd that 0.22 has stopped working though. Are you using a Beta, Game Ready or Studio Driver? Looking at Nvidia's descriptions of the drivers, I would use the Studio Driver as it seems to be targeted at maintaining compatibility and stability rather than outright cutting edge (& potentially buggy) performance.

0.41 should be coming out for everybody outside of Patreon in the next month or so (I think) but GRisk has mentioned to others that if they are having GPU driver issues to try and run 0.38 as it may be a bug related to the GPU detection & selection functionality added in 0.40. If the steps above have no effect I'd try 0.38

I hope this helps!

Theo

(1 edit)

Hi Joe,

Welcome to the community.

First of all, I would make sure that you have the latest graphics drivers for your system.

DainApp is bundled with the necessary CUDA binaries required for it to run (DAIN uses CUDA 9) so you shouldn't need to install anything extra.

You will want to also double-check the GPU that DainApp has selected for use, I know you said you only have one, but if DainApp has'nt selected it by default that could point to an issue.

For reference, what version of DainApp are you using?


Edit: I've been doing some of my own work and I just came across the same error you've been experiencing.

With further testing, I have narrowed it down to the Experimental Algorithm. For some reason it's not recognizing that the PC has a CUDA enabled GPU. The error occurs before any work is sent to the GPU so its not an issue with RAM spikes. It's not a settings problem either as I have tried toggling Half Precision Float, Don't use PyTorch Benchmark and interpolation multipliers in different combinations with no success.

I would advise avoiding the Experimental Algorithm entirely in 0.41

Such a showoff ;)

Now that's a good interim solution! To be honest, looking at the avisynth Licence it may be an option to bundle it into DainApp with the scripts you created.

Either that or like you suggested before, implement another ML algorithm to pick out and replace those mixed frames with blends. In a way that almost seems harder than the solution you've come up with though.

And sorry if my Hardware explanation was too simple for you, I figured I'd write it as though you didn't know much about PC hardware and then other people could use it too.

Theo

Hi daciansolgen3,

Just a few questions first:

1. What resolution is your input media?

2. Are you using the Split Frames option? If so, what are your settings?

3. In the error message, how much VRAM does it say is reserved by other applications? How much VRAM is reserved by PyTorch and how much does it say you have left?


I can't offer much help without answers to the above questions but I'll try and give advice.

If you're running out of VRAM with a 2080Ti then I can assume your input media is larger than 1080p. When trying to interpolate these large frame sizes in DainApp and get an out of memory message, you need to turn on the "Split Frames" option under the "Fix OutOfMemory Options" Tab.

Leave the x=2 y=2 defaults and 150px padding as they are for now and try feeding the frames to Dain. If it starts rendering with no error, I'd close DainApp, then restart it, re-select all my previous options and then reduce either X or Y splits to 1.

The idea is that you want as few splits as possible whilst avoiding the OutOfMemory error.

If you still get an error at X=2 Y=2 then add 1 to either axis and try again. Keep adding 1 to one, then the other until you don't get an OutOfMemory error.

Also, using the experimental Interpolation algorithm uses more VRAM than the Default algorithm so bear that in mind.


Don't run any other GPU based program at the same time as Dain as this will reduce your available VRAM as well as increase your interpolation time. Even if a GPU intensive program has been closed, VRAM may still be reserved for that program, effectively reducing the available VRAM for other programs including Dain.


"i have power ful 2080 ti that i got from illumicorp member"

I had to look up what Illumicorp is but I would try and stick to reputable sources for GPU procurement. There have been many scams over the last couple of years selling GPU's advertised as the latest models that have been lower cost GPU's with cooler shrouds from expensive models and modified BIOS's that mean they report themselves as expensive models. Pretty much the only way you can differentiate these is firstly the idea "If it sounds too good to be true it most likely is." then seller ratings and reviews and finally Benchmarks and/or a tear-down of the physical hardware.

Maybe the first thing I would do would be to Benchmark your GPU using something like Geekbench and compare it to average CUDA Benchmark scores.


Or this post might be an r/whoosh moment

I had to look up what an AMD K6 is...

I'd not long started school when that came out!

A bit weird how I know the Intel Pentium chips of the same age though. Maybe because my school PC's probably still had the original Pentiums by the time I started using them! We've been taught the frustrations of outdated hardware from an early age I guess :D

PS. good joke ;) I wonder where you'd plug in the PCIe?

Hey ChristianundCo,

I agree that scene detection would be a really great feature to get working well in DainApp. I've had some problems too with interpolated frames being created that have merged scenes together. Even worse is when you use Split Frame and you get a mind bending mosaic of two scenes!

For the meantime, I've been splitting my footage using Premiere (loads of other video editing apps let you do this) into scenes and then rendering them out as individual videos before putting them into DainApp. Then I put the output back into Premiere to reconstruct the video, add the original video audio back in and render the video as a whole.

Very time intensive depending on how many scenes you have, but this method means you get all the frames possible. Also, adding the video audio back in at the last step means you can use time remapping to stretch/compress the audio to match the interpolated video if you've lost or removed some frames. This becomes hard if you have a video with some long scenes and then short ones together as you loose more frames from the quick scene changes end of the video and then the audio doesn't match up if you only change the overall length. So you have to start using keyframes on your audio time mapping... lets not even go there...

When you try to remap time manually you start to realize how difficult it is to do automatically!!


So as long as your original video doesn't have any fades between scenes, splitting the video up before processing works really well. 

Thinking about it a bit more, if you have a fade between scenes of a few frames in your original video and there is no motion in those frames, you could remove the fade entirely before processing. Then once processed you could use the last and first frames from the two scenes to re-create the fade and fill in those pesky gaps that mess up your audio sync.

I love these types of thought experiments!


Theo

(1 edit)

Hi robmausser,

redinferno is right in saying that CuDNN supports multiple GPU's, however it requires the program to address the available GPU's individually.

Dain does not currently support the use of multiple GPU's in one instance as it would require the program to decide which GPU is going to do what and that requires extra programming which is outside the scope of the original Dain project which was for an academic research paper.


However, the answer to your specific question is no. Dain lets you target whatever single GPU you want to use and DainApp gives you a nice dropdown list :) so you could use whatever Nvidia GPU you want as long as it supports compute 5.0, 5.2, 6.0 and 6.1 or higher (if manually configured). The Tesla K80 uses compute 3.7 which is not naively supported by the Dain project.

Edit: You can run multiple instances of DainApp. I've not tried this myself as I only have one GPU in this PC right now but you might be able to use multiple instances of DainApp each using a different GPU to interpolate multiple files at once. Can someone test this or do we already know? End of Edit

If you have a K80 lying around then go for it, but if you are looking for a GPU to buy, have a look at CUDA benchmarks and compute capability before you purchase as the K80  has less CUDA performance than even the GeForce GTX 1050 which has compute 6.1. The K80 does have a HUGE amount of RAM which means you probably wont ever have to split frames even if they were 4K, but the actual processing time will be excruciating even if it works which it might not (without manual configuration and maybe not even then).

I hope this helps,

Theo

Hi ChristianundCO,

I've tried to explain PC hardware and how it relates to Dain and DainApp (DainApp is a nicely packaged version of Dain with a great UI so you won't end up tearing your hair out in frustration. Thank you GRisk for keeping us all sane)


Like FiksII says, Dain is almost entirely based on raw GPU 'power'.

Firstly, Dain uses CUDA which is an Nvidia made program which in their words is a " Parallel computing platform and programming model".

For programmers, it means that they can use CUDA to run extremely intensive computational algorithms on a GPU rather than on a CPU. Normally, this wouldn't make too much of a difference, but some workloads like Video editing and rendering are highly parallel processes (loads of discrete processes each taking a bit of work to make the main process, like rendering a single frame, go faster).

On a CPU there is a limit on how many of these processes you can run on a single core at one time without crashing the PC. This is because even though your average CPU 'core' is far more powerful than a 'core' you find in a graphics card, you are still trying to run loads of processes on one core at the same time. Its a physical hardware limitation.

Graphics cards on the other hand are designed to render video frames, a highly parallel workload. Therefore GPU manufacturers have made chips with hundreds and now thousands of cores to handle this large number of parallel processes. Not only that, but these cores are optimized for video and geometric calculations which is EXACTLY what Dain needs.

Nvidia was nice enough to create CUDA so programmers can use this massive amount of parallel processing power in their own applications.

Second is VRAM. Dain is HIGHLY reliant on the amount of VRAM your GPU has. For instance, I'm running a 1070Ti with 8GB of VRAM and I can't interpolate 1080p without using the "split frames into sections" option. When I feed the frames to Dain, PyTorch (a program Dain uses) takes up upwards of 5GB of VRAM on it own! then I have over 4GB reserved for something else (no idea what, desktop maybe?) which leaves only ~500MB for frames.

So more VRAM is better. Fast VRAM is also a good idea but capacity is king in this case.

Third is architecture. The newest Nvidia GPU's all have better core designs than the last generation. If you look at CUDA benchmarks online, you can see that cards of different ages but with similar numbers of cores have different results. This is mainly down to the higher efficiencies of the core designs in newer models.

GPU TLDR: You need an Nvidia card with as many CUDA cores as possible and as much VRAM as possible. Newer is also better. 2080Ti is superb. If your swimming in money then the newest Titan, Quadro or Tesla cards are the ultimate option but if you have that sort of money I would still wait until the RTX 30xx series launch as you can probably get equal performance for literally $1000s of $ less.


Now onto the CPU. Again as FiksII says, the CPU isn't that crucial as its only really used by the ffmpeg component of Dain which extracts the video frames before processing and then renders the video after processing. Both of these steps are wayyyyyyyyyyy faster than the frame interpolation step so you don't need to go crazy on the CPU spec.

I have a Ryzen 7 3700x (8 core 16 thread) and this extracts frames at between 80-1000fps depending upon the resolution and quality. I don't know how long the videos you want to use are, but a 5 min 25fps video is only 7500 frames which gives me a extraction time around 7.5 to 75 seconds. Not exactly ages, especially compared to the interpolation time.

Rendering the interpolated frames into video is a bit more intensive but not much.

CPU TLDR: middle of the road hardware is fine Ryzen 7 3700/3800 X or XT. Ryzen 9 chips if you do more video editing, Threadripper chips if its your job or have lots of money :D. I would recommend AMD hardware as its outclassing Intel in all performance and price metrics right now. I used to be a strictly Intel guy until a couple of months ago but right now Intel's offerings just don't match up, and their attitude to customers is poor (though that's mostly down to the fact they haven't had proper competition for years).


System RAM.

Not a big issue for Dain capacity wise. It depends more on what else you want to use the PC for. I would say 32GB is what you need at a minimum nowadays if your also using your PC for video editing. This just means your favorite video editing software can cache more of the video while editing so your not forced to watch a slideshow during your edit.

If you are using AMD hardware, you NEED to look up the best RAM kits for the job. The speeds Ryzen architecture can get is directly coupled to the speed of your RAM. I can't recommend a kit as it depends on your budget and RAM is coming out all the time, but there are really good videos from Gamers Nexus on YT about RAM speeds and Timings and how they affect Ryzen chips.

I can tell you what I have though. Corsair LPX 3200 CL16. Low cost and doesn't bottleneck the Ryzen CPU. I could have paid more to get higher frequencies and faster timings though.

RAM TLDR: Again, have a look at the videos from Gamers Nexus but as a rule for Ryzen, faster timings (lower CL values like CL16 or less) are better than slower timings with higher frequencies. That's why the kit I used is a great compromise for me. Intel hardware doesn't care about RAM as much so whatever you like really.


I hope this helps you and hopefully others in understanding what Dain, DainApp and to a lesser extent, video editing requires.

Happy rendering,

Theo

Permissions are a minefield. Peoples PC's have so many different setups and its even worse if its a Business or School's PC!

Like Bassquake said, try running the app as Administrator. The location of the file looks like it should work ok.

I see you've targeted a OneDrive location for the mp4. Sometimes using cloud based sources can have a unwanted effects when running programs, but in your case it should be fine as its only the source of the video and your working directory (output) is on your PC. Once ffmpeg has extracted the frames & file information, DainApp shouldn't need to query the source file.


I hope this works for you,

Theo

Hi Schorsch,

I'm pretty new to the DainApp and not very experienced with debugging but I'll try help. If anyone see's me making an incorrect recommendation please jump in!

What version of DainApp are you trying to run? I assume its the latest 0.4?

Personally, I'm using 0.4 on Windows 10.0.18363.

I've looked at the error "DLL load failed while importing QtCore" and found that when relating to Qt, it seems to be Python3.dll that is native to python installations that may be missing.

Can you search your DainApp folder to see if it contains Python3.dll? Mine has the following: Python3.dll , Python38.dll , Python38com.dll in the main folder. It also has two instances of torch_python.dll in two sub-folder locations.

If its not there, then try downloading and extracting DainApp 0.4 again. To be honest, I'd try re-downloading and extracting again anyway (I use WinRAR).


I hope that gives you some things to try.

Theo