Skip to content

Commit 5339415

Browse files
committed
build: refine build script for stable-diffusion.cpp + ggml-hexagon
1 parent f19bb51 commit 5339415

File tree

2 files changed

+17
-22
lines changed

2 files changed

+17
-22
lines changed

prebuilts/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ we should strictly follow Qualcomm's IPR policy, even in open-source community.
55

66
### README
77

8-
- QNN_SDK: a customized/tailored Qualcomm's QNN SDK for build project KanTV conveniently. the fully QNN SDK could be found at Qualcomm's offcial website: https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk
8+
- QNN_SDK: a customized/tailored Qualcomm's QNN SDK for build stable-diffusion + ggml-hexagon conveniently. the fully QNN SDK could be found at Qualcomm's offcial website: https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk
99

10-
- Hexagon_SDK: a customized/tailored Qualcomm's Hexagon SDK for build project KanTV conveniently. the fully Hexagon SDK could be found at Qualcomm's offcial website: https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools. one more important thing, the fully Hexagon SDK must be obtained with a Qualcomm Developer Account.
10+
- Hexagon_SDK: a customized/tailored Qualcomm's Hexagon SDK for build stable-diffusion + ggml-hexagon conveniently. the fully Hexagon SDK could be found at Qualcomm's offcial website: https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools. one more important thing, the fully Hexagon SDK must be obtained with a Qualcomm Developer Account.

scripts/build-run-android.sh

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@
33
# for following issue: mixed inference in stable-diffusion
44
# https://github.com/leejet/stable-diffusion.cpp/issues/671
55
#
6-
# this script will download Android NDK and Qualcomm QNN SDK automatically,
7-
# Hexagon SDK must be obtained with a Qualcomm Developer Account and cannot be downloaded automatically in this script.
8-
#
96
set -e
107

118
PWD=`pwd`
12-
export PROJECT_HOME_PATH=`pwd`
13-
export PROJECT_ROOT_PATH=${PROJECT_HOME_PATH}
9+
PROJECT_HOME_PATH=`pwd`
10+
PROJECT_ROOT_PATH=${PROJECT_HOME_PATH}
1411

1512
#running path on Android phone
1613
REMOTE_PATH=/data/local/tmp/
14+
1715
#stable-diffusion model file on Android phone
1816
GGUF_MODEL_NAME=/sdcard/sd-v1-4.ckpt
1917

@@ -23,36 +21,35 @@ ANDROID_PLATFORM=android-34
2321
ANDROID_NDK_VERSION=r28
2422
ANDROID_NDK_NAME=android-ndk-${ANDROID_NDK_VERSION}
2523
ANDROID_NDK_FULLNAME=${ANDROID_NDK_NAME}-linux.zip
26-
ANDROID_NDK=${PWD}/${ANDROID_NDK_NAME}
24+
ANDROID_NDK=${PROJECT_ROOT_PATH}/prebuilts/${ANDROID_NDK_NAME}
2725

2826
#QNN SDK can be found at:
2927
#https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk
3028
QNN_SDK_URL=https://www.qualcomm.com/developer/software/qualcomm-ai-engine-direct-sdk
31-
QNN_SDK_INSTALL_PATH=/opt/qcom/aistack/qairt
3229
QNN_SDK_VERSION=2.32.0.250228
3330
QNN_SDK_VERSION=2.33.0.250327
3431
QNN_SDK_VERSION=2.34.0.250424
35-
QNN_SDK_PATH=${QNN_SDK_INSTALL_PATH}/${QNN_SDK_VERSION}
3632
QNN_SDK_PATH=${PROJECT_ROOT_PATH}/prebuilts/QNN_SDK/2.34.0.250424/
3733

3834
#Hexagon SDK can be found at:
3935
#https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools
4036
HEXAGON_SDK_PATH=/opt/qcom/Hexagon_SDK/6.2.0.1
4137
HEXAGON_SDK_PATH=${PROJECT_ROOT_PATH}/prebuilts/Hexagon_SDK/6.2.0.1
38+
4239
#available htp arch version:
4340
#v68 --- Snapdragon 888
4441
#v69 --- Snapdragon 8 Gen1
4542
#v73 --- Snapdragon 8 Gen2
4643
#v75 --- Snapdragon 8 Gen3
4744
#v79 --- Snapdragon 8 Elite(aka Gen4)
45+
4846
#8Elite
4947
HTP_ARCH_VERSION=v79
5048
HTP_ARCH_VERSION_a=V79
5149
#8Gen3
5250
HTP_ARCH_VERSION=v75
5351
HTP_ARCH_VERSION_a=V75
5452

