Stockfish 2.2.2 JA update available

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

Moderator: Ras

Jouni
Posts: 3743
Joined: Wed Mar 08, 2006 8:15 pm
Full name: Jouni Uski

Re: Stockfish 2.2.2 JA update available

Post by Jouni »

Wow I got 8% speed-up for free :) Now Rybka 4.1 is sure beaten!

Jouni
daylen
Posts: 40
Joined: Fri Dec 30, 2011 5:33 am
Location: Berkeley, CA

Re: Stockfish 2.2.2 JA update available

Post by daylen »

Yup, same here.

2.4 GHz Intel Core 2 Duo
Windows 7

SF 2.2.1 JA w32 - 2 threads
SF 2.2.1 JA x64 - 2 threads
SF 2.2.2 JA w32 - 2 threads
SF 2.2.2 JA x64 - 1 thread

Of course, can't run the SSE4.2 compile.
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: Stockfish 2.2.2 JA update available

Post by mcostalba »

gaard wrote:Win7. My own compiles all default to 4 with msvc. I'm guessing something didn't translate correctly with GCC.
This is interesting. Now the new super builds of Jim use a different code to detect cpu counts (they must because gcc libraries are different from MSVC)

In particular this is the code:

Code: Select all

/// cpu_count() tries to detect the number of CPU cores

int cpu_count() {

#if defined(_MSC_VER)
  SYSTEM_INFO s;
  GetSystemInfo(&s);
  return std::min(int(s.dwNumberOfProcessors), MAX_THREADS);
#else

#  if defined(_SC_NPROCESSORS_ONLN)
  return std::min((int)sysconf(_SC_NPROCESSORS_ONLN), MAX_THREADS);
#  elif defined(__hpux)
  struct pst_dynamic psd;
  if (pstat_getdynamic(&psd, sizeof(psd), (size_t)1, 0) == -1)
      return 1;
  return std::min((int)psd.psd_proc_cnt, MAX_THREADS);
#  else
  return 1;
#  endif

#endif
}

I suspect _SC_NPROCESSORS_ONLN is not defined in the compile environment and so cpu_count() defaults to "return 1;"
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: Stockfish 2.2.2 JA update available

Post by mcostalba »

Graham Banks wrote: For testing purposes, can 2.2.1 and 2.2.2 be combined?
Are the 32-bit compiles changed as well?
For testing purposes the expected improvement of 2.2.2 is far below the error bar of most of the testers, so I'd recommend to do not bother retesting....at least if you are not really getting bored today :-)
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: Stockfish 2.2.2 JA update available

Post by mcostalba »

rvida wrote:the offending insruction is

Code: Select all

000000000041C3F0  pabsd       xmm2,xmm2
It is a SSSE3 (note the triple S) introduced in 2006

http://en.wikipedia.org/wiki/SSSE3

On AMD the architectures supporting this extension are: Bobcat and Bulldozer. Other chips are out of luck :-)
lucasart
Posts: 3242
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Stockfish 2.2.2 JA update available

Post by lucasart »

mcostalba wrote:
gaard wrote:Win7. My own compiles all default to 4 with msvc. I'm guessing something didn't translate correctly with GCC.
This is interesting. Now the new super builds of Jim use a different code to detect cpu counts (they must because gcc libraries are different from MSVC)

In particular this is the code:

Code: Select all

/// cpu_count() tries to detect the number of CPU cores

int cpu_count() {

#if defined(_MSC_VER)
  SYSTEM_INFO s;
  GetSystemInfo(&s);
  return std::min(int(s.dwNumberOfProcessors), MAX_THREADS);
#else

#  if defined(_SC_NPROCESSORS_ONLN)
  return std::min((int)sysconf(_SC_NPROCESSORS_ONLN), MAX_THREADS);
#  elif defined(__hpux)
  struct pst_dynamic psd;
  if (pstat_getdynamic(&psd, sizeof(psd), (size_t)1, 0) == -1)
      return 1;
  return std::min((int)psd.psd_proc_cnt, MAX_THREADS);
#  else
  return 1;
#  endif

#endif
}

