Difference between revisions of "YaneuraOu"

From Chessprogramming wiki
Jump to: navigation, search
 
Line 6: Line 6:
 
=Features=
 
=Features=
 
YaneuraOu applies a Shogi adaptation of [[Stockfish|Stockfish's]] search, and can be combined with third party [[Evaluation|evaluations]], such as [[Elmo]] and [[Apery]] <ref>[https://www.uuunuuun.com/single-post/2017/12/09/how-to-install-yaneuraou-engine-with-third-party-evaluation-fileopening-book How to install Yaneuraou with third party evaluation files/opening books and Gikou2]</ref>.
 
YaneuraOu applies a Shogi adaptation of [[Stockfish|Stockfish's]] search, and can be combined with third party [[Evaluation|evaluations]], such as [[Elmo]] and [[Apery]] <ref>[https://www.uuunuuun.com/single-post/2017/12/09/how-to-install-yaneuraou-engine-with-third-party-evaluation-fileopening-book How to install Yaneuraou with third party evaluation files/opening books and Gikou2]</ref>.
At the [[WCSC29]], it used a [[NNUE]] type of evaluation developed by [[Tanu-King]] team member [[Yu Nasu]] <ref>[https://www.apply.computer-shogi.org/wcsc29/appeal/YaneuraOu/appeal.txt wcsc29/YaneuraOu/appeal.txt]</ref>. One of the characteristics of the NNUE type is that the number of parameters of the evaluation function is smaller than [[Bonanza|Bonanz's]] [[Bonanza#Description|KPPT]] type. Since the number of training phases required for [[Reinforcement Learning|reinforcement learning]] is considered to be approximately proportional to the number of parameters  
+
At the [[WCSC29]], it used a [[NNUE]] type of evaluation developed by [[Tanu-King]] team member [[Yu Nasu]] <ref>[https://www.apply.computer-shogi.org/wcsc29/appeal/YaneuraOu/appeal.txt wcsc29/YaneuraOu/appeal.txt]</ref>. One of the characteristics of the NNUE type is that the number of parameters of the evaluation function is smaller than [[Bonanza|Bonanza's]] [[Bonanza#Description|KPPT]] type. Since the number of training phases required for [[Reinforcement Learning|reinforcement learning]] is considered to be approximately proportional to the number of parameters  
 
of the evaluation function, the NNUE type should require fewer training phases than the KPPT type.
 
of the evaluation function, the NNUE type should require fewer training phases than the KPPT type.
  

Latest revision as of 21:36, 4 October 2020

Home * Engines * YaneuraOu

YaneuraOu, (やねうら王, Yaneura King)
an USI compliant open source Shogi engine as well a in 2016 CSA registered Shogi search library by Motohiro Isozaki aka Yaneurao, written in C++, licensed under the GPL 3.0. YaneuraOu with Otafuku Lab 2019 won the WCSC29 in 2019 [1] [2], YaneuraOu was mentioned in the library column of many programs participating in the WCSC29, notably runner-up Kristallweizen, third placed Tanu-King, and 14 others.

Features

YaneuraOu applies a Shogi adaptation of Stockfish's search, and can be combined with third party evaluations, such as Elmo and Apery [3]. At the WCSC29, it used a NNUE type of evaluation developed by Tanu-King team member Yu Nasu [4]. One of the characteristics of the NNUE type is that the number of parameters of the evaluation function is smaller than Bonanza's KPPT type. Since the number of training phases required for reinforcement learning is considered to be approximately proportional to the number of parameters of the evaluation function, the NNUE type should require fewer training phases than the KPPT type.

Bitboards

9x9 Shogi Bitboards are defined as array of two quad words and similar to Apery, as conditional compiled union type with 128-bit type __m128i, explicitly taking advantage of SSE2 instructions [5]:

// Bitboard 本体クラス

struct alignas(16) Bitboard
{
#if defined (USE_SSE2)
	union
	{
		// 64bit each
		u64 p[2];

		// For handling with SSE
		// bit0 represents SQ_11, bit1 represents SQ_12,…, bit81 represents SQ_99.
		// This bit position corresponds to the Square type.
		// However, bit63 is unused. This is a hack to find the rook's advantage with one pext by leaving here.
		// Invented by the magic bitboard sect, including Apery.
		__m128i m;
	};
#else // no SSE
	u64 p[2];
#endif

Forum Posts

Re: The Stockfish of shogi by Fabian Fichter, CCC, January 07, 2020

External Links

References

Up one Level