Disabling SSE2 support

Disabling SSE2 support

Bild des Benutzers c0d1f1ed

Hi folks. I found SDE to be fantastic for emulating instruction sets not supported by my CPU, but is it possible to do the reverse and disable support for specific extensions?

I'm working on a project that uses lots of assembly intrinsics in an abstract vector math library. But things like vectors of 4 integers are only supported when the CPU has SSE2 capabilities, and some operations even require SSE3 or SSE4. It's up to the user to know when an operation can be used or not, and this is becoming very hard to test rigorously since I don't have a system without SSE2 support at my disposal.

If SDE is of no help in this situation, does anyone perhaps know of other ways to disable specific instruction set extensions on the CPU? Thanks for any suggestions.

7 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.
Bild des Benutzers Mark Charney (Intel)

Hi, Thanks for the feedback. Yes, you can use the "-chip-check PENTIUM3" to catch the execution of SSE2 instructions (and other instructions added on Pentium4). Look at the output of "sde -thelp" to see the various -chip-check-* knobs. Different options to dump stuff to a file or keep going to find all of them, etc. One of them, -chip-check-list will list all the processors names it knows about: as in

path-to-kit/sde -chip-check-list -- someprogram
Bild des Benutzers c0d1f1ed

Brilliant, thanks for the quick reply!

On a somewhat unrelated note, are there any plans for adding a graphical version of SDE? That would help avoid having to dig through the somewhat obscure command line options. If I find some spare time to do it myself I'd love to contribute it (probably Windows only). Cheers!

Bild des Benutzers c0d1f1ed

I found that I still had to set -sse2_cpuid 0 even though -chip_check PENTIUM3 was set. Is this by design? Also -chip_check_list wasn't working for me.

Bild des Benutzers Mark Charney (Intel)

The cpuid emulators are separate from the instruction emulators to allow people to test dispatch. about -chip-check-list: are you using the latest version of sde? show the command you typed and the error you saw.

Bild des Benutzers c0d1f1ed

Ah yes controlling the CPUID flags separately helps check whether an application uses the extension when considered available. Got it.

I used the following prompt (which shows you the version) and command line:

C:\\sde-hsw-external-4.46.0-2011-12-15-win-intel64-and-ia32
>sde -chip-check-list -- C:\\app.
exe

There is no error message, it just returns to the prompt immediately without showing the chip names.

Bild des Benutzers vejn

Hi, I was wondering
how to disable SSE2 from test.exe so that test.exe will use only SSE .
Thx

Melden Sie sich an, um einen Kommentar zu hinterlassen.