Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
![]() |
|
Thread Tools | Search this Thread | Display Modes |
![]() |
#19941 | Link | |
Guest
Posts: n/a
|
Quote:
![]() EDIT:- What a shame it wasn't ![]() ![]() Last edited by TDS; 24th January 2023 at 07:17. |
|
![]() |
![]() |
#19942 | Link | |
Registered User
Join Date: Aug 2020
Location: Pennsylvania
Posts: 178
|
Quote:
so I set the client machine encoding servers in the ripbot264.ini by just using this: Server1CommandLine=/port 1000 /priority normal /restart-if-no-progress /avisynth-prefetch-threads 12 /x264-threads 16 /x265-threads 16 Server2CommandLine=/port 2000 /priority normal /restart-if-no-progress /avisynth-prefetch-threads 12 /x264-threads 16 /x265-threads 16 All my encoding servers are set by a windows batch file that sits on the desktop and also a shortcut is added to the startup folder so when a server is booted, it loads automatically and is ready to go. I have this in the /bat file for the 16 core Ryzens: encodingserver /port 1000 /priority normal /restart-if-no-progress /avisynth-prefetch-threads 12 /x264-threads 16 /x265-threads 16 and just this in the 12 and 10 core boxes: encodingserver /restart-if-no-progress /priority normal So as far as I know the client does not "push" its encoding server settings to the servers |
|
![]() |
![]() |
![]() |
#19943 | Link | |
Registered User
Join Date: Aug 2020
Location: Pennsylvania
Posts: 178
|
Quote:
My initial "way too early" observation is that it does make a difference, but I am not sure it is the magic pill yet. On the 7950x and 5950x the utilization graph is a lot more stable across the board, not the constant wild swings in the decoder utilization. There are still some points during the middle of a chunk where the encoder drops out and the decoder takes a dive for 10-15 seconds. Then it goes back to a stabilized somewhat flat bar. Running at 12 core the bar is stable the whole way across the chunk. FPS are definitely better coming close to the 5900x numbers, but not as high as they should be. One thing I did notice was I opened a second encoding window on the 7950x at full cores, and performance dropped a little bit combined vs single. When I did this on the 5950x, both encoding windows puked their guts out. Will post back when I look more thoroughly at it later this week |
|
![]() |
![]() |
![]() |
#19944 | Link | |
Guest
Posts: n/a
|
Quote:
I guess I just wanted another user's confirmation. Thanks Now onto more testing.. |
|
![]() |
![]() |
#19945 | Link |
Guest
Posts: n/a
|
More testing...(quite discouraging)
So I did a lot more testing earlier today, and posted a rather large page of info.
But then I started to do some "proper" encodes, and the whole process went out the window, it just wasn't relevant, so I deleted the post ![]() You can test all you like, and maybe the "test" file isn't too complex, so it doesn't really reflect what you will encounter with any other encode. I added SetCacheMode(1) to the script of the encode I was going to do, and tbh, I don't think it makes much, if any difference, but having said that, it might as well added to any "custom" script, just in case. So all the info I have posted over the last couple of days if kinda moot. ![]() Anyway, I did a 4K encode with some different settings, and the 13900KF was actually faster than the 7950X (for the first time), but then when I went onto the next job, the 13900KF "fell off a cliff", and the 7950X , "went to the moon". So about all I can say is I am currently using these command line's :- Code:
/avisynth-prefetch-threads 12 /x264-threads 16 /x265-threads 32 & Code:
/avisynth-prefetch-threads 16 /x264-threads 16 /x265-threads 32 I even tried this x265 command :- Code:
--level 6.2 --profile main10 --hdr10 --hdr10-opt --output-depth 10 --ctu 64 --high-tier --vbv-bufsize 800000 --vbv-maxrate 800000 --asm avx512 --pools 32 |
![]() |
![]() |
#19946 | Link |
Registered User
Join Date: Aug 2020
Location: Pennsylvania
Posts: 178
|
I ran through the same tests and setup as this past weekend except this time i added the "SetCacheMode(1)" to the top of the avisynth script.
What I can basically say is that it made little to no difference on any of the tests as before. If anything the 5950x's trended a little better and the 7950x trended a little worse, but all by very small percentages. This was for both the 4k and 1080p runs It definitely did not take care of the issue with 4k encodes running full out on the 5950x and 7950x, but it was worth a shot trying it, thanks... I did one last test on the 4k Animal House, this time not using any avisynth script or settings, just load it and go. This results in no decoding going on and just showing encoder cpu time. The 7950x running at all 16 cores was by far the fastest, followed by the 5950x at all 16 cores, and then I tried with the 7950x with 12 core using affinity mask and that was slower than the others which I expected. This makes me convinced the issue has to be with the relationship between ffmpeg and it using the avisynth script as the input and with avisynth sending more information to ffmpeg than it can handle when the size of the stream gets to a certain point with 4k. The hose between them just isn't big enough and it may just mean that the hose can't get any larger. |
![]() |
![]() |
![]() |
#19947 | Link | |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,817
|
Quote:
A 4K encode can easily take over 4GB of cache memory. Some scripts I've used, have taken almost 20GB ![]()
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
|
![]() |
![]() |
![]() |
#19948 | Link | |
RipBot264 author
Join Date: May 2006
Location: Poland
Posts: 7,927
|
Quote:
Code:
SetMemoryMax(16384)
__________________
Windows 7 Image Updater - SkyLake\KabyLake\CoffeLake\Ryzen Threadripper |
|
![]() |
![]() |
![]() |
#19949 | Link |
Registered User
Join Date: Aug 2020
Location: Pennsylvania
Posts: 178
|
Tried earlier with SetMemoryMax(8192) along with the cache setting and saw no difference. My only question with that is where would I see the memory being used by avisynth. It does not show up in task manager anywhere that I can see. ffmpeg with and without the 8192 setting was at around 5.5 gig memory used in task Manager. I will try setting it to 16 tomorrow sometime. In the middle of something (work) at the moment. Only problem i could see if 16gig works is some of my servers only have 16 in them (the majority are 32) and that setting would to push out to all the servers since it is in the avisynth script (but we would be closer to solving the mystery).
Also Atak, can we and what would be the correct way to set the frames for avisynth referenced by Boulder above for some testing. Would it be "/avisynth-prefetch-threads 16 frames 16" or "/avisynth-prefetch-threads 16 /avisynth-prefetch-frames 16" |
![]() |
![]() |
![]() |
#19950 | Link | |
Guest
Posts: n/a
|
Quote:
Am currently trying SetMemoryMax(16384), & SetMemoryMax(24576), and this, SetMemoryMax(32768), failed, I only have 32Gb of system memory. It's starting to be a PITA ![]() EDIT:- So how I'm "testing" today is actually doing a "proper" encode, and stopping after each completed chunk, for adjustments, and I have tried different SetMemoryMax(), and it doesn't make any significant difference, sadly. I think that it might be best practice to just run one DE Server per PC (which sounds like a waste), but the single chunk encoding speeds a really up there ![]() Last edited by TDS; 26th January 2023 at 02:30. |
|
![]() |
![]() |
#19951 | Link |
Registered User
Join Date: Aug 2020
Location: Pennsylvania
Posts: 178
|
I've always used a chunk size of 2. The problem with going larger especially with distributed encoding is inevitably your slowest server or both chunks of a server running 2 encoders will end up being the last couple chunks to finish up. Add that to the last chunk sometimes being close to double it's size. An encoding job could end up being 20-30 minutes longer depending on how those last couple of chunks line up.
And that brings up another variable in all of this is total time for an encoding job. Just looking a FPS is only half the story. One could look at 2 similar length jobs and 1 could be significantly faster running 2 encoding windows per server, and the other could be significantly faster running just 1 encoding window per server depending on how things line up and there is no way to tell ahead of time. There is no way to really get around this, it is just the nature of the beast. Eventually I guess it would all even out. Don't get me wrong, I am really pleased with the performance of the 59 and 79 50's once I get them setup properly. Right now this whole thing of why we have to knock down the 16 core Ryzens is more of an itch I keep scratching. Even though if we do eventually figure out what is going on, I doubt the performance increase would be all that much more than what we are getting now. It's more a curiosity now. |
![]() |
![]() |
![]() |
#19952 | Link | |||
Guest
Posts: n/a
|
Quote:
But one possible advantage of less chunks is the "waiting time" between chunks, sometimes it can take a reasonable amount of time for the processing to start. Quote:
Quote:
![]() I wonder if there are many users out there that have Threadripper's doing RB, they would have to have interesting problems with 64 cores etc.... |
|||
![]() |
![]() |
#19953 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,817
|
If ffmpeg is the one doing the frameserving (and possibly encoding too), its memory consumption is the one to look at. I always use the Details tab in Task Manager to see things better.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
![]() |
![]() |
![]() |
#19954 | Link | |
Guest
Posts: n/a
|
Quote:
I just checked 2 of my PC's, (that were currently encoding) and they are using between 5,200,000 & 5,450,000 K. Last edited by TDS; 25th January 2023 at 10:06. |
|
![]() |
![]() |
#19955 | Link |
Registered User
Join Date: Mar 2011
Posts: 474
|
It's my theory that the avisynth threads is waiting on frames when using SMDegrain/MDegrain. During my testing I watched the CPU performance during each increase in threading of avisynth threads. As long as I left a bit of headroom for the CPU to bounce between 85-100% usage everything worked great. But as soon as I increased the avisynth threads to high, the CPU went to and stayed at a 100%, everything drastically slowed down. And yea, this seem more pertaining to 4K content and not 1080p as matching 16 avisynth threads to 16 x264/x265 with 1080p was humming right along. So it's a bit of a balancing act to feed two different processes that can process data at different rates that rely on each other.
|
![]() |
![]() |
![]() |
#19956 | Link | |
Guest
Posts: n/a
|
Quote:
![]() So, interesting you say that, I did a run this afternoon, upscaling a 1080p to 4K, using a deep_size script, as well as a tr=4 strength filter, and I also changed it to 3 minute chunks, (the last chunk was only about 800 frames bigger) and ONLY 1 DE server per PC, had 4 PC's going, and the speeds were really good, and like you said, with the CPU usage bouncing between 80% & 100% or so, things were running sweet ![]() The 7950X & the 13900KF were swapping fastest FPS's all the way thru, they are SO, SO close to each other. I have changed my encoder command lines a fair bit, they are a little different on each PC, and for now, seems to be working the best. |
|
![]() |
![]() |
#19957 | Link |
RipBot264 author
Join Date: May 2006
Location: Poland
Posts: 7,927
|
My last idea. Have you tried changing process priority once encoding is running for ffmpeg.exe from default to for example HIGH. x265.exe keep as is. You can use Process Hacker/Explorer for that.
__________________
Windows 7 Image Updater - SkyLake\KabyLake\CoffeLake\Ryzen Threadripper |
![]() |
![]() |
![]() |
#19958 | Link | |
Guest
Posts: n/a
|
Quote:
What about the encoder "priority" setting in RB, would that make any difference ?? Also, Process Hacker has been superceded... https://www.systeminformer.com/ UPDATE:- You CAN set this to a HIGH priority with System Informer (Process Hacker), but to set it permanently, you need to have the app set up as Administrator (install it with Admin rights) Last edited by TDS; 26th January 2023 at 01:49. |
|
![]() |
![]() |
#19959 | Link | |
Registered User
Join Date: Jan 2023
Posts: 5
|
Quote:
|
|
![]() |
![]() |
![]() |
#19960 | Link |
Guest
Posts: n/a
|
Request for black text..
Atak, I have a simple request that will make it a lot easier for us "old fart's" that have poor eyesight, and can't be bothered wearing their glasses.
Could you please change the colour of the text in most windows (Job Queue, Encoder Server, etc) from what seems to be a grey / dark grey, to just plain black, especially the Server name in Encoder Client. Last edited by TDS; 3rd February 2023 at 00:51. |
![]() |
![]() |
Tags |
264, 265, appletv, avchd, bluray, gui, iphone, ipod, ps3, psp, ripbot264, x264 2-pass, x264 gui, x264_64, x265, xbox360 |
Thread Tools | Search this Thread |
Display Modes | |
|
|