Progress in 30 years by four intervals of 7-8 years

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Progress in 30 years by four intervals of 7-8 years

Post by Rebel »

Laskos wrote:I took 5 top engines of their time separated by 4 fairly equal intervals of 7-8 years since 1987, thanks to Ed's porting to UCI of his beautiful old works.
Hardware gains are for one core.
  • Mephisto Roma (1987)
    CPU: 68020 14 MHz
    FIDE ELO: 2070

    Rebel 6.0 (1994)
    CPU: i486 66 MHz
    Hardware gain: 150 ELO points
    FIDE ELO: 2350

    Something happened in this period (1995-2002), the rise of internet, programmers sharing ideas by email, on servers and in fora. An explosion of knowledge, Which only became more important in the years that followed.

    Shredder 6PB (2002)
    CPU: Athlon 1500 MHz
    Hardware gain: 300 ELO points
    FIDE ELO: 2750

    Robbolito 0.085 (2009)
    CPU: Core 2 3000 MHz
    Hardware gain: 100 Elo points
    FIDE ELO: 3050

    Stockfish (2017)
    CPU: i7 4000 MHz
    Hardware gain: 70 Elo points
    FIDE ELO: 3300
User avatar
mhull
Posts: 13447
Joined: Wed Mar 08, 2006 9:02 pm
Location: Dallas, Texas
Full name: Matthew Hull

Re: Progress in 30 years by four intervals of 7-8 years

Post by mhull »

Laskos wrote:
mhull wrote:
Dann Corbit wrote:
mhull wrote:
Dann Corbit wrote:
mhull wrote:Could a programmer from the future have dominated with micros in the 1980s? Is there a way to demonstrate this?
Yes, the search techniques get the branching factor down to 2 or better today. In the 80's it was around 6. A modern program transported to the motorola would blow the doors off of the software of the time.

Simple math.
Do you think the math shows that the software techniques required to achieve lower BF (and higher depth) would compensate for the potentially higher NPS of period software at both blitz and standard time controls?
I don't understand your question.
The NPS will be about the same on period hardware for the old software and the new using mailbox. It may be that the magics bitboards would work better on 32 bit than the old techniques. Not sure about that.

Modern programs compiled for the 68K CPUs would blow the doors off the older programs on the same hardware.

It sounds to me like you may be asking for something else, though.
I guess I'm asking if the new software techniques reduce "path-length-to-elo" on machines with "highly reduced MIPS".

For example, a 16-bit TI9900 machine a 3Mhz with 48K RAM. The strongest chess program on that architecture AFAIK was a David Levy program written for TI994A computer. A C player could handle its highest levels with relative ease.

Or consider the Novag Super-Constellation. Could that same hardware host a significantly stronger program?
I remember someone 2-3 years ago ported Stockfish (5? 6?) to Commodore Amiga 1000 (1985, Motorola 68000 CPU), he was getting around 300 NPS per MHz. On 68020 14 MHz of Mephisto Roma, it would get NPS of about 4000. Tournament time control is about 150 seconds per move, or 600,000 nodes per move. For Stockfish 8, this is solidly in 2800+ FIDE ELO territory, while Mephisto Roma was 2070 FIDE ELO. From my data, the FIDE ELO of Stockfish 8 on 68020 can also be estimated: 1250 computer ELO software progress in 30 years, meaning taking care of FIDE ELO compression, 1250*0.66 = 825 FIDE ELO software progress, and 2070+825 = ~2900 FIDE ELO of Stockfish 8 on Motorola 68020. It is probably a bit inflated, because porting involves a factor of 2-3 NPS loss, but it is too solidly in 2800+ FIDE ELO territory.

So, a present day Stockfish on that Mephisto Roma 68020 board would probably be at least on a par with Kasparov and Deep Blue. Imagine what a stir it would have brought, had it appeared back then in 1987. Strong players played for fun blitz games with these machines, beating them quite easily, imagine Stockfish machine, which is even better at blitz (probably FIDE 3000 on 68020), killing them all.
In regard to this porting back to period hardware, I posed a question once to GM Kaufman: Could GM play against a period machine with a modern program reveal to a GM weaknesses in the program's strategic thinking? Could such analysis be used to improve a modern program?

Because a program running on current hardware is just too powerful for a GM to offer it "advice" because the program is already stronger than the GM. But running on vintage hardware, the limits of the program might be observable to a GM.

