Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Discussion options

Hey guys! :)

I noticed a noticeable spike in SSE performance from the 4.2.4 release to the current GitHub builds - while using SSE3DNow Benchmark on my Ryzen 9950X it dropped to 1% - 3% on 4.2.4 and to around 33% on the latest GitHub builds

I'm unfortunately not a C++ developer (mainly in Java Enterprise software here), so I can't really go by source code here, so I'm asking the million dollar question: do you expect another significant speed ups or are you already in the "well, maybe the last 10%, it's already optimized to hell"-stage?

Did some of you test the (higher) single-thread-performance of the Intel Core Ultra 9?

Thank you very much for your effort and time in developing PCBox!

You must be logged in to vote

Replies: 3 comments · 9 replies

Comment options

That's odd. I haven't optimized it at all. I guess I might've accidentally shipped a debug build of PCBox for 4.2.4. Sorry about that! Also, PCBox is mainly developed in C, not C++. Furthermore, all SSE instructions currently fall back to the interpreter, so if someone manages to write recompiled versions of the SSE instructions, that would be a MASSIVE boon to performance. Also, Intel's current Core Ultra CPUs are utter dogwater, I'd suggest avoiding them entirely for now. They tend to actually be SLOWER than their previous generation in most tasks.

You must be logged in to vote
8 replies
@niclemon
Comment options

Not in the form of the above (I actually did use the above test when I built my Pentium III Tualatin retro rig)

How do you test in general - a small C program directly run from something like FreeDOS with inline assembly (testing all the commands) or more test suites / stress tests kind of thing? For the latter, you could use something like y-cruncher which has a specific SSE3 x86 mode, with an older version without C++11 dependency: https://www.numberworld.org/y-cruncher/version_history.html#2_17_2013

With Intel Generic, older versions actually detect SSE3:

image image

I don't know anything about the coverage (all SSE3 commands?), tho (and unfrotunately know nothing for SSSE3 instead of writing assembly)

@PythonBlue
Comment options

Furthermore, all SSE instructions currently fall back to the interpreter, so if someone manages to write recompiled versions of the SSE instructions, that would be a MASSIVE boon to performance.

Grateful I found this statement, as I've spent the past few days trying to troubleshoot performance of the Virtual Acoustic voices for the Yamaha S-YXG100, whose polyphonic variant does seem to use some SSE instructions. Even hacked a custom setting file that only allowed up to two voices with only a marginal improvement, and mind you, my host machine is an M4 Max Mac Studio.

Sadly, while I do know some coding, my experience in C++ is largely limited to sound processing specifically, though Torinde's comment about SIMDe seems like a step in the right direction from my knowing some other projects use it. Hoping for the best with improving performance, preferably soon!

@fuel-pcbox
Comment options

PCBox mainly uses C, not C++. Also, I'd like the code to be as portable as humanly possible, which means no SIMDe, since that can only work on certain architectures.

@PythonBlue
Comment options

Thanks for the clarification between C and C++, though for better or for worse, it doesn't change my statement about my admittedly-limited experience with either language. As for your position on SIMDe, while it's admirable that you want PCBox to be as portable as possible, I'm personally struggling to make sense of a better solution insofar as SSE, as from what I've gleaned of that project, it's mostly just pointing opcodes from one architecture to a compatible opcode for another, which will be important for non-Intel users like myself. Granted, your point may be valid in that performance may not improve much on an Intel-based host.

@Torinde
Comment options

no SIMDe, since that can only work on certain architectures.

@fuel-pcbox, SIMDe seems to support every relevant host. Do you have in mind any other architectures to be supported by PCBox?

Comment options

@fuel-pcbox, is SIMDe, something that can help with performance?
DOSBox Staging used it for their MMX implementation.

You must be logged in to vote
0 replies
Comment options

Just a question, what is this Intel Generic CPU?

You must be logged in to vote
1 reply
@fuel-pcbox
Comment options

It's a generic intel cpu, with more instructions. exactly what it says on the tin :p

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
5 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.