Older Version Newer Version

GerdIsenberg GerdIsenberg Feb 14, 2018

**[[Home]] * [[Engines]] * [[Stockfish]] * asmFish**
|| [[image:Istiophorus_platypterus.jpg width="352" height="189" link="https://commons.wikimedia.org/wiki/File:Istiophorus_platypterus.jpg"]] ||~   || **asmFish**,
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]]/[[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> . Critical functions in asmFish do 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> . ||
|| [[https://en.wikipedia.org/wiki/Indo-Pacific_sailfish|Istiophorus platypterus]], one of the world's fastest fish <ref>Istiophorus platypterus, [[https://commons.wikimedia.org/wiki/File:Istiophorus_platypterus.jpg|Image]] by [[https://commons.wikimedia.org/wiki/User:Citron|Citron]], March 2010, [[https://creativecommons.org/licenses/by-sa/3.0/deed.en|CC BY-SA 3.0]], [[https://en.wikipedia.org/wiki/Wikimedia_Commons|Wikimedia Commons]], [[https://en.wikipedia.org/wiki/Sailfish|Sailfish from Wikipedia]],  [[https://en.wikipedia.org/wiki/Indo-Pacific_sailfish|Indo-Pacific sailfish from Wikipedia]]</ref> ||~   ||^   ||
[[toc]]
=See also= 
* [[CFish]]
* [[Various Classifications#Fish|Fish]]

=Forum Posts= 
==2015==
* [[https://groups.google.com/d/msg/fishcooking/HKIYwO6pF-s/-DOONSK5F-IJ|[for fun] rewrite of stockfish into asm and question on source]] by [[Mohammed Li]], [[Computer Chess Forums|FishCooking]], January 09, 2015
> [[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
==2016==
* [[https://groups.google.com/d/msg/fishcooking/z2sd39wrUvw/j5RpSXGmBAAJ|new humanistic compile of SF is 108KB]] by [[Mohammed Li]], [[Computer Chess Forums|FishCooking]], May 28, 2016
* [[https://groups.google.com/d/msg/fishcooking/_haJ_5DYm0w/w38-PxBlBgAJ|Re: Speedup and simplicity idea]] by [[Mohammed Li]], [[Computer Chess Forums|FishCooking]], June 28, 2016
* [[http://www.talkchess.com/forum/viewtopic.php?t=60945|ASM Fish for Linux and Windows]] by [[Norbert Raimund Leisner]], [[CCC]], July 26, 2016
* [[https://groups.google.com/d/msg/fishcooking/dRYrmi0QTpo/3aSdxHdrEQAJ|asmFish 44 cores]] by A. Turkoglu, [[Computer Chess Forums|FishCooking]], August 28, 2016
* [[http://www.talkchess.com/forum/viewtopic.php?t=61639|Scaling of Asmfish with large thread count]] by [[Dann Corbit]], [[CCC]], October 07, 2016 » [[Parallel Search]]
* [[http://www.talkchess.com/forum/viewtopic.php?t=61961|New asmFish released]] by [[Stefan Pohl]], [[CCC]], November 04, 2016
==2017 ...==
* [[http://www.talkchess.com/forum/viewtopic.php?t=62906|Reaching Lyudmil Antonov]] by Art Ford, [[CCC]], January 23, 2017
* [[http://www.talkchess.com/forum/viewtopic.php?t=65671|asmfish_macOS_11082017]] by [[Michael Byrne|Michael B]], [[CCC]], November 08, 2017 
* [[http://www.talkchess.com/forum/viewtopic.php?t=66373|asmFish update - all flavors of OS]] by [[Michael Byrne|Michael B]], [[CCC]], January 20, 2018
> [[http://www.talkchess.com/forum/viewtopic.php?t=66373&start=14|Re: asmFish update - all flavors of OS]] by T. Poppins, [[CCC]], January 23, 2018
* [[http://www.talkchess.com/forum/viewtopic.php?t=66570|New asmfish]] by [[Günther Simon]], [[CCC]], February 12, 2018 

=External Links= 
==Chess Engine==
* [[https://github.com/tthsqe12/asm|GitHub - tthsqe12/asm: stockfish chess engine in x86-64]] (deleted)
* [[https://github.com/lantonov/asmFish|GitHub - lantonov/asmFish: The latest version of asmFish by Mohammed Li (04.11.2016)]] hosted by [[Lyudmil Antonov]]
==Misc==
* [[Videos#Yes|Yes]] - [[https://en.wikipedia.org/wiki/Fragile_(Yes_album)|We Have Heaven]], [[https://en.wikipedia.org/wiki/Long_Distance_Runaround|Long Distance Runaround]], [[https://en.wikipedia.org/wiki/The_Fish_%28Schindleria_Praematurus%29|The Fish (Schindleria Praematurus)]], Album [[https://en.wikipedia.org/wiki/Fragile_(Yes_album)|Fragile]] (1971), [[https://en.wikipedia.org/wiki/YouTube|YouTube]] Video
> [[media type="youtube" key="ZsHNN7dfyRw"]]

=References= 
<references />
=What links here?= 
[[include page="asmFish" component="backlinks" limit="30"]]
**[[Stockfish|Up one Level]]**