$ git diff Makefile
diff --git a/source/Makefile b/source/Makefile
index 640c1ad..84ef95d 100644
--- a/source/Makefile
+++ b/source/Makefile
@@ -46,13 +46,13 @@ YANEURAOU_EDITION = YANEURAOU_ENGINE_NNUE
#TARGET_CPU = AVX512VNNI
#TARGET_CPU = AVX512
-TARGET_CPU = AVX2
+#TARGET_CPU = AVX2
#TARGET_CPU = SSE42
#TARGET_CPU = SSE41
#TARGET_CPU = SSSE3
#TARGET_CPU = SSE2
#TARGET_CPU = NO_SSE
-#TARGET_CPU = OTHER
+TARGET_CPU = OTHER
#TARGET_CPU = ZEN1
#TARGET_CPU = ZEN2
$ make
...
./extra/bitop.h:309:49: error: use of undeclared identifier 'LSB64'
FORCE_INLINE int pop_lsb(u64 & b) { int index = LSB64(b); b = BLSR(b); return index; }
^
In file included from main.cpp:4:
In file included from ./search.h:7:
In file included from ./position.h:6:
./bitboard.h:103:90: error: use of undeclared identifier 'LSB64'
FORCE_INLINE Square pop_c() const { u64 q0 = extract64<0>(); return (q0 != 0) ? Square(LSB64(q0)) : Square(LSB64(extract64<1>()) + 63); }
^
./bitboard.h:103:110: error: use of undeclared identifier 'LSB64'
FORCE_INLINE Square pop_c() const { u64 q0 = extract64<0>(); return (q0 != 0) ? Square(LSB64(q0)) : Square(LSB64(extract64<1>()) + 63); }
^
In file included from main.cpp:4:
In file included from ./search.h:5:
In file included from ./misc.h:12:
In file included from ./extra/../types.h:17:
./extra/bitop.h:308:69: error: use of undeclared identifier 'LSB32'
template <typename T> FORCE_INLINE int pop_lsb(T& b) { int index = LSB32(b); b = T(BLSR(b)); return index; }
^
./extra/../types.h:297:63: note: in instantiation of function template specialization 'pop_lsb<Effect8::Directions>' requested here
static Direct pop_directions(Directions& d) { return (Direct)pop_lsb(d); }
^
4 errors generated.
make: *** [../obj/main.o] Error 1
AWSにはGraviton2というARM Neoverse N1系のプロセッサが存在します。
https://www.arm.com/why-arm/partner-ecosystem/aws
このプロセッサを利用したインスタンスタイプ(c6g.xlarge)でビルドしたところ、マクロ未定義でエラーが発生しました。
extra/bitop.h
内で ARM 向けの分岐が足りていないようでしたので、追加しました。clang++でのビルドの成功とbench コマンドの実行までは動作確認しました。
参考