Comments

Musicvid wrote on 5/30/2017, 4:10 PM

Vegas performance may suffer with more than eight physical cores.

Hulk wrote on 5/30/2017, 5:58 PM

Do you know the technical reason for this performance decrease with more than 8 cores?

NormanPCN wrote on 5/30/2017, 6:26 PM

Not all algorithms scale as you add more threads of execution. In fact most do not scale all that well. Many algorithms do not fit a multi-threaded models terribly well. You can do it but these items tend to not scale very well, at least not without potential compromise.

Image processing, aka pixel effects, works very well with thread scaling. This is why everyone is doing GPU compute for this task. OpenCL or OpenGL GLSL. GPUs are slower than CPUs but they have a TON of available threads of parallel execution.

So once you remove effects and compositing from CPU work then what remains in media file decode and file encoding and of course various housekeeping chores.

Media file decode can be parallel but you really need to be compositing multiple media streams to really take advantage of high core count (>4,8) here. A transition counts as two simultaneous streams. Multiple streams will stress your I/O subsystem.

Then you have file encoding. This is way too variable from encoder to encoder to make any assumptions. Even the mighty x264 runs out of thread scaling steam at a certain point. I roughly know where the point used to be in x264 but that was ages ago.

Musicvid wrote on 5/30/2017, 6:54 PM

Internal filters are old fashioned, that's why.

There may even be a few that are still single-thread 32 bit.

Hulk wrote on 5/31/2017, 10:55 PM

I haven't done any programming in quite a while but it seems as though Vegas would be ideally suited for multiple cores. As a simple example a single frame could be broken up into as many tiles as there are cores available, of course if the threading is too fine-grained the house keeping overhead starts to use a lot of cycles. But as I wrote this is just an example. Another would be during encode where various cores could work on different GOP's simultaneously so there are no interdependencies within a GOP causing botttlenecks.

Or in a very course grained manner cores could be assigned various fx or other "jobs" in a sequential playback.

Just thinking out loud!

NormanPCN wrote on 5/31/2017, 11:06 PM

... but it seems as though Vegas would be ideally suited for multiple cores. As a simple example a single frame could be broken up into as many tiles as there are cores available, of course if the threading is too fine-grained the house keeping overhead starts to use a lot of cycles.

Yes, tiling a raster image can allow seamless low overhead multi-threading. That setup is for graphics effects/compositing. This work is normally done on the GPU these days (OpenCL, GLSL). GPUs are normally faster that this type of massive parallel compute task than CPUs.

Of course, if you turn Vegas GPU support OFF in Video preferences then Vegas will be using the CPU for effects/compositing. In that case a ton of cores can be useful/used, especially with 4k.

For media file decode, which is still done on CPU, the tile thing is likely not relevant. The compression structure of the codec dictates how multi-threading can be done on decode. Every codec is different here.

The same can be said for file encoding with respect to tiling.

Hulk wrote on 6/1/2017, 8:49 AM

Yes of course the GPU is faster for this type of work but the limited instructions available in the GPU make the programming more difficult than the "general purpose" CPU AFAIK. Anyway, my point is that Vegas Pro should be able to use all available cores as we move beyond 8 cores on the desktop. I'm sure it'll get there when it needs to.

OldSmoke wrote on 6/1/2017, 10:30 AM

I'm sure it'll get there when it needs to.

I honestly doubt MAGIX has the resources, financially and otherwise to get there. It would require a complete rewrite. Please prove me wrong MAGIX!

Proud owner of Sony Vegas Pro 7, 8, 9, 10, 11, 12 & 13 and now Magix VP15&16.

System Spec.:
Motherboard: ASUS X299 Prime-A

Ram: G.Skill 4x8GB DDR4 2666 XMP

CPU: i7-9800x @ 4.6GHz (custom water cooling system)
GPU: 1x AMD Vega Pro Frontier Edition (water cooled)
Hard drives: System Samsung 970Pro NVME, AV-Projects 1TB (4x Intel P7600 512GB VROC), 4x 2.5" Hotswap bays, 1x 3.5" Hotswap Bay, 1x LG BluRay Burner

PSU: Corsair 1200W
Monitor: 2x Dell Ultrasharp U2713HM (2560x1440)

