Author Topic: PI 1.5.9 on old AMD and Intel processors | 1.5.9 en viejos procs. AMD e Intel  (Read 7410 times)

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Hi,

We have detected a problem that prevents execution of PixInsight 1.5.9 for 32-bit Windows on old AMD and Intel processors.

Inadvertently, the LCMS support library for Windows versions of PixInsight 1.5.9 was compiled with SSE2 instruction support. SSE2 instructions are not supported by the following processors:

- AMD processors prior to Athlon 64, including all Socket A-based processors.
- Intel processors prior to Pentium 4.

If you have one of these processors, PixInsight's color management subsystem, as well as several file-format support and process modules, won't work on your computer. If you have a newer processor with SSE2 support, please ignore this post.

The fix is very easy. Please follow these steps:

1. If you have PixInsight running, exit it.

2. Download this file:

  http://pixinsight.com/export/1.5.9-bugfix/lcms-pxi.dll.zip

3. Uncompress the zip archive. This will give you a lcms-pxi.dll file.

4. If you installed PixInsight on the default location, it is on your C:\PCL folder. Please launch the Windows Explorer and locate the following folder:

  C:\PCL\bin

If you installed on a custom location, change the folder above to its counterpart on your custom installation folder.

5. Copy the new lcms-pxi.dll file to C:\PCL\bin, replacing the previous one.

That's all. Now PixInsight should run fine on your vintage AMD or Pentium III computer :)

Sorry for the inconveniences.


======================================


Hola

Hemos detectado un problema que impide la ejecución de PixInsight 1.5.9 para Windows de 32 bits en viejos procesadores AMD e Intel.

Inadvertidamente, la biblioteca de soporte LCMS para versiones de Windows de PixInsight 1.5.9 fue compilada con soporte de instrucciones SSE2. Las instrucciones SSE2 no están soportadas por los siguientes procesadores:

- Procesadores AMD anteriores a Athlon 64, incluyendo todos los procesadores basados en Socket A.
- Procesadores Intel anteriores a Pentium 4.

Si tienes uno de estos procesadores, el subsistema de gestión del color de PixInsight, así como varios módulos de soporte de formato de archivo y de proceso, no funcionarán en tu computadora. Si tienes un procesador más moderno, con soporte de SSE2, por favor ignora este mensaje.

La solución es muy sencilla. Por favor, sigue los pasos siguientes:

1. Si tienes PixInsight ejecutándose, termina su ejecución.

2. Descarga este archivo:

  http://pixinsight.com/export/1.5.9-bugfix/lcms-pxi.dll.zip

3. Descomprime el archivo zip. Esto generará un archivo lcms-pxi.dll.

4. Si has instalado PixInsight en su ubicación por defecto, entonces se encuentra en la carpeta C:\PCL. Ejecuta el Explorador de Windows y localiza la siguiente carpeta:

  C:\PCL\bin

Si has instalado en una ubicación no estándar, cambia la carpeta a su ubicación correspondiente en tu carpeta de instalación personalizada.

5. Copia el nuevo archivo lcms-pxi.dll a C:\PCL\bin, reemplazando el anterior.

Eso es todo. Ahora PixInsight debería funcionar correctamente en tu antigua computadora basada en AMD o Pentium III :)

Perdón por las molestias.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline georg.viehoever

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2132
Hi Juan,

maybe you explicitly drop support for non-SSE2 processors. I think there are no CPUs without SSE2 released since 2004, and they are rather slow for tasks like image processing. SSE2 (and SSE3), on the other hand, can give quite a performance boost when used with suitable algorithms.

Are there many users affected?

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

Offline Niall Saunders

  • PTeam Member
  • PixInsight Jedi Knight
  • *****
  • Posts: 1456
  • We have cookies? Where ?
Hi Georg,

I just forwarded this discussion to Alex, my neighbour, who has not been able to run v1.5.9 at all (crashes on start-up).

I have not seen the actual fault behaviour myself, and Alex has simply reverted to an earlier version. But I think that users of 'older' architecture should still be supported. Not everyone can afford to, or needs to, or wants to, upgrade to the latest hardware, and PI development should bear that in mind (BTW, when is the 128-bit version coming out, Juan  :surprised:)

Cheers,
Cheers,
Niall Saunders
Clinterty Observatories
Aberdeen, UK

Altair Astro GSO 10" f/8 Ritchey Chrétien CF OTA on EQ8 mount with homebrew 3D Balance and Pier
Moonfish ED80 APO & Celestron Omni XLT 120
QHY10 CCD & QHY5L-II Colour
9mm TS-OAG and Meade DSI-IIC

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
How about PI on a linux Pentium 3 machine? :D
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com

Offline David Serrano

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 503
Hi Juan,

maybe you explicitly drop support for non-SSE2 processors. I think there are no CPUs without SSE2 released since 2004, and they are rather slow for tasks like image processing. SSE2 (and SSE3), on the other hand, can give quite a performance boost when used with suitable algorithms.

Are there many users affected?

Georg

I learned the hard way that non-SSE processors weren't supported. From then (Feb 2009) on, I assumed I couldn't run PixInsight in my desktop at home, and kept using the company laptop. A quick search now reveals this post (spanish only) in which Juan says in the last sentence that there was going to be a 1.5.3 version without SSE2 requirements. I don't know if that exception was being kept until present.

Oh and I think a symbian version would have much more market penetration than a 128bit one ;)
--
 David Serrano

