Building CEN64 with SSE4.1?

Discuss emulation or program issues here.
Post Reply
User avatar
Snowstorm64
Posts: 303
Joined: Sun Oct 20, 2013 8:22 pm

Building CEN64 with SSE4.1?

Post by Snowstorm64 » Sat Nov 16, 2013 8:53 am

I noticed that if I launch cen64 by shell, it prints this:
$ ./cen64
Usage: ./cen64 [options] <pifrom> <cart>

Options:
-controller [keyboard,mayflash64,retrolink,wiiu,x360]
-eeprom <file>
-sram <file>

RSP Build Type: SSSE3
RDP Build Type: SSSE3
It means that CEN64 is built with SSE3. But I have a CPU that is SSE4.1 capable, so why does it build only with SSE3?

I have an Intel i7 4770K, and this is the output of cat /proc/cpuinfo:
$ sudo cat /proc/cpuinfo | grep flags
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
OS: Debian GNU/Linux Jessie (8.0)
CPU: Intel i7 4770K @ 3.5 GHz
Build: AVX (compiled from git)

User avatar
Nacho
Posts: 66
Joined: Thu Nov 07, 2013 9:25 am

Re: Building CEN64 with SSE4.1?

Post by Nacho » Sat Nov 16, 2013 12:11 pm

I think that CEN64 doesn't make use of any of the special features of SSE4.1.

It just use some vectorization instructions provided by the Intel SSSE3 intrinsecs, and they are of course included in SSE4.1

Somebody correct me if I'm wrong...

By the way, I didn't noticed any significant performance boost with latest vectorization commit.

Cheers
Testing CEN64 on: Intel Core i5 520M 2.4 GHz. SSE2 SSE3 SSE4.1 SSE4.2 SSSE3, but no AVX. Ubuntu Linux

User avatar
MarathonMan
Site Admin
Posts: 692
Joined: Fri Oct 04, 2013 4:49 pm

Re: Building CEN64 with SSE4.1?

Post by MarathonMan » Sat Nov 16, 2013 4:04 pm

You can get it to build with SSE4.1 intrinsics by removing -DSSSE3_ONLY from rdp/Makefile and rsp/Makefile (it doesn't automagically detect).

User avatar
Snowstorm64
Posts: 303
Joined: Sun Oct 20, 2013 8:22 pm

Re: Building CEN64 with SSE4.1?

Post by Snowstorm64 » Sat Nov 16, 2013 6:42 pm

Oh, I see. Thank you, now it builds correctly with SSE 4.1 intrinsics.
Nacho wrote:
By the way, I didn't noticed any significant performance boost with latest vectorization commit.
There aren't optimizations, they have just added missing CP1 opcodes.
OS: Debian GNU/Linux Jessie (8.0)
CPU: Intel i7 4770K @ 3.5 GHz
Build: AVX (compiled from git)

User avatar
MarathonMan
Site Admin
Posts: 692
Joined: Fri Oct 04, 2013 4:49 pm

Re: Building CEN64 with SSE4.1?

Post by MarathonMan » Sat Nov 16, 2013 8:12 pm

Snowstorm64 wrote:There aren't optimizations, they have just added missing CP1 opcodes.
He might be referring to the RDP vectorization commit, which isn't really supposed to offer a large speed-up (yet). I just started laying out some ground work.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest