1
1
#! /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
2
+ # this script can be used with cygwin on x86-64 Windows
3
+ # or llvm-mingw on x86-64 Linux
4
+ #
5
+ # case-1: build llama.cpp for x86-64 Windows with cygwin on x86-64 Windows
6
+ # case-2: build llama.cpp + ggml-qnn for x86-64 Windows with cygwin on x86-64 Windows
7
+ # case-3: build llama.cpp + ggml-qnn for Snapdragon desktop SoC equipped WoA(Windows on ARM) with cygwin on Windows
8
+ # case-4: build llama.cpp + ggml-qnn for Snapdragon desktop SoC equipped WoA(Windows on ARM) with mingw on x86-64 Linux
4
9
5
10
# items marked TODO has not verified yet
6
11
7
12
set -e
8
13
9
14
10
15
PWD=` pwd`
16
+ # for cygwin on x86-64 Windows
11
17
PREFIX_PATH=/cygdrive/c
18
+ # for mingw on x86-64 Linux
19
+ # PREFIX_PATH=/opt/qcom/aistack/
20
+
12
21
GGUF_MODEL_NAME=${PREFIX_PATH} /qwen1_5-1_8b-chat-q4_0.gguf
13
22
PROJECT_HOME_PATH=` pwd`
14
23
@@ -17,6 +26,7 @@ PROJECT_HOME_PATH=`pwd`
17
26
# https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools
18
27
QNN_SDK_URL=https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk
19
28
QNN_SDK_PATH=${PREFIX_PATH} /qairt/2.31.0.250130/
29
+ QNN_SDK_PATH=${PREFIX_PATH} /qairt/2.32.0.250228/
20
30
21
31
# default is QNN NPU
22
32
qnnbackend=2
@@ -41,6 +51,7 @@ function check_qnn_sdk()
41
51
fi
42
52
}
43
53
54
+ # ok with cygwin on x86-64 Windows
44
55
function build_windows_x86
45
56
{
46
57
echo " build_windows_x86-without-qnn"
@@ -52,6 +63,7 @@ function build_windows_x86
52
63
cd -
53
64
}
54
65
66
+ # ok with cygwin on x86-64 Windows
55
67
function build_windows_x86_qnn
56
68
{
57
69
echo " build_windows_x86-with-qnn"
@@ -66,7 +78,8 @@ function build_windows_x86_qnn
66
78
# TODO
67
79
function build_windows_arm64_qnn
68
80
{
69
- echo " build_windows_arm64 not supported now"
81
+ echo " build llama.cpp for WoA through cgwin on Windows or mingw on Linux not supported now, pls try mingw on Windows and it works"
82
+ return 0
70
83
echo " cmake source dir:${PROJECT_HOME_PATH} "
71
84
# 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}
72
85
# 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-cygwin.cmake -DCMAKE_C_FLAGS=-march=armv8.7-a -DGGML_QNN_SDK_PATH=${QNN_SDK_PATH}
0 commit comments