Offline georg.viehoever

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2132
For the kind of physical simulations I do during my daytime job, using SSE2 and 3 really can make a considerable difference in speed. I dont know if Juan has actual numbers, but I suppose that SSE2+3 would give a real boost (sometimes > 2x) to many image processing type operations. Since I am unhappy with the performance on my 2 year old Core 2 Duo 2 GHz laptop, I suppose  a 6 year old machine would just  drive me crazy, and I long for every bit of performance I can get from the software.

Just my ideas about this. I can understand if others have different priorities, such as spending money on telescopes instead of CPUs.

Georg

PS: IPhone is similar to MacOSX (that's what Apple says). So maybe Juan could just .... ;)
« Last Edit: 2009 November 03 05:43:41 by georg.viehoever »
Georg (6 inch Newton, unmodified Canon EOS40D+80D, unguided EQ5 mount)

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Quote from: Niall Saunders
I just forwarded this discussion to Alex, my neighbour, who has not been able to run v1.5.9 at all (crashes on start-up).

I have not seen the actual fault behaviour myself, and Alex has simply reverted to an earlier version.

I hope this fix will solve the problem for Alex. By the way, please *never* do that. If there is a problem, I want to know about it ASAP. That's the only way to improve things.

Quote from: Niall Saunders
I think that users of 'older' architecture should still be supported.

Correct. Those users *must* be supported, of course. With the first 1.5 release, my intention was to compile PixInsight with support for at least SSE2 on all platforms. Then a number of users complained, and I realized they have the right to run the software they have paid for on their old computers.

The main problem now is a number of users with computers, mainly laptops, with old AMD processors (Athlon XP and the like). These systems are virtually the only reason to avoid SSE instructions in all 32-bit compilations of PI for Windows and Linux.

Ideally, I should be able to release two 32-bit versions: with and without SSE4 support (for example). This means duplicating two whole branches for each release: 32-bit versions for Windows and Linux, that's 6 new installation packages (commercial, trial, unlimited).

I'm not sure if this is worth the extra effort, though, as when it comes to achieving performance, a 64-bit version is mandatory, IMO. 

Quote
BTW, when is the 128-bit version coming out, Juan

Maybe when a competing application (whose name starts and ends with P) includes 64-bit support  ;D
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Niall Saunders

  • PTeam Member
  • PixInsight Jedi Knight
  • *****
  • Posts: 1456
  • We have cookies? Where ?
Quote
By the way, please *never* do that. If there is a problem, I want to know about it ASAP. That's the only way to improve things

That isn't a problem Juan - however, it can take a few days (maybe longer) for the feedback to reach you !

In this case, as I said, I didn't even see the problem, and only learned of it through an email (I have not had mush free time to get next door and 'catch up' with Alex).

Cheers,
Cheers,
Niall Saunders
Clinterty Observatories
Aberdeen, UK

Altair Astro GSO 10" f/8 Ritchey Chrétien CF OTA on EQ8 mount with homebrew 3D Balance and Pier
Moonfish ED80 APO & Celestron Omni XLT 120
QHY10 CCD & QHY5L-II Colour
9mm TS-OAG and Meade DSI-IIC

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Hi Georg,

Quote from: georg.viehoever
For the kind of physical simulations I do during my daytime job, using SSE2 and 3 really can make a considerable difference in speed. I dont know if Juan has actual numbers, but I suppose that SSE2+3 would give a real boost (sometimes > 2x) to many image processing type operations.

In practice, the performance gain is not so big, especially on modern processor architectures such as Xeon and the like. Not at least in my code, and I take care of writing easy-to-vectorize loops as far as possible.

IMO, the actual problem here is in compiler support for SSEx instructions. Even the Intel compiler isn't sufficiently good at vectorization. GCC 4.4.x seems to be better, but still the difference isn't spectacular, by no means. I recognize that I must spend (a considerable amount of) time trying out many different configurations of compiler switches and architecture optimizations. The problem is that I have so little time and so many things to do (then there are those guys asking for documentation, do you know them? ;D).

From my experience at least, the effort invested to redesign routines and algorithms making them more efficient, from a purely algorithmic point of view, is much more worthy than pursuing hardware-specific optimizations such as an efficient implementation of SSE instructions. Then the question is again how must we invest our development time. While rewriting critical routines in assembler is certainly doable (and I in fact have done that a lot, although not recently), it is very time-consuming. What do you prefer, me writing assembler code to speed things, say a 50% in some particularly favorable cases, or me developing an image calibration script, a layered composition tool, a drizzle tool, etc...?  Oh, and me making videos, too :)

Quote
PS: IPhone is similar to MacOSX (that's what Apple says). So maybe Juan could just .... ;)

Qt, which is what PI's GUI is based on, is in fact Nokia/Qt. Ha ha, no, no and no!  :cheesy:
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline georg.viehoever

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2132
Hi Juan,

I agree, this is all a question about priorities. The gains can be considerable, the effort also. Plus;: Automatic vectorization with C++ and pointers things can be really tricky, you usually need to help the compiler.

What I usually recommend is to leave assembly level optimization (and threading) as far as possibke to people who do it for money, and use their libraries. An excellent choice are Intel MKL (http://software.intel.com/en-us/intel-mkl/, vector, matrix, FFT) and the Intel performance primitives (http://software.intel.com/en-us/intel-ipp/, signal and image processing etc.). Those work nicely with gcc on all platforms PI cares for, automatically choose the right number of threads, adapt to the different processor generations etc.. Really saves lots of work, and sometimes gives amazing speedups.

Georg



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