I suspect _SC_NPROCESSORS_ONLN is not defined in the compile environment and so cpu_count() defaults to "return 1;"
but it works fine with GCC on Linux. is Jim using mingw ? if so, I don't see why it shouldn't work on Windows
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: Stockfish 2.2.2 JA update available

Post by mcostalba »

lucasart wrote: but it works fine with GCC on Linux. is Jim using mingw ? if so, I don't see why it shouldn't work on Windows
As I suggested, perhaps he needs to manually define _SC_NPROCESSORS_ONLN in his 64 bit mingw environment while in the 32 bits perhaps it is already defined.
lucasart
Posts: 3242
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Stockfish 2.2.2 JA update available

Post by lucasart »

[quote="mcostalba"]

Code: Select all

#if defined(_MSC_VER)
  SYSTEM_INFO s;
  GetSystemInfo(&s);
  return std::min(int(s.dwNumberOfProcessors), MAX_THREADS);
#else
[/quote]
Why _MSC_VER ? Shouldn't it apply to GCC the same way ? It's just a windows API call that returns the number of CPU, as I understand
Christian Goralski
Posts: 26
Joined: Sat Jan 09, 2010 1:06 pm

Re: Stockfish 2.2.2 JA update available

Post by Christian Goralski »

Thank you very much for the new release!

Stockfish 2.2.2 had still the "time bug"!?

In my third 60+15 online game on chessbase server engine lost on time after move 109!

[Event "Wertungspartie, 60 m + 15s"]
[Site "Maschinenraum"]
[Date "2012.01.15"]
[Round "?"]
[White "Kasparito_2, Houdini 2.0b Pro w3"]
[Black "Christian Gorals, Stockfish 2.2.2 JA "]
[Result "1-0"]
[ECO "C65"]
[WhiteElo "2400"]
[BlackElo "2568"]
[Annotator "0.17;0.08"]
[PlyCount "217"]
[EventDate "2012.01.15"]
[TimeControl "3600+15"]

