11#! /bin/bash
2+ # build llama.cpp or llama.cpp + ggml-qnn for Windows with cygwin on Windows
3+ # build llama.cpp + ggml-qnn for Snapdragon desktop SoC equipped WoA(Windows on ARM) with cygwin on Windows
4+
5+ # items marked TODO has not verified yet
26
37set -e
48
9+
510PWD=` pwd`
611PREFIX_PATH=/cygdrive/c
712GGUF_MODEL_NAME=${PREFIX_PATH} /qwen1_5-1_8b-chat-q4_0.gguf
13+ PROJECT_HOME_PATH=` pwd`
814
915# QNN SDK could be found at:
1016# https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk
@@ -38,7 +44,7 @@ function check_qnn_sdk()
3844function build_windows_x86
3945{
4046 echo " build_windows_x86-without-qnn"
41- cmake -H. -B./out/windows_x86 -DCMAKE_BUILD_TYPE=Release
47+ cmake -H. -B./out/windows_x86 -DCMAKE_BUILD_TYPE=Release -DGGML_OPENMP=OFF
4248 cd out/windows_x86
4349 make -j16
4450 show_pwd
@@ -49,18 +55,26 @@ function build_windows_x86
4955function build_windows_x86_qnn
5056{
5157 echo " build_windows_x86-with-qnn"
52- cmake -H. -B./out/windows_x86_qnn -DCMAKE_BUILD_TYPE=Release -DGGML_USE_QNN=ON -DGGML_QNN=ON -DGGML_QNN_SDK_PATH=${QNN_SDK_PATH}
58+ cmake -H. -B./out/windows_x86_qnn -DCMAKE_BUILD_TYPE=Release -DGGML_OPENMP=OFF -DGGML_QNN=ON -DGGML_QNN_SDK_PATH=${QNN_SDK_PATH}
5359 cd out/windows_x86_qnn
5460 make -j16
5561 show_pwd
5662
5763 cd -
5864}
5965
66+ # TODO
6067function build_windows_arm64_qnn
6168{
6269 echo " build_windows_arm64 not supported now"
63- # cmake -H. -B./out/windows_arm64_qnn -DCMAKE_BUILD_TYPE=Release -DGGML_USE_QNN=ON -DCMAKE_TOOLCHAIN_FILE=${MSSDK}/cmake/arm64-windows-llvm.cmake -DCMAKE_C_FLAGS=-march=armv8.7-a -DGGML_QNN=ON -DGGML_QNN_SDK_PATH=${QNN_SDK_PATH}
70+ return 0
71+ echo " cmake source dir:${PROJECT_HOME_PATH} "
72+ cmake -H. -B./out/windows_arm64_qnn -DCMAKE_BUILD_TYPE=Release -DGGML_OPENMP=OFF -DGGML_QNN=ON -DCMAKE_TOOLCHAIN_FILE=${PROJECT_HOME_PATH} /cmake/arm64-windows-llvm.cmake -DCMAKE_C_FLAGS=-march=armv8.7-a -DGGML_QNN_SDK_PATH=${QNN_SDK_PATH}
73+ cd out/windows_arm64_qnn
74+ make -j16
75+ show_pwd
76+
77+ cd -
6478}
6579
6680
0 commit comments