Older Version
Newer Version
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]]**