Author Topic: SSE3 Instructions Required for PixInsight 1.8.0  (Read 9952 times)

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
SSE3 Instructions Required for PixInsight 1.8.0
« on: 2012 September 04 09:41:57 »
Hi all,

We are building the PixInsight Core executable and all modules with Supplemental Streaming SIMD Extensions 3 (SSSE3) enabled on all platforms. The practical consequence of this is that PixInsight won't run on anything older than an Intel Core 2 Duo or equivalent processor. On Mac OS X this is no problem since all Intel Mac machines already support SSSE3 instructions. On Windows and Linux/UNIX this will exclude vintage machines, but given the fact that SSSE3 dates from July 2006, I think that this step forward is more than reasonable. Any machine older than a Core 2 Duo is definitely a useless platform to run PixInsight.

We are building the PixInsight Core executable and all modules with Streaming SIMD Extensions 3 (SSE3) instructions enabled for 64-bit FreeBSD, Linux and Windows platforms. Supplemental SSE3 (SSSE3) instructions are enabled for the Mac OS X version. This should not generate any practical compatibility problems: All Intel 64 processors support SSE3 since Pentium D (2005), and all AMD processors support it since Athlon 64 San Diego (2005). Only the oldest Athlon 64 processors (pre-2005) will be excluded.

The Windows 32-bit PI 1.8 version---which is the last 32-bit version of PI that will be released---will be compiled with SSE2 instructions.

If anybody has something to say, say it now or forever hold your peace :)

Note: the original subject of this thread was: SSSE3 Instructions Required...
« Last Edit: 2012 September 05 01:24:45 by Juan Conejero »
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline georg.viehoever

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2132
Re: SSSE3 Instructions Required for PixInsight 1.8.0
« Reply #1 on: 2012 September 04 13:41:21 »
The problem here are probably pre-2011 AMD CPUS, see http://en.wikipedia.org/wiki/SSSE3#History. Since all x64 capable cpus except the very first AMD cpus are capapble of SSE3, I would strongly recommend to use at most SSE3, not SSSE3.

If you actually have considerable benefits from SSSE3, you should consider providing different libraries that are switched during runtime.

Georg
Georg (6 inch Newton, unmodified Canon EOS40D+80D, unguided EQ5 mount)

Offline Nocturnal

  • PixInsight Jedi Council Member
  • *******
  • Posts: 2727
    • http://www.carpephoton.com
Re: SSSE3 Instructions Required for PixInsight 1.8.0
« Reply #2 on: 2012 September 04 15:28:37 »
What Georg wrote about AMD CPUs is worrisome. At the same time I'd be surprised if Juan wasn't aware of this and has a different perspective.

I'm a little worried about the abandonment of entry level computers but it's Juan's responsibility to weigh customer appeal on the high and low end. I agree that a fast computer is a necessity for effective PI work but at the same time I understand people want to run PI on lower end systems for light work. An example would be running PI on an older XP machine used for image capture.
Best,

    Sander
---
Edge HD 1100
QHY-8 for imaging, IMG0H mono for guiding, video cameras for occulations
ASI224, QHY5L-IIc
HyperStar3
WO-M110ED+FR-III/TRF-2008
Takahashi EM-400
PIxInsight, DeepSkyStacker, PHD, Nebulosity

Offline NKV

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 677
Re: SSSE3 Instructions Required for PixInsight 1.8.0
« Reply #3 on: 2012 September 04 22:35:41 »
An example would be running PI on an older XP machine used for image capture.
+1

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
SSE3 Instructions Required for PixInsight 1.8.0
« Reply #4 on: 2012 September 05 00:56:29 »
Quote
The problem here are probably pre-2011 AMD CPUS

Of course you're correct. For some reason I overlooked old AMD processors when I made this decision yesterday. I must be getting old :)

So we'll compile all 64-bit versions with SSE3 instructions enabled (SSSE3 on Mac OS X), which shouldn't generate any compatibility problems, I expect. Thank you for refreshing my mind.

Quote
I'm a little worried about the abandonment of entry level computers
Quote
An example would be running PI on an older XP machine used for image capture.

The 32-bit Windows version will be compiled with SSE2 instructions, which dates from 2001 and includes all Pentium IV processors. Only the oldest AMD processors don't have SSE2 (Athlon XP, Duron, ...). Please correct me if I'm wrong but I think this covers all the needs to run PI on archaic low-end machines.

Note: I have changed the subject of all messages in this thread to prevent confusions.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Andres.Pozo

  • PTeam Member
  • PixInsight Padawan
  • ****
  • Posts: 927
Re: SSSE3 Instructions Required for PixInsight 1.8.0
« Reply #5 on: 2012 September 05 02:39:19 »
An example would be running PI on an older XP machine used for image capture.
+1

+1

The notebook that I use for image capture has Win7 32bits and i don't plan to change it in a few years. I had lots of problems with the drivers so I am going to use this setup until it brokes or I change the cameras and telescope.
I use Pixinsight in this computer for checking the images during the capture session and for a fast processing the next morning.

Offline slang

  • Member
  • *
  • Posts: 60