55-
#running_params=" -mg 2 -ngl 99 -t 8 -fa 1 "
5653
running_params=" -mg 2 -ngl 99 -t 8 "
5754

5855
function dump_vars()
@@ -110,20 +107,17 @@ function check_and_download_qnn_sdk()
110107
fi
111108

112109
if [ ${is_qnn_sdk_exist} -eq 0 ]; then
113-
echo "sudo mkdir -p ${QNN_SDK_INSTALL_PATH}"
114-
sudo mkdir -p ${QNN_SDK_INSTALL_PATH}
115-
if [ ! -f v${QNN_SDK_VERSION}.zip ]; then
116-
wget --no-config --quiet --show-progress -O v${QNN_SDK_VERSION}.zip https://softwarecenter.qualcomm.com/api/download/software/sdks/Qualcomm_AI_Runtime_Community/All/${QNN_SDK_VERSION}/v${QNN_SDK_VERSION}.zip
110+
if [ ! -f ${PROJECT_ROOT_PATH}/prebuild/v${QNN_SDK_VERSION}.zip ]; then
111+
wget --no-config --quiet --show-progress -O ${PROJECT_ROOT_PATH}/prebuilts/v${QNN_SDK_VERSION}.zip https://softwarecenter.qualcomm.com/api/download/software/sdks/Qualcomm_AI_Runtime_Community/All/${QNN_SDK_VERSION}/v${QNN_SDK_VERSION}.zip
117112
fi
118-
unzip v${QNN_SDK_VERSION}.zip
119113
if [ $? -ne 0 ]; then
120114
printf "failed to download Qualcomm QNN SDK to %s \n" "${QNN_SDK_PATH}"
121115
exit 1
122116
fi
123-
sudo mv qairt/${QNN_SDK_VERSION} ${QNN_SDK_INSTALL_PATH}/
117+
cd ${PROJECT_ROOT_PATH}/prebuilts/
118+
unzip v${QNN_SDK_VERSION}.zip
124119
printf "Qualcomm QNN SDK saved to ${QNN_SDK_PATH} \n\n"
125-
sudo rm -rf qairt
126-
sudo mv v${QNN_SDK_VERSION}.zip /tmp/
120+
cd ${PROJECT_ROOT_PATH}
127121
else
128122
printf "Qualcomm QNN SDK already exist:${QNN_SDK_PATH} \n\n"
129123
fi
@@ -143,17 +137,18 @@ function check_and_download_ndk()
143137
fi
144138

145139
if [ ${is_android_ndk_exist} -eq 0 ]; then
146-
147-
if [ ! -f ${ANDROID_NDK_FULLNAME} ]; then
148-
wget --no-config --quiet --show-progress -O ${ANDROID_NDK_FULLNAME} https://dl.google.com/android/repository/${ANDROID_NDK_FULLNAME}
140+
if [ ! -f ${PROJECT_ROOT_PATH}/prebuilts/${ANDROID_NDK_FULLNAME} ]; then
141+
wget --no-config --quiet --show-progress -O ${PROJECT_ROOT_PATH}/prebuilts/${ANDROID_NDK_FULLNAME} https://dl.google.com/android/repository/${ANDROID_NDK_FULLNAME}
149142
fi
150143

144+
cd ${PROJECT_ROOT_PATH}/prebuilts/
151145
unzip ${ANDROID_NDK_FULLNAME}
152146

153147
if [ $? -ne 0 ]; then
154148
printf "failed to download android ndk to %s \n" "${ANDROID_NDK}"
155149
exit 1
156150
fi
151+
cd ${PROJECT_ROOT_PATH}
157152

158153
printf "android ndk saved to ${ANDROID_NDK} \n\n"
159154
else

0 commit comments

Comments
 (0)