Changes

Jump to: navigation, search

AsmFish

5 bytes added, 22:32, 27 December 2018
no edit summary
'''asmFish''',<br/>
a [[Stockfish#ports|port]] of Stockfish in [[x86-64]] [[Assembly|assembly]] by [[Mohammed Li]], optional using [[AVX2]] and [[BMI2]] instructions, assembled with [https://en.wikipedia.org/wiki/FASM FASM] to run under [[Windows]] or [[Unix|UNIX]]/[[Linux]], first released in June 2016. The fun project is about to demonstrate how an experienced assembly programmer can optimize a program compared with [https://en.wikipedia.org/wiki/GNU_Compiler_Collection GCC] <ref>[https://groups.google.com/d/msg/fishcooking/HKIYwO6pF-s/p9t48jDZBAAJ Re: [for fun] rewrite of stockfish into asm and question on source] by [[Mohammed Li]], [[Computer Chess Forums|FishCooking]], April 18, 2016</ref>. A few structural optimizations were also applied, such as elimination of [[Piece-Lists|piece lists]] as already tried in Stockfish <ref>[https://groups.google.com/d/msg/fishcooking/aJEf-_SmpWY/TARC-1aPGzYJ removal of piece lists] by [[Mohammed Li]], [[Computer Chess Forums|FishCooking]], November 11, 2014</ref>, which were later reinstalled due to the slower but stronger '''pedantFish''' (asmFish with PEDANTIC = 1) with the same node counts as Stockfish, became default <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=69364&start=12 Re: piece lists advantage with bit-boards?] by [[Ronald de Man]], [[CCC]], December 26, 2018</ref>. Critical functions in asmFish were not conform to the x86-64 [https://en.wikipedia.org/wiki/Application_binary_interface ABI] concerning register usage and [https://en.wikipedia.org/wiki/Calling_convention calling convention] <ref>[http://www.agner.org/optimize/#manuals Agner Fog's manuals]</ref>. Some less time critical code was ported using GCC generated assembly output, such as [[Ronald de Man|Ronald de Man's]] probing code for [[Syzygy Bases]]. asmFish further supports [[Memory#HugePages|large pages]], and its [[Parallel Search|parallel search]] is [[NUMA|numa]] aware <ref>[https://github.com/tthsqe12/asm/blob/master/readme.txt asm/readme.txt at master · tthsqe12/asm · GitHub]</ref> <ref>[https://groups.google.com/d/msg/fishcooking/ezt6MrAuXqs/qIR2HEciEgAJ lets get the ball moving down the field on numa awareness] by [[Mohammed Li]], [[Computer Chess Forums|FishCooking]], August 30, 2016</ref> .
=See also=

Navigation menu