Re: SSE3 Instructions Required for PixInsight 1.8.0
« Reply #6 on: 2012 September 05 03:09:33 »
Whilst I have absolutely no problem with this and support it, what will be the benefit to the end user?

I can assume that there will be some speed improvements etc., but have these been quantified at all?

Having just upgraded from Win7 x64 to a moderately faster but still second hand PC running ubuntu x64, and overclocking it so that it is ~twice as fast as my old PC, I am wondering what the  processing speed improvements will be.

Cheers -
--
Mounts: Orion Atlas 10 eq-g, Explore Scientific G11-PMC8
Scopes: GSO RC8, Astrophysics CCDT67, ES FCD100-80, TSFLAT2
Guiding: ST80/QHY OAG/QHY5L-II-M
Cameras: Canon EOS 450D (IR Mod), QHY8L, QHY163m/QHYFW2-US/Astronomik LRGBHaSiiOii

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Re: SSE3 Instructions Required for PixInsight 1.8.0
« Reply #7 on: 2012 September 05 03:39:47 »
Quote
The notebook that I use for image capture has Win7 32bits and i don't plan to change it in a few years.

You can continue using that notebook with the 32-bit 1.8 version of PixInsight for Windows. PI 1.8 will work on that machine years after we discontinue the 32-bit version.

For old machines running XP, we don't support Windows XP since more than one year, but other than the broken update system (but usable with manual intervention) and a number of screen rendering problems, PI 1.8 will work on XP.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Re: SSE3 Instructions Required for PixInsight 1.8.0
« Reply #8 on: 2012 September 05 04:06:15 »
Quote
I can assume that there will be some speed improvements etc., but have these been quantified at all?

There should be some improvements, but we haven't quantified them. SSE3 provides a few instructions that can improve execution of some common operations, such as HADDPD, HADDPS, HSUBPD and HSUBPS, which allow to add and subtract two double or four single precision floating point values stored horizontally in two XMM registers. Also the FISTTP instruction can speed up floating point to integer truncation operations, which are extremely frequent in C/C++.

I think that the actual improvements will depend on how good the different compilers are at using SSE3 instructions to vectorize C++ code. For X11 platforms (FreeBSD and Linux) we are building the whole PixInsight platform with GCC 4.6.3. For Windows we use Visual C++ 2010. For Mac OS X we still use the standard GCC 4.2 on OS X 10.6. The best performance should be achieved for the X11 versions, but only benchmarks will tell us this.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Thorsten Lockert

  • Newcomer
  • Posts: 36
    • Personal Home Page
Re: SSE3 Instructions Required for PixInsight 1.8.0
« Reply #9 on: 2012 September 05 09:23:37 »
Quote
I think that the actual improvements will depend on how good the different compilers are at using SSE3 instructions to vectorize C++ code. For X11 platforms (FreeBSD and Linux) we are building the whole PixInsight platform with GCC 4.6.3. For Windows we use Visual C++ 2010. For Mac OS X we still use the standard GCC 4.2 on OS X 10.6. The best performance should be achieved for the X11 versions, but only benchmarks will tell us this.

Wouldn't it be more efficient to use the LVM Clang compiler?

I guess my 2006 Mac Pro (Xeon based) won't work with PixInsight anymore after this, I think it might be limited to SSE2 as well. It runs 64 bit (Lion), but has 32-bit EFI (so won't run Mountain Lion). Too bad though, it is otherwise a very capable machine… 32 GB RAM, 4 cores (on 2 Xeon chips, no hyper threading), Radeon HD 4870 graphics…

Thorsten

Offline georg.viehoever

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2132
Re: SSE3 Instructions Required for PixInsight 1.8.0
« Reply #10 on: 2012 September 05 10:15:03 »
Thorsten,
According to wikipedia the original MacPro uses a Woodcrest aka Xeon5100 CPU, and this supports SSSE3. Yiu should be save then.
Georg
Georg (6 inch Newton, unmodified Canon EOS40D+80D, unguided EQ5 mount)

Offline pfile

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 4729
Re: SSE3 Instructions Required for PixInsight 1.8.0
« Reply #11 on: 2012 September 05 10:20:37 »
there are actually a handful of macs that had core duo processors (and thus no ssse3), but they were the very first intel macs. probably a very small number of them out there (but i do have one...)

http://www.everymac.com/systems/by_processor/intel-core-duo-macs.html

Offline Thorsten Lockert

  • Newcomer
  • Posts: 36
    • Personal Home Page
Re: SSE3 Instructions Required for PixInsight 1.8.0
« Reply #12 on: 2012 September 05 10:43:33 »
According to wikipedia the original MacPro uses a Woodcrest aka Xeon5100 CPU, and this supports SSSE3. Yiu should be save then.

I guess the reporting is just not as good in Lion as it is in Mountain Lion.

It wouldn't be much of a problem anyhow — I just got myself a new rMBP, with its configuration maxed out. So that will still be faster, it has as many cores but does have hyper-threading, so can in effect run 8 threads. And has better graphics (being Retina). Whee.

Thorsten