Info Upscayl CPU benchmark (much improved with recompiled DLL)

Jul 27, 2020
27,699
18,968
146
22-09-2025 Update

Download: https://drive.google.com/file/d/1vexQMory5HB0Oc4NsEPyEi-r-vP8gghf/view?usp=sharing

Tried to remove the 16 core limit by recompiling from source with modifications in the appropriate source files. Did not work unfortunately. Happily though, Visual Studio Community Edition (latest September update) had a lot of compiler optimizations I suppose. Time to upscayle went from 11 minutes to around 4 minutes on my 245KF!

No need to do any file copy paste. Just run the program, choose tech.png, Upscayle model Digital Art, Upscale factor 2x and execute. Click the three dots on the right after it's done to reveal the last upscaled time.

Original Post

Download: https://github.com/upscayl/upscayl/releases/tag/v2.15.0

Test image: https://www.cleanpng.com/png-web-de...oftware-framework-t-1123120/download-png.html

After unpacking, make a copy of the file vulkan-1.dll.

Then make a copy of the file vk_swiftshader.dll. Rename this copy to vulkan-1.dll

Now you have the CPU acting as a software renderer.

Select Digital Art upscale method.

Upscale to 2x.

After it finishes, click the three dots on the right and share this image or just mention the time taken.

1757349155515.png

This is the time taken by 245KF non-overclocked ring 42 D2D 35 NGU 32 DDR5-7200C36.

Better not try to benchmark something less than a 20 thread CPU for the sake of your sanity as it will be really, really slow.

Without the file copying trick, it uses the GPU and it is much faster that way. But consider the case where you are living in the middle of nowhere and your GPU just died and you have an important image you need to upscale. This is the answer.

Happy benchmarking!
 
Last edited:
Jul 27, 2020
27,699
18,968
146
Tried it on my 9950X3D 6200C38 FCLK 2000 1:1 and it didn't use all the cores at 100%. Varied between 35 to 45% usage and I got a measly time of 13 min 41 secs.

Maybe it's heavily bandwidth limited?

Can anyone confirm?
 
Jul 27, 2020
27,699
18,968
146
Tried:

6200C28
7800C38 (not stable but ok for benchmarking)
SMT on and off

Almost no difference. SMT off shaved off about 15 seconds so this benchmark cares mainly about real physical cores. Looks like the 285K may win here easily.
 
Jul 27, 2020
27,699
18,968
146
If the Vulkan software renderer could be made to love SMT somehow, it would be fascinating in a way. Why dedicate space to iGPU when you can just emulate it using some spare CPU cycles?
 

Hail The Brain Slug

Diamond Member
Oct 10, 2005
3,874
3,301
146
Download: https://github.com/upscayl/upscayl/releases/tag/v2.15.0

Test image: https://www.cleanpng.com/png-web-de...oftware-framework-t-1123120/download-png.html

After unpacking, make a copy of the file vulkan-1.dll.

Then make a copy of the file vk_swiftshader.dll. Rename this copy to vulkan-1.dll

Now you have the CPU acting as a software renderer.

Select Digital Art upscale method.

Upscale to 2x.

After it finishes, click the three dots on the right and share this image or just mention the time taken.

View attachment 129852

This is the time taken by 245KF non-overclocked ring 42 D2D 35 NGU 32 DDR5-7200C36.

Better not try to benchmark something less than a 20 thread CPU for the sake of your sanity as it will be really, really slow.

Without the file copying trick, it uses the GPU and it is much faster that way. But consider the case where you are living in the middle of nowhere and your GPU just died and you have an important image you need to upscale. This is the answer.

Happy benchmarking!
I followed your directions exactly but I'm getting this:

1757712053664.png
 

Kryohi

Member
Nov 12, 2019
53
113
106
Does it make sense to use software that's clearly targeted at GPUs and likely was never optimized for CPUs as a benchmark?
 
