Starfive VisonFive2(RISC-V SBC) で遊ぶ – その6 Bitmap命令有りでやねうら王を動かしてみた(2)

RISC-V, VisionFive-2

VisionFive2のCPU coreはB拡張が使えるらしいので、B拡張ありで再コンパイルしてみました。



RISC-Vでコンパイルするための変更点

作業内容は前回記事とほぼ同じです。marchの指定はbitmap命令が使えるように rv64imafdczba0p93_zbb0p93 にしました。TARGET_CPUは前回と同じくOTHERです。

これでbswap64などのintrinsic関数がBitmap命令になるので高速化が期待できます。

— a/source/Makefile
+++ b/source/Makefile
@@ -52,7 +52,7 @@ YO_CLUSTER = OFF
# — Intel/AMD系 (x86/x64 Platform)
#TARGET_CPU = AVX512VNNI
#TARGET_CPU = AVX512
-TARGET_CPU = AVX2
+#TARGET_CPU = AVX2
#TARGET_CPU = SSE42
#TARGET_CPU = SSE41
#TARGET_CPU = SSSE3
@@ -63,7 +63,7 @@ TARGET_CPU = AVX2
#TARGET_CPU = ZEN2
#TARGET_CPU = ZEN3
# — ARMとか
-#TARGET_CPU = OTHER
+TARGET_CPU = OTHER
#TARGET_CPU = GRAVITON2
#TARGET_CPU = WASM

@@ -587,7 +587,7 @@ else ifeq ($(TARGET_CPU),APPLEM1)
else ifeq ($(TARGET_CPU),WASM)

else ifeq ($(TARGET_CPU),OTHER)
– CPPFLAGS += -DNO_SSE
+ CPPFLAGS += -DNO_SSE -march=rv64imafdczba0p93_zbb0p93

endif


ベンチマーク

前回同様にやねうら王ベンチマークを実行してみました。74K-76nps。前回71Kbpsでしたので、5%ぐらい速くなりました。

$ source/YaneuraOu-by-gcc
bench 128 4 19
info string EvalDirectory = /home/shin/YaneuraOu/eval
info string loading eval file : eval/nn.bin

info string USI_Hash : Start clearing with 4 threads , Hash size = 128[MB]
info string USI_Hash : Finish clearing.
Benchmark
hash : 128
threads : 4
limit : time 19
sfen : default

Position: 1/4
(中略)
===========================
Total time (ms) : 76202
Nodes searched : 5670658
Nodes_searched/second : 74416
Nodes searched (main thread) : 1446524
Nodes searched/second(main thread) : 18982
===========================
The bench command has completed.

B拡張なしだと、これ。

$ ./source/YaneuraOu-by-gcc
bench 128 4 19
info string EvalDirectory = /home2/shin/YaneuraOu/eval
info string loading eval file : eval/nn.bin

info string USI_Hash : Start clearing with 4 threads , Hash size = 128[MB]
info string USI_Hash : Finish clearing.
Benchmark
hash : 128
threads : 4
limit : time 19
sfen : default

Position: 1/4
(中略)
===========================
Total time (ms) : 76178
Nodes searched : 5454137
Nodes_searched/second : 71597
Nodes searched (main thread) : 1374014
Nodes searched/second(main thread) : 18036
===========================
The bench command has completed.



Vector演算できるやつだとどうなるんだろ。V拡張のあるRISC-V欲しくなるな…

続く。

リンク

RISC-V, VisionFive-2

Posted by ず@沖縄