NormanPCN wrote on 6/1/2017, 12:01 PM

Yes of course the GPU is faster for this type of work but the limited instructions available in the GPU make the programming more difficult than the "general purpose" CPU AFAIK.

Not really. The GPU ALUs are pretty complete but certainly optimized/targeted for compute tasks. OpenCL and GLSL are basically high level languages, They look like C and you program them that way. The GPU is a one trick pony. A very specialized processor designed for massive parallel compute and OpenCL/GLSL reflect this very different organizational structure. However computing a curves or other effect in C is really the same. Your math computation for a pixel tweak is much the same but your organization structure will be radically different.

Anyway, my point is that Vegas Pro should be able to use all available cores as we move beyond 8 cores on the desktop. I'm sure it'll get there when it needs to.

Okay so you have a 16 or 32 core machine. Such a machine probably have a very capable GPU. Such a GPU will always wipe the floor with the CPU on the effects/compositing. That leaves the media front end of decode and the file encoding export (aka "render as"). Those are CPU tasks but they have real limitations scaling as previously described.

 

Hulk wrote on 6/1/2017, 3:16 PM

Vegas seems to have more trouble making the GPU work than the CPU, at least in a stable manner. This is why when all else fails the recommendation is to turn off the GPU in Vegas.

There are basically two performance metrics with video. Preview and final render.

Vegas is pretty good at utilizing AMD GPU's for rendering and okay with nVidia. When it comes to final render (encoding) the GPU is very bad in my opinion. It doesn't work with AMD and hasn't been updated in like 5 years. In addition, only a few low quality codecs even support it.

These fact lead me to the conclusion that it is easier to code for multiple CPU's rather than the GPU.

bravof wrote on 6/4/2017, 2:45 PM

Hi

I have been running a XEON 16 core / 32 thread machine for a year now with the AMD Fury GPU. While I was rending AVC or libav in 1080p the threads were only 50% utilised at most when rendering. But since I started editing and rendering in 4K my threads are 90%+ utilised. So usage depends on your footage and codec but in my case 32 threads REALLY helps a lot.

My GPU is also often running at 100% while rendering, processing intensive effects.

OldSmoke wrote on 6/4/2017, 5:46 PM

Hi

I have been running a XEON 16 core / 32 thread machine for a year now with the AMD Fury GPU. While I was rending AVC or libav in 1080p the threads were only 50% utilised at most when rendering. But since I started editing and rendering in 4K my threads are 90%+ utilised. So usage depends on your footage and codec but in my case 32 threads REALLY helps a lot.

My GPU is also often running at 100% while rendering, processing intensive effects.

I would love to see a direct comparison between your system and my aging 3930K with my Fury X rendering the SCS Benchmark project once converted to a 4K project. That would tell whether 16cores are really so much better for 4K.

Proud owner of Sony Vegas Pro 7, 8, 9, 10, 11, 12 & 13 and now Magix VP15&16.

System Spec.:
Motherboard: ASUS X299 Prime-A

Ram: G.Skill 4x8GB DDR4 2666 XMP

CPU: i7-9800x @ 4.6GHz (custom water cooling system)
GPU: 1x AMD Vega Pro Frontier Edition (water cooled)
Hard drives: System Samsung 970Pro NVME, AV-Projects 1TB (4x Intel P7600 512GB VROC), 4x 2.5" Hotswap bays, 1x 3.5" Hotswap Bay, 1x LG BluRay Burner

PSU: Corsair 1200W
Monitor: 2x Dell Ultrasharp U2713HM (2560x1440)

bravof wrote on 6/5/2017, 1:08 PM

Let's do this!

Let me know how I can run the bench in 4k so we have exactly the same project.

OldSmoke wrote on 6/5/2017, 2:39 PM

Let's do this!

Let me know how I can run the bench in 4k so we have exactly the same project.


If you have the original SCS benchmark project you just render the media out as 4K, XAVC-S and XAVC-I, upscale the images to 4K. Change the project resolution and change all generated media to 4K resolution too. I did that a while ago but I can't find the project file and related 4K files anymore. I can do it again but we have to make sure we both have done the exact same conversions to 4K. Since we are not concern about image quality, it doesn't matter that this project contains all upscaled media.