By slowing down the program (not at blink-of-an-eye time controls that can't be monitored) the program's progress during thinking can be analyzed in real-time, like ultra slow-motion photography.

I don't know.
Matthew Hull
User avatar
cdani
Posts: 2204
Joined: Sat Jan 18, 2014 10:24 am
Location: Andorra

Re: Progress in 30 years by four intervals of 7-8 years

Post by cdani »

mhull wrote: In regard to this porting back to period hardware, I posed a question once to GM Kaufman: Could GM play against a period machine with a modern program reveal to a GM weaknesses in the program's strategic thinking? Could such analysis be used to improve a modern program?

Because a program running on current hardware is just too powerful for a GM to offer it "advice" because the program is already stronger than the GM. But running on vintage hardware, the limits of the program might be observable to a GM.
It's not necessary to slow down the engine. Andscacs is enormously stronger than me, and I find every day bad played positions than can be improved, and with some of the changes it wins elo.
IanO
Posts: 496
Joined: Wed Mar 08, 2006 9:45 pm
Location: Portland, OR

Re: Progress in 30 years by four intervals of 7-8 years

Post by IanO »

Laskos wrote:
mhull wrote:
Dann Corbit wrote:
mhull wrote:
Dann Corbit wrote:
mhull wrote:Could a programmer from the future have dominated with micros in the 1980s? Is there a way to demonstrate this?
Yes, the search techniques get the branching factor down to 2 or better today. In the 80's it was around 6. A modern program transported to the motorola would blow the doors off of the software of the time.

Simple math.
Do you think the math shows that the software techniques required to achieve lower BF (and higher depth) would compensate for the potentially higher NPS of period software at both blitz and standard time controls?
I don't understand your question.
The NPS will be about the same on period hardware for the old software and the new using mailbox. It may be that the magics bitboards would work better on 32 bit than the old techniques. Not sure about that.

Modern programs compiled for the 68K CPUs would blow the doors off the older programs on the same hardware.

It sounds to me like you may be asking for something else, though.
I guess I'm asking if the new software techniques reduce "path-length-to-elo" on machines with "highly reduced MIPS".

For example, a 16-bit TI9900 machine a 3Mhz with 48K RAM. The strongest chess program on that architecture AFAIK was a David Levy program written for TI994A computer. A C player could handle its highest levels with relative ease.

Or consider the Novag Super-Constellation. Could that same hardware host a significantly stronger program?
I remember someone 2-3 years ago ported Stockfish (5? 6?) to Commodore Amiga 1000 (1985, Motorola 68000 CPU), he was getting around 300 NPS per MHz. On 68020 14 MHz of Mephisto Roma, it would get NPS of about 4000. Tournament time control is about 150 seconds per move, or 600,000 nodes per move. For Stockfish 8, this is solidly in 2800+ FIDE ELO territory, while Mephisto Roma was 2070 FIDE ELO. From my data, the FIDE ELO of Stockfish 8 on 68020 can also be estimated: 1250 computer ELO software progress in 30 years, meaning taking care of FIDE ELO compression, 1250*0.66 = 825 FIDE ELO software progress, and 2070+825 = ~2900 FIDE ELO of Stockfish 8 on Motorola 68020. It is probably a bit inflated, because porting involves a factor of 2-3 NPS loss, but it is too solidly in 2800+ FIDE ELO territory.

So, a present day Stockfish on that Mephisto Roma 68020 board would probably be at least on a par with Kasparov and Deep Blue. Imagine what a stir it would have brought, had it appeared back then in 1987. Strong players played for fun blitz games with these machines, beating them quite easily, imagine Stockfish machine, which is even better at blitz (probably FIDE 3000 on 68020), killing them all.
This is also an interesting question to me, but I don't think it is as clear-cut as the bolded statement. There would be an "impedance-mismatch" between the old architectures and the architectures Stockfish and other modern engines are tuned for: less speed, less memory bandwidth, fewer bits per word, less memory for tables, etc. It could be that if you reduce the resources enough, the modern programs would become weaker than programs that were tuned for the old architectures.

One area that could be easily improved is tuning. The automatic and methodical eval tuning methods should work for any architecture. Due to resource limits, most of the classic programs were hand-tuned.

Of course, modern search techniques should improve strength, but it might be some require a minimum search depth to take effect, which might not be obtained on the weakest hardware.

The closest thing we have to this kind of work to prove this out is Ruud Martin's wonderful Resurrection/Revelation line of dedicated chess computers, which provide both classic dedicated chess computer emulation and modern engines like Stockfish, Rybka, Shredder, and Hiarcs on the same small ARM (and emulated 68000 and 6502) platform. It clearly shows that modern engines are hundreds of ELO stronger than classic engines on the same reduced hardware. It is especially useful for these measurements because it has the option to reduce the processor speed for strength adjustment.
User avatar
mhull
Posts: 13447
Joined: Wed Mar 08, 2006 9:02 pm
Location: Dallas, Texas
Full name: Matthew Hull

Re: Progress in 30 years by four intervals of 7-8 years

Post by mhull »

Laskos wrote:
Stan Arts wrote:
Dann Corbit wrote: Yes.
For instance, I had a C compiler for the Commodore 64, which was an 8 bit machine. So C programs (e.g. CFish) could be made to run on it.
You might have to write an emulation layer for larger integer types, but the branching factor will dominate, even if the software runs much more slowly.
Main problem back then was not the CPU but memory.

You simply have no room to implement anything.
For that reason the programs of it's day on their hardware are still hard to beat.
How this is a problem for Commodore Amiga 1000 of 1985 (Motorola 68000 CPU), with its 512 kB DRAM? Porting of Stockfish on it is known, as I wrote in an earlier post. People could have had a 2800+ FIDE ELO engine (Stockfish 8) by 1985.
I have a running (last time I checked) MC68030 @20Mhz machine with 8Mb RAM. It might be interesting to replicate the backport of Stockfish to confirm the comparison with a period chess computer/program.
Matthew Hull
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Progress in 30 years by four intervals of 7-8 years

Post by Laskos »

mhull wrote:
Laskos wrote:
Stan Arts wrote:
Dann Corbit wrote: Yes.
For instance, I had a C compiler for the Commodore 64, which was an 8 bit machine. So C programs (e.g. CFish) could be made to run on it.
You might have to write an emulation layer for larger integer types, but the branching factor will dominate, even if the software runs much more slowly.
Main problem back then was not the CPU but memory.

You simply have no room to implement anything.
For that reason the programs of it's day on their hardware are still hard to beat.
How this is a problem for Commodore Amiga 1000 of 1985 (Motorola 68000 CPU), with its 512 kB DRAM? Porting of Stockfish on it is known, as I wrote in an earlier post. People could have had a 2800+ FIDE ELO engine (Stockfish 8) by 1985.
I have a running (last time I checked) MC68030 @20Mhz machine with 8Mb RAM. It might be interesting to replicate the backport of Stockfish to confirm the comparison with a period chess computer/program.
Googling from memory, I seem to spot now on
http://de4.aminet.net/game/board/
only Amiga OS4 port of Stockfish. There is a Crafty for 68000 Amiga. I wouldn't know how to make a backport.
User avatar
mhull
Posts: 13447
Joined: Wed Mar 08, 2006 9:02 pm
Location: Dallas, Texas
Full name: Matthew Hull

Re: Progress in 30 years by four intervals of 7-8 years

Post by mhull »

Laskos wrote:
mhull wrote:
Laskos wrote:
Stan Arts wrote:
Dann Corbit wrote: Yes.
For instance, I had a C compiler for the Commodore 64, which was an 8 bit machine. So C programs (e.g. CFish) could be made to run on it.
You might have to write an emulation layer for larger integer types, but the branching factor will dominate, even if the software runs much more slowly.
Main problem back then was not the CPU but memory.

You simply have no room to implement anything.
For that reason the programs of it's day on their hardware are still hard to beat.
How this is a problem for Commodore Amiga 1000 of 1985 (Motorola 68000 CPU), with its 512 kB DRAM? Porting of Stockfish on it is known, as I wrote in an earlier post. People could have had a 2800+ FIDE ELO engine (Stockfish 8) by 1985.
I have a running (last time I checked) MC68030 @20Mhz machine with 8Mb RAM. It might be interesting to replicate the backport of Stockfish to confirm the comparison with a period chess computer/program.
Googling from memory, I seem to spot now on
http://de4.aminet.net/game/board/
only Amiga OS4 port of Stockfish. There is a Crafty for 68000 Amiga. I wouldn't know how to make a backport.
I see the Stockfish port on that link was for a PowerPC and not an MC680x0. But, if I can get Linux running on my Mac IIsi, there might be a way to squeeze it into the platform. (Unless someone has an idea for compiling under MacOS 7).

Failing that, I might be able to get a recent version of Crafty to run on it (adjusted to run on a 32-bit machine).
Matthew Hull
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Progress in 30 years by four intervals of 7-8 years

Post by Laskos »

IanO wrote:
Laskos wrote:
mhull wrote:
Dann Corbit wrote:
mhull wrote:
Dann Corbit wrote:
mhull wrote:Could a programmer from the future have dominated with micros in the 1980s? Is there a way to demonstrate this?
Yes, the search techniques get the branching factor down to 2 or better today. In the 80's it was around 6. A modern program transported to the motorola would blow the doors off of the software of the time.

Simple math.
Do you think the math shows that the software techniques required to achieve lower BF (and higher depth) would compensate for the potentially higher NPS of period software at both blitz and standard time controls?
I don't understand your question.
The NPS will be about the same on period hardware for the old software and the new using mailbox. It may be that the magics bitboards would work better on 32 bit than the old techniques. Not sure about that.

Modern programs compiled for the 68K CPUs would blow the doors off the older programs on the same hardware.

It sounds to me like you may be asking for something else, though.
I guess I'm asking if the new software techniques reduce "path-length-to-elo" on machines with "highly reduced MIPS".

For example, a 16-bit TI9900 machine a 3Mhz with 48K RAM. The strongest chess program on that architecture AFAIK was a David Levy program written for TI994A computer. A C player could handle its highest levels with relative ease.

Or consider the Novag Super-Constellation. Could that same hardware host a significantly stronger program?
I remember someone 2-3 years ago ported Stockfish (5? 6?) to Commodore Amiga 1000 (1985, Motorola 68000 CPU), he was getting around 300 NPS per MHz. On 68020 14 MHz of Mephisto Roma, it would get NPS of about 4000. Tournament time control is about 150 seconds per move, or 600,000 nodes per move. For Stockfish 8, this is solidly in 2800+ FIDE ELO territory, while Mephisto Roma was 2070 FIDE ELO. From my data, the FIDE ELO of Stockfish 8 on 68020 can also be estimated: 1250 computer ELO software progress in 30 years, meaning taking care of FIDE ELO compression, 1250*0.66 = 825 FIDE ELO software progress, and 2070+825 = ~2900 FIDE ELO of Stockfish 8 on Motorola 68020. It is probably a bit inflated, because porting involves a factor of 2-3 NPS loss, but it is too solidly in 2800+ FIDE ELO territory.

So, a present day Stockfish on that Mephisto Roma 68020 board would probably be at least on a par with Kasparov and Deep Blue. Imagine what a stir it would have brought, had it appeared back then in 1987. Strong players played for fun blitz games with these machines, beating them quite easily, imagine Stockfish machine, which is even better at blitz (probably FIDE 3000 on 68020), killing them all.
This is also an interesting question to me, but I don't think it is as clear-cut as the bolded statement. There would be an "impedance-mismatch" between the old architectures and the architectures Stockfish and other modern engines are tuned for: less speed, less memory bandwidth, fewer bits per word, less memory for tables, etc. It could be that if you reduce the resources enough, the modern programs would become weaker than programs that were tuned for the old architectures.

One area that could be easily improved is tuning. The automatic and methodical eval tuning methods should work for any architecture. Due to resource limits, most of the classic programs were hand-tuned.

Of course, modern search techniques should improve strength, but it might be some require a minimum search depth to take effect, which might not be obtained on the weakest hardware.

The closest thing we have to this kind of work to prove this out is Ruud Martin's wonderful Resurrection/Revelation line of dedicated chess computers, which provide both classic dedicated chess computer emulation and modern engines like Stockfish, Rybka, Shredder, and Hiarcs on the same small ARM (and emulated 68000 and 6502) platform. It clearly shows that modern engines are hundreds of ELO stronger than classic engines on the same reduced hardware. It is especially useful for these measurements because it has the option to reduce the processor speed for strength adjustment.
IIRC, the port of Stockfish (5? 6?) to 68000 gave 200-300 NPS per MHz. This is not so bad in spite of the changes of machine architecture. Stockfish on i7 gives close to 600 NPS per MHz, so only a factor 2-3 frequency wise. I don't think there is a question whether Stockfish on old machines is much stronger than old engines. Stockfish at 1000 nodes per move is pretty equal to Mephisto Roma (1987) at tournament time control, which probably spends hundreds of thousands of nodes per move. Yes, one of those Resurrection/Revelation boards and emulators would be useful.
User avatar
Laskos
Posts: 10948
Joined: Wed Jul 26, 2006 10:21 pm
Full name: Kai Laskos

Re: Progress in 30 years by four intervals of 7-8 years

Post by Laskos »

mhull wrote:
Laskos wrote:
mhull wrote:
Laskos wrote:
Stan Arts wrote:
Dann Corbit wrote: Yes.
For instance, I had a C compiler for the Commodore 64, which was an 8 bit machine. So C programs (e.g. CFish) could be made to run on it.
You might have to write an emulation layer for larger integer types, but the branching factor will dominate, even if the software runs much more slowly.
Main problem back then was not the CPU but memory.

You simply have no room to implement anything.
For that reason the programs of it's day on their hardware are still hard to beat.
How this is a problem for Commodore Amiga 1000 of 1985 (Motorola 68000 CPU), with its 512 kB DRAM? Porting of Stockfish on it is known, as I wrote in an earlier post. People could have had a 2800+ FIDE ELO engine (Stockfish 8) by 1985.
I have a running (last time I checked) MC68030 @20Mhz machine with 8Mb RAM. It might be interesting to replicate the backport of Stockfish to confirm the comparison with a period chess computer/program.
Googling from memory, I seem to spot now on
http://de4.aminet.net/game/board/
only Amiga OS4 port of Stockfish. There is a Crafty for 68000 Amiga. I wouldn't know how to make a backport.
I see the Stockfish port on that link was for a PowerPC and not an MC680x0. But, if I can get Linux running on my Mac IIsi, there might be a way to squeeze it into the platform. (Unless someone has an idea for compiling under MacOS 7).

Failing that, I might be able to get a recent version of Crafty to run on it (adjusted to run on a 32-bit machine).
I seem to not be able to find that Stockfish port to 68000 Amiga. It was 2-3 years ago that I saw a link to that port and a discussion about its efficiency. IIRC it was claimed Stockfish is getting 200-300 NPS per MHz. On Amiga 1000 it would mean about 2,000 NPS.
User avatar
mhull
Posts: 13447
Joined: Wed Mar 08, 2006 9:02 pm
Location: Dallas, Texas
Full name: Matthew Hull

Re: Progress in 30 years by four intervals of 7-8 years

Post by mhull »

Laskos wrote:
mhull wrote:
Laskos wrote:
mhull wrote:
Laskos wrote:
Stan Arts wrote:
Dann Corbit wrote: Yes.
For instance, I had a C compiler for the Commodore 64, which was an 8 bit machine. So C programs (e.g. CFish) could be made to run on it.
You might have to write an emulation layer for larger integer types, but the branching factor will dominate, even if the software runs much more slowly.
Main problem back then was not the CPU but memory.

You simply have no room to implement anything.
For that reason the programs of it's day on their hardware are still hard to beat.
How this is a problem for Commodore Amiga 1000 of 1985 (Motorola 68000 CPU), with its 512 kB DRAM? Porting of Stockfish on it is known, as I wrote in an earlier post. People could have had a 2800+ FIDE ELO engine (Stockfish 8) by 1985.
I have a running (last time I checked) MC68030 @20Mhz machine with 8Mb RAM. It might be interesting to replicate the backport of Stockfish to confirm the comparison with a period chess computer/program.
Googling from memory, I seem to spot now on
http://de4.aminet.net/game/board/
only Amiga OS4 port of Stockfish. There is a Crafty for 68000 Amiga. I wouldn't know how to make a backport.
I see the Stockfish port on that link was for a PowerPC and not an MC680x0. But, if I can get Linux running on my Mac IIsi, there might be a way to squeeze it into the platform. (Unless someone has an idea for compiling under MacOS 7).

Failing that, I might be able to get a recent version of Crafty to run on it (adjusted to run on a 32-bit machine).
I seem to not be able to find that Stockfish port to 68000 Amiga. It was 2-3 years ago that I saw a link to that port and a discussion about its efficiency. IIRC it was claimed Stockfish is getting 200-300 NPS per MHz. On Amiga 1000 it would mean about 2,000 NPS.
A Fidelity Mach II LA, MC68000 @12Mhz with Spracklen chess engine averages about 2,000 NPS (IIRC). If that was an assembler program, I would expect a C program to get somewhat less but who knows.

http://www.schach-computer.info/wiki/in ... 00_Mach_II
Matthew Hull