|
@@ -22,6 +22,9 @@
|
|
|
# # with MUSA support
|
|
# # with MUSA support
|
|
|
# GG_BUILD_MUSA=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
|
|
# GG_BUILD_MUSA=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
|
|
|
#
|
|
#
|
|
|
|
|
+# # with KLEIDIAI support
|
|
|
|
|
+# GG_BUILD_KLEIDIAI=1 bash ./ci/run.sh ./tmp/results ./tmp/mnt
|
|
|
|
|
+#
|
|
|
|
|
|
|
|
if [ -z "$2" ]; then
|
|
if [ -z "$2" ]; then
|
|
|
echo "usage: $0 <output-dir> <mnt-dir>"
|
|
echo "usage: $0 <output-dir> <mnt-dir>"
|
|
@@ -115,6 +118,34 @@ if [ ! -z ${GG_BUILD_NO_SVE} ]; then
|
|
|
CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8.5-a+fp16+i8mm"
|
|
CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8.5-a+fp16+i8mm"
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
|
|
+if [ -n "${GG_BUILD_KLEIDIAI}" ]; then
|
|
|
|
|
+ echo ">>===== Enabling KleidiAI support"
|
|
|
|
|
+
|
|
|
|
|
+ CANDIDATES=("armv9-a+dotprod+i8mm" "armv8.6-a+dotprod+i8mm" "armv8.2-a+dotprod")
|
|
|
|
|
+ CPU=""
|
|
|
|
|
+
|
|
|
|
|
+ for cpu in "${CANDIDATES[@]}"; do
|
|
|
|
|
+ if echo 'int main(){}' | ${CXX:-c++} -march="$cpu" -x c++ - -c -o /dev/null >/dev/null 2>&1; then
|
|
|
|
|
+ CPU="$cpu"
|
|
|
|
|
+ break
|
|
|
|
|
+ fi
|
|
|
|
|
+ done
|
|
|
|
|
+
|
|
|
|
|
+ if [ -z "$CPU" ]; then
|
|
|
|
|
+ echo "ERROR: None of the required ARM baselines (armv9/armv8.6/armv8.2 + dotprod) are supported by this compiler."
|
|
|
|
|
+ exit 1
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ echo ">>===== Using ARM baseline: ${CPU}"
|
|
|
|
|
+
|
|
|
|
|
+ CMAKE_EXTRA="${CMAKE_EXTRA:+$CMAKE_EXTRA } \
|
|
|
|
|
+ -DGGML_NATIVE=OFF \
|
|
|
|
|
+ -DGGML_CPU_KLEIDIAI=ON \
|
|
|
|
|
+ -DGGML_CPU_AARCH64=ON \
|
|
|
|
|
+ -DGGML_CPU_ARM_ARCH=${CPU} \
|
|
|
|
|
+ -DBUILD_SHARED_LIBS=OFF"
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
## helpers
|
|
## helpers
|
|
|
|
|
|
|
|
# download a file if it does not exist or if it is outdated
|
|
# download a file if it does not exist or if it is outdated
|