I am currently on the road and do it only this coming weekend.

Proud owner of Sony Vegas Pro 7, 8, 9, 10, 11, 12 & 13 and now Magix VP15&16.

System Spec.:
Motherboard: ASUS X299 Prime-A

Ram: G.Skill 4x8GB DDR4 2666 XMP

CPU: i7-9800x @ 4.6GHz (custom water cooling system)
GPU: 1x AMD Vega Pro Frontier Edition (water cooled)
Hard drives: System Samsung 970Pro NVME, AV-Projects 1TB (4x Intel P7600 512GB VROC), 4x 2.5" Hotswap bays, 1x 3.5" Hotswap Bay, 1x LG BluRay Burner

PSU: Corsair 1200W
Monitor: 2x Dell Ultrasharp U2713HM (2560x1440)

bravof wrote on 6/5/2017, 2:42 PM

OK: I have downloaded Sony's "Red Car" project and get the following times:

XD Cam 1920x1080x60i, 35.5 Mbps VBR: 49s

Main Concept Internet HD 1080p: 64s (1:04)

 

Then I tried 4K. I set:

Project Properties to 4K 4096x2304 (I used the last preset) but just changed the FPS to 29.970.

MainConcept Internet 4K 2160p: 3:51. CPU Usage about 80%

XAVC 4096x2160 29,97 fps: 3:16. CPU usage below 30%: really turning its thumbs...

XAVC S Long 3840x2160 29,97 fps: 3:02. CPU usage was about 40%

Configuration:

2x Xeon E5-2690 for a total of 16/32 threads, running most of the time at 3.1 Ghz.

AMD R9 Fury

64 GB Ram but never used over 10 GB

 

But just looking at my CPU usage I can guess that there will be no big benefit if you output to XAVC, but greater benefits in MainConcept.

OldSmoke wrote on 6/5/2017, 3:16 PM

Did you render all media as 4K and make an actual 4K project? Just changing the project settings isn't sufficient.

Proud owner of Sony Vegas Pro 7, 8, 9, 10, 11, 12 & 13 and now Magix VP15&16.

System Spec.:
Motherboard: ASUS X299 Prime-A

Ram: G.Skill 4x8GB DDR4 2666 XMP

CPU: i7-9800x @ 4.6GHz (custom water cooling system)
GPU: 1x AMD Vega Pro Frontier Edition (water cooled)
Hard drives: System Samsung 970Pro NVME, AV-Projects 1TB (4x Intel P7600 512GB VROC), 4x 2.5" Hotswap bays, 1x 3.5" Hotswap Bay, 1x LG BluRay Burner

PSU: Corsair 1200W
Monitor: 2x Dell Ultrasharp U2713HM (2560x1440)

bravof wrote on 6/5/2017, 6:30 PM

I only changed the project settings.

OldSmoke wrote on 6/5/2017, 7:18 PM

Well, the best Mainconcept AVC performance is with a GTX580 and CUDA which is slightly faster then two GTX570 which are in this video I made a while ago.

XDCAM EX render are below 30sec with one Fury X on my 3930K @ 4.3GHz which shows that clock speed trumps core count when it comes to Vegas.

I will do again an actual 4K conversion of the SCS benchmark project and let you know the numbers. I can also do some renders as you did by changing the project settings and let you know the numbers too but is not really the same as an actual 4K project.

 

Last changed by OldSmoke on 6/5/2017, 7:20 PM, changed a total of 1 times.

Proud owner of Sony Vegas Pro 7, 8, 9, 10, 11, 12 & 13 and now Magix VP15&16.

System Spec.:
Motherboard: ASUS X299 Prime-A

Ram: G.Skill 4x8GB DDR4 2666 XMP

CPU: i7-9800x @ 4.6GHz (custom water cooling system)
GPU: 1x AMD Vega Pro Frontier Edition (water cooled)
Hard drives: System Samsung 970Pro NVME, AV-Projects 1TB (4x Intel P7600 512GB VROC), 4x 2.5" Hotswap bays, 1x 3.5" Hotswap Bay, 1x LG BluRay Burner

PSU: Corsair 1200W
Monitor: 2x Dell Ultrasharp U2713HM (2560x1440)