{Houdini 2.0b Pro w32 (4 cores): 25.6 plies; 6.051kN/s Intel(R) Core(TM)
i5-2400S CPU @ 2.50GHz 2494MHz, Hiarcs13hBook.ctg, 8192 MB} 1. e4 {[%eval 0,0]
[%emt 0:00:00]} e5 {[%eval 0,0] [%emt 0:00:00]} 2. Nf3 {[%eval 0,0] [%emt 0:00:
00]} Nc6 {[%eval 0,0] [%emt 0:00:00]} 3. Bb5 {[%eval 0,0] [%emt 0:00:00]} Nf6 {
[%eval 0,0] [%emt 0:00:00]} 4. d3 {[%eval 0,0] [%emt 0:00:00]} Bc5 {[%eval 0,0]
[%emt 0:00:00]} 5. O-O {[%eval 0,0] [%emt 0:00:00]} Nd4 {[%eval 0,0] [%emt 0:
00:00]} 6. Nxd4 {[%eval 0,0] [%emt 0:00:00]} Bxd4 {[%eval 0,0] [%emt 0:00:00]}
7. Nd2 {[%eval 0,0] [%emt 0:00:00]} c6 {[%eval 0,0] [%emt 0:00:00]} 8. Ba4 {
[%eval 0,0] [%emt 0:00:00]} Bb6 {[%eval 0,0] [%emt 0:00:00]} 9. Bb3 {[%eval 17,
24] [%emt 0:02:33]} d6 {[%eval 0,0] [%emt 0:00:00] (0-0)} 10. Nc4 {[%eval 16,
23] [%emt 0:01:57]} Bc7 {[%eval 0,0] [%emt 0:00:00] (Ae6)} 11. Bg5 {[%eval 20,
23] [%emt 0:01:24]} h6 {[%eval 8,28] [%emt 0:01:39]} 12. Bh4 {[%eval 15,24]
[%emt 0:00:19]} Be6 {[%eval 16,29] [%emt 0:03:38]} 13. Qe2 {[%eval 15,24]
[%emt 0:00:12] (Qd2)} Qe7 {[%eval 0,28] [%emt 0:03:39] (g5)} 14. f3 {[%eval 7,
22] [%emt 0:01:54] (a4)} a5 {[%eval 8,27] [%emt 0:01:32] (Dd7)} 15. Ne3 {
[%eval 16,23] [%emt 0:01:19]} a4 {[%eval 16,28] [%emt 0:00:09] (0-0)} 16. Bxe6
{[%eval 19,23] [%emt 0:02:14]} fxe6 {[%eval 12,28] [%emt 0:01:55]} 17. Ng4 {
[%eval 20,24] [%emt 0:00:00] (Rad1)} Bb6+ {[%eval 0,29] [%emt 0:01:32]} 18. Kh1
{[%eval 18,25] [%emt 0:01:25] (Bf2)} g5 {[%eval 0,29] [%emt 0:02:24]} 19. Nxf6+
{[%eval 16,25] [%emt 0:00:38] (Bf2)} Qxf6 {[%eval -48,12] [%emt 0:00:00]} 20.
Bf2 {[%eval 16,25] [%emt 0:02:06]} Bxf2 {[%eval 0,31] [%emt 0:00:02]} 21. Qxf2
{[%eval 16,24] [%emt 0:05:02]} Kd7 {[%eval -8,33] [%emt 0:00:36] (0-0)} 22. c4
{[%eval 16,22] [%emt 0:01:10]} Kc7 {[%eval -8,30] [%emt 0:01:22] (Rc8)} 23.
Rab1 {[%eval 19,24] [%emt 0:01:12] (Rad1)} b6 {[%eval -8,35] [%emt 0:05:42]}
24. b4 {[%eval 16,24] [%emt 0:00:15] (b3)} h5 {[%eval 0,34] [%emt 0:01:43]
(Thf8)} 25. Rbd1 {[%eval 16,22] [%emt 0:01:12] (Qb2)} h4 {[%eval 0,34] [%emt 0:
02:00] (Thd8)} 26. h3 {[%eval 28,23] [%emt 0:02:11] (Kg1)} Rhd8 {[%eval 28,29]
[%emt 0:02:14]} 27. Qc2 {[%eval 25,24] [%emt 0:00:29] (Rfe1)} Qg7 {[%eval 16,
30] [%emt 0:02:06] (Df4)} 28. Rd2 {[%eval 34,24] [%emt 0:01:04]} Qf6 {[%eval
44,31] [%emt 0:02:15] (Rb7)} 29. a3 {[%eval 36,24] [%emt 0:01:08] (Re1)} Qg7 {
[%eval 36,34] [%emt 0:03:10] (d5)} 30. Rfd1 {[%eval 45,26] [%emt 0:01:56]} Qh8
{[%eval 36,34] [%emt 0:01:50]} 31. Qa2 {[%eval 45,27] [%emt 0:00:00] (d4)} Qf8
{[%eval 36,35] [%emt 0:01:17] (Df6)} 32. d4 {[%eval 45,27] [%emt 0:01:44]} exd4
{[%eval 36,36] [%emt 0:00:00]} 33. Rxd4 {[%eval 45,25] [%emt 0:00:01]} Qg7 {
[%eval 36,39] [%emt 0:02:14] (Df6)} 34. Qd2 {[%eval 45,27] [%emt 0:01:17]
(R4d3)} Qe5 {[%eval 36,39] [%emt 0:02:22]} 35. Qc1 {[%eval 45,28] [%emt 0:00:
00] (Rd3)} Rac8 {[%eval 36,35] [%emt 0:01:11] (Dg7)} 36. Qc2 {[%eval 45,27]
[%emt 0:01:03]} Ra8 {[%eval 36,38] [%emt 0:00:23]} 37. R4d2 {[%eval 45,27]
[%emt 0:00:45]} Qg7 {[%eval 36,37] [%emt 0:00:44]} 38. Rd3 {[%eval 45,27]
[%emt 0:00:39] (Rb1)} Qf6 {[%eval 36,38] [%emt 0:01:29] (Dh8)} 39. Qd2 {[%eval
45,26] [%emt 0:00:54] (Qf2)} Qe5 {[%eval 36,38] [%emt 0:01:23] (Df4)} 40. Kg1 {
[%eval 45,25] [%emt 0:01:22] (Qc2)} Rab8 {[%eval 36,34] [%emt 0:01:31] (Td7)}
41. Qc2 {[%eval 45,26] [%emt 0:05:13] (Rb1)} Ra8 {[%eval 36,36] [%emt 0:01:23]}
42. Qb1 {[%eval 45,26] [%emt 0:00:00] (Qa2)} Rac8 {[%eval 36,34] [%emt 0:01:16]
(Td7)} 43. Qc1 {[%eval 45,27] [%emt 0:02:27] (Qa2)} Ra8 {[%eval 36,38] [%emt 0:
01:55]} 44. Qc2 {[%eval 45,27] [%emt 0:00:00]} Qf6 {[%eval 36,38] [%emt 0:02:
09] (Td7)} 45. Qf2 {[%eval 45,26] [%emt 0:00:44] (Qd2)} Rab8 {[%eval 36,36]
[%emt 0:01:20] (De5)} 46. Qe3 {[%eval 45,26] [%emt 0:00:51] (Qc2)} Qe5 {[%eval
36,36] [%emt 0:01:06] (Df4)} 47. Qd2 {[%eval 45,27] [%emt 0:01:11]} Ra8 {
[%eval 36,37] [%emt 0:00:06]} 48. Kh1 {[%eval 45,28] [%emt 0:00:48]} Rab8 {
[%eval 36,36] [%emt 0:00:12] (Df4)} 49. Qc2 {[%eval 45,27] [%emt 0:00:40] (Rb1)
} Ra8 {[%eval 36,34] [%emt 0:01:06]} 50. Qf2 {[%eval 45,29] [%emt 0:02:30]
(Qa2)} Rac8 {[%eval 36,35] [%emt 0:01:21] (Df6)} 51. Kg1 {[%eval 43,23] [%emt
0:02:03] (Rc1)} Qf6 {[%eval 36,33] [%emt 0:02:17] (d5)} 52. Qd2 {[%eval 45,24]
[%emt 0:00:36]} Qe5 {[%eval 36,36] [%emt 0:00:17]} 53. Rc1 {[%eval 45,25]
[%emt 0:00:25] (Qa2)} Qf4 {[%eval 36,35] [%emt 0:01:06]} 54. Qc2 {[%eval 45,26]
[%emt 0:00:00]} Ra8 {[%eval 36,35] [%emt 0:00:41]} 55. Kh1 {[%eval 45,26]
[%emt 0:00:00]} Qf6 {[%eval 36,36] [%emt 0:00:54] (De5)} 56. Qf2 {[%eval 45,26]
[%emt 0:00:48] (Rdd1)} Qe5 {[%eval 36,37] [%emt 0:01:04] (Df4)} 57. Qe2 {
[%eval 45,26] [%emt 0:00:51] (Rdd1)} Qf4 {[%eval 36,35] [%emt 0:00:33] (Rb7)}
58. Qb2 {[%eval 45,27] [%emt 0:00:52] (Rdd1)} Qe5 {[%eval 36,35] [%emt 0:00:28]
} 59. Qa2 {[%eval 45,26] [%emt 0:00:36] (Qf2)} Qf6 {[%eval 36,34] [%emt 0:00:
36] (Rb7)} 60. Rcd1 {[%eval 43,26] [%emt 0:00:36] (Qd2)} Qe5 {[%eval 36,38]
[%emt 0:01:28]} 61. Qc2 {[%eval -7,25] [%emt 0:01:34]} Qf6 {[%eval 0,47] [%emt
0:00:00] (Dg7)} 62. Qb1 {[%eval 39,24] [%emt 0:00:30] (Qf2)} Qh8 {[%eval 36,33]
[%emt 0:00:25] (Df4)} 63. Rc1 {[%eval 44,24] [%emt 0:00:55] (Re1)} Qe5 {[%eval
36,35] [%emt 0:00:37] (Dg7)} 64. Rf1 {[%eval 40,23] [%emt 0:00:30] (Re1)} Rf8 {
[%eval 36,35] [%emt 0:00:30] (Tac8)} 65. Rfd1 {[%eval 44,25] [%emt 0:01:00]}
Rfd8 {[%eval 36,39] [%emt 0:00:00]} 66. Qc1 {[%eval 41,24] [%emt 0:00:37] (Qa2)
} Qf4 {[%eval 36,36] [%emt 0:00:24] (Tac8)} 67. R1d2 {[%eval 45,25] [%emt 0:00:
41] (Qa1)} Qe5 {[%eval 36,32] [%emt 0:00:23] (Df6)} 68. b5 {[%eval 39,25]
[%emt 0:01:02] (Qe1)} c5 {[%eval 0,35] [%emt 0:00:46]} 69. Qd1 {[%eval 39,29]
[%emt 0:00:00] (Rd1)} Rd7 {[%eval 0,36] [%emt 0:00:28]} 70. Kg1 {[%eval 39,28]
[%emt 0:00:49]} Rdd8 {[%eval 0,39] [%emt 0:00:00] (Ta7)} 71. Qc1 {[%eval 39,27]
[%emt 0:00:37] (Kh1)} Rd7 {[%eval 0,40] [%emt 0:00:25] (Rb7)} 72. Qc2 {[%eval
39,26] [%emt 0:00:25] (Qd1)} Rdd8 {[%eval 0,35] [%emt 0:00:26] (Rb7)} 73. Rd1 {
[%eval 36,27] [%emt 0:00:53] (Qb1) Christian Gorals,Stockfish 2.2.2 JA S
bietet Remis} Rd7 {[%eval 0,36] [%emt 0:00:25]} 74. Rb1 {[%eval 36,26] [%emt 0:
00:11] (Kf2)} Rdd8 {[%eval 0,36] [%emt 0:00:21]} 75. Qd2 {[%eval 36,26] [%emt
0:00:08] (Rbd1)} Rd7 {[%eval 0,36] [%emt 0:00:13]} 76. Rc1 {[%eval 36,26]
[%emt 0:00:32] (Rd1)} Rb8 {[%eval 0,34] [%emt 0:00:12] (Df4)} 77. Qc2 {[%eval
36,26] [%emt 0:00:35]} Ra8 {[%eval 0,40] [%emt 0:00:00]} 78. Rcd1 {[%eval 36,
26] [%emt 0:00:31]} Qf6 {[%eval 0,37] [%emt 0:00:00] (Df4)} 79. Qd2 {[%eval 36,
27] [%emt 0:00:24]} Qe5 {[%eval 0,42] [%emt 0:00:03] (Df4)} 80. Rb1 {[%eval 36,
24] [%emt 0:01:05] (Qc2)} Rg8 {[%eval 0,36] [%emt 0:00:20] (Rb7)} 81. Qc2 {
[%eval 36,24] [%emt 0:00:28] (Rd1)} Ra8 {[%eval 0,37] [%emt 0:00:18]} 82. Rf1 {
[%eval 36,26] [%emt 0:00:14] (Rbd1)} Rdd8 {[%eval 0,35] [%emt 0:00:21]} 83. Qd2
{[%eval 36,27] [%emt 0:00:06] (Rfd1)} Rd7 {[%eval 0,36] [%emt 0:00:38]} 84. Re1
{[%eval 36,27] [%emt 0:00:01] (Rb1)} Rdd8 {[%eval 0,39] [%emt 0:00:18] (Tad8)}
85. Kh1 {[%eval 36,28] [%emt 0:00:29] (Rb1)} Rf8 {[%eval 0,37] [%emt 0:00:18]
(Rb8)} 86. Rd1 {[%eval 36,30] [%emt 0:01:28]} Rfd8 {[%eval 0,42] [%emt 0:00:00]
} 87. Qc2 {[%eval 36,29] [%emt 0:00:47] (Re1)} Rd7 {[%eval 0,42] [%emt 0:00:33]
} 88. R3d2 {[%eval 36,28] [%emt 0:01:15] (Kg1)} Kb7 {[%eval 0,36] [%emt 0:00:
14] (Rb8)} 89. Kg1 {[%eval 36,26] [%emt 0:00:23]} Kc8 {[%eval 0,36] [%emt 0:00:
01] (Rb8)} 90. Rf2 {[%eval 36,26] [%emt 0:00:26] (Kf2)} Kb7 {[%eval 0,39]
[%emt 0:00:15]} 91. Rd3 {[%eval 36,26] [%emt 0:00:19] (Rfd2)} Qa1+ {[%eval 0,
31] [%emt 0:00:15] (Rb8)} 92. Rf1 {[%eval 36,26] [%emt 0:00:23]} Qe5 {[%eval 0,
36] [%emt 0:00:00] (Dg7)} 93. Qd1 {[%eval 36,26] [%emt 0:00:53] (Rdd1)} Kc7 {
[%eval 0,37] [%emt 0:00:18] (Df4)} 94. Rf2 {[%eval 36,25] [%emt 0:00:19] (Qc2)}
Kb7 {[%eval 0,38] [%emt 0:00:30] (Rd8)} 95. Rfd2 {[%eval 29,25] [%emt 0:00:17]
(Qc2)} Kc7 {[%eval 0,39] [%emt 0:00:15]} 96. Kh1 {[%eval 29,26] [%emt 0:00:11]
(Rf2)} Rdd8 {[%eval 0,38] [%emt 0:00:19] (Ta5)} 97. Qc2 {[%eval 29,25] [%emt 0:
00:17] (Kg1)} Kb7 {[%eval 0,37] [%emt 0:00:24] (Td7)} 98. Kg1 {[%eval -7,27]
[%emt 0:01:04] (Qd1)} Kc7 {[%eval 0,39] [%emt 0:00:15]} 99. Qb1 {[%eval 26,25]
[%emt 0:00:07] (Qd1)} Rd7 {[%eval 0,40] [%emt 0:00:16]} 100. Rd1 {[%eval 26,25]
[%emt 0:00:05] (Qd1)} Rdd8 {[%eval 0,35] [%emt 0:00:10] (Rb8)} 101. Qa2 {
[%eval 26,26] [%emt 0:00:19] (Qc2)} Qf6 {[%eval 0,36] [%emt 0:00:16] (Td7)}
102. Qd2 {[%eval 26,26] [%emt 0:00:16]} Qe5 {[%eval 0,36] [%emt 0:00:03]} 103.
Qe2 {[%eval 26,25] [%emt 0:00:30] (Qc2)} Kb7 {[%eval 0,35] [%emt 0:00:20] (Td7)
} 104. Qc2 {[%eval 26,26] [%emt 0:00:21] (Qd2)} Kc7 {[%eval 0,39] [%emt 0:00:
18] (Df4)} 105. Kf2 {[%eval 21,23] [%emt 0:00:16] (Qf2)} Qg3+ {[%eval 0,37]
[%emt 0:00:17] (Td7)} 106. Kf1 {[%eval 21,26] [%emt 0:00:15]} Qe5 {[%eval 0,39]
[%emt 0:00:00] (Td7)} 107. Qd2 {[%eval 17,24] [%emt 0:00:19] (R3d2)} Rd7 {
[%eval 0,37] [%emt 0:00:17]} 108. Re1 {[%eval 17,24] [%emt 0:00:23] (Qc2)} Rf7
{[%eval 0,37] [%emt 0:00:23] (Df4)} 109. Kg1 {[%eval 16,25] [%emt 0:00:14]
(Rd1) Zeit} 1-0

Sincerely Christian Goralski
Har
Posts: 147
Joined: Wed Mar 08, 2006 9:38 pm

Re: Stockfish 2.2.2 JA update available

Post by Har »

Yes,very bad time management also with increase.