Description - phoronix/fhourstones

This integer benchmark solves positions in the game of Connect-4, as played on a vertical 7×6 board. By default, it uses a 64Mb transposition table with the two big replacement strategy. Positions are represented as 64-bit bitboards, and the hash function is computed using a single 64-bit modulo operation, giving 64-bit machines a slight edge. The alpha-beta searcher sorts moves dynamically based on the history heuristic.

This benchmark is single-threaded and all runs below were pinned to core 1.

Metrics (Intel) - phoronix/fhourstones
sh - pid 6629
	On_CPU   0.125
	On_Core  1.000
	IPC      1.396
	Retire   0.351	(35.1%)
	FrontEnd 0.075	(7.5%)
	Spec     0.176	(17.6%)
	Backend  0.399	(39.9%)
	Elapsed  138.67
	Procs    3
	Maxrss   65K
	Minflt   16452
	Majflt   0
	Inblock  0
	Oublock  16
	Msgsnd   0
	Msgrcv   0
	Nsignals 0
	Nvcsw    18	(28.6%)
	Nivcsw   45
	Utime    138.651622
	Stime    0.023595
	Start    551256.15
	Finish   551394.82

The code uses a single core 100%. Both the amount of backend stalls and speculation stalls are higher than average. This makes the IPC of 1.40 lower than many single-threaded benchmarks.

Metrics (AMD) - phoronix/fhourstones
sh - pid 14390
	On_CPU   0.062
	On_Core  1.000
	IPC      1.288
	FrontCyc 0.112	(11.2%)
	BackCyc  0.112	(11.2%)
	Elapsed  156.38
	Procs    3
	Maxrss   65K
	Minflt   16455
	Majflt   0
	Inblock  0
	Oublock  16
	Msgsnd   0
	Msgrcv   0
	Nsignals 0
	Nvcsw    18	(0.1%)
	Nivcsw   15078
	Utime    156.301197
	Stime    0.014685
	Start    561126.42
	Finish   561282.80

IPC on AMD is just a little lower.

Process Tree - phoronix/fhourstones
Process Tree
The process tree is simple:

    6629) sh
      6630) fhourstones-ben
        6631) SearchGame


Shows at 100% on core 1.


IPC overall has some noise but is lower.


Both backend stalls and bad speculation are issues.

Next steps: Dig deeper into speculation misses.