Jul 27, 2020
27,699
18,968
146
Does it make sense to use software that's clearly targeted at GPUs and likely was never optimized for CPUs as a benchmark?
People are clearly still using Cinebench 2024 when its entire engine has been revamped to work better on GPUs. I don't see why this benchmark should be any less relevant. The benchmark times will only get shorter and shorter with successive coming generations of crazy IPC focused CPUs so I think this could be a very forward looking benchmark.

I followed your directions exactly but I'm getting this:
vk_swiftshader.dll and vulkan-1.dll should have the exact same file size after you are done. Is that the case?
 
Jul 27, 2020
27,699
18,968
146
That's weird. I tried it on both 245KF (with 9060 XT) and 9950X3D (with ARC A770) and it only used the CPU. Maybe it's picking the vkshader.dll from somewhere else.

It's probably a file extension related issue. Check in CMD with DIR command if the extensions are dll or dll.dll
 

Hail The Brain Slug

Diamond Member
Oct 10, 2005
3,874
3,301
146
I am stumped, I've tried everything.

Sure there are a bunch of vulkan-1.dll's all over the system including in syswow32 and syswow64, so it could be using it from an alternate source I guess. No idea how yours would not be, unless I've inadvertently installed it by installing unreal/visual studio/etc

definitely not a file extension issue
 
Jul 27, 2020
27,699
18,968
146
No idea how yours would not be, unless I've inadvertently installed it by installing unreal/visual studio/etc
Mine are mostly benchmarking systems so they don't have any real use software installed. But isn't an executable supposed to use the dll in its location and the OS finds the dll elsewhere only if it's not found in the current location?
 

Hail The Brain Slug

Diamond Member
Oct 10, 2005
3,874
3,301
146
Mine are mostly benchmarking systems so they don't have any real use software installed. But isn't an executable supposed to use the dll in its location and the OS finds the dll elsewhere only if it's not found in the current location?
That's what I thought. Are you sure the substitute dll works? If you remove vulkan-1.dll entirely does it still launch and run the upscale? Maybe youre actually just effectively removing the dll and your system has no fallback while mine does
 
  • Love
Reactions: igor_kavinski
Jul 27, 2020
27,699
18,968
146
Excellent! I renamed the vk-1 dll and it still ran and using the CPU!

So it doesn't really need the vk-1.dll
 

Hail The Brain Slug

Diamond Member
Oct 10, 2005
3,874
3,301
146
Excellent! I renamed the vk-1 dll and it still ran and using the CPU!

So it doesn't really need the vk-1.dll
It does need the dll. The fact it runs means it's finding a fallback version on your system. The fallback it finds doesn't function correctly for whatever API this needs, so it's running extremely slowly.

You're not making it a CPU benchmark. You're benchmarking a randomly different dll.
 
Jul 27, 2020
27,699
18,968
146
I don't know about the random part. My current guess is that it comes with Geekbench. Would you like to confirm please, for science? :)
 
Jul 27, 2020
27,699
18,968
146
Weirdly, it took an Epyc run to figure out what was really going on since the threads spread out on all 32 logical cores of the 9950X3D, just with lower core utilization. On the Epyc CPU, task manager clearly showed that only about 14 threads had heavy core usage. Decided to learn more about vk_swiftshader.dll and turns out, it's a Google written library that ensures Vulkan works even without GPU. Checked out its source code and it seems to be hardcoded for 16 threads. There's a SwiftShader.ini file that can be used to specify increased thread count but it doesn't work or the library is simply ignoring the request. May work on Linux which gets a typical "ARRGHHH" reaction from me.

I would've compiled the library with a higher thread count but it needs cmake which from prior experience, is usually a nightmare to get working properly.
 
Jul 27, 2020
27,699
18,968
146
Epyc Zen 2 64c/128T

NPS4 with SMT 31 minutes 41 seconds

NPS0 without SMT 15 minutes 52 seconds

Updated score with recompiled DLL:

NPS0 64c64T 7 min 44 seconds
 
Last edited: