【个人开源】——从零开始在高通手机上部署sd(二)

代码:https://github.com/chenjun2hao/qualcomm.ai


推理耗时统计

单位/ms

硬件 qnncpu_clip qnncpu_unet qnncpu_vae htp_clip htp_unet htp_vae
骁龙8 gen1+ 24716.994 133440.397 23.215 411.097 696.327

1. 下载依赖

  • 下载opencv_x64.tar,提取码: rrbp
  • 下载opencv_aarch64.tar, 提取码: xj8w
    修改CMakeLists.txtOPENCV_X64_PATHOPENCV_AARCH64_PATH的路径
  • 安装高通QNN,并声明QNN_SDK_ROOT环境变量
  • 下载android_ndk, 我使用的版本android-ndk-r26c

2. 编译

1.linux

bash 复制代码
mkdir build_x64 && cd build_x64
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j8

2.android

bash 复制代码
mkdir build_android && cd build_android
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake \
	-DANDROID_ABI="arm64-v8a" \
	-DANDROID_NDK=$ANDROID_NDK_ROOT \
	-DANDROID_PLATFORM=android-28 \
	-DPLATFORM_X64=OFF \
	..
make -j8

3. x64 cpu执行浮点模型

  1. 转换浮点模型

    参考qualcomm.sd, readme导出浮点模型

  2. 执行

bash 复制代码
export FLOAT_MODEL_PATH=/data1/chenjun/2_qualcomm_ai/sd2.1			# 修改成自己导出模型的路径
./build_x64/example/sd2.1/sd_15.out \
 ${QNN_SDK_ROOT}/lib/x86_64-linux-clang/libQnnCpu.so \
 ${QNN_SDK_ROOT}/lib/x86_64-linux-clang/libQnnHtp.so \
 ${FLOAT_MODEL_PATH}/qnn_models/text_encoder_float/x86_64-linux-clang/libtext_encoder.so \
 ${FLOAT_MODEL_PATH}/qnn_models/unet_float/x86_64-linux-clang/libunet.so \
 ${FLOAT_MODEL_PATH}/qnn_models/vae_decoder_float/x86_64-linux-clang/libvae_decoder.so \
 10

可视化output/sd21_portrait.jpg(种子未固定,结果具有随机性):

4. 高通HTP执行量化模型

  1. 转换浮点模型

    参考qualcomm.sd, readme导出量化模型

  2. 执行

    参考高通的例子我自己的adb操作,将所有的依赖push到手机再跑模型

bash 复制代码
export LD_LIBRARY_PATH=$PWD
# 跑sd
./sd_15_htp.out ./libQnnCpu.so ./libQnnHtp.so ./model_quant/libtext_encoder.so ./model_float/libunet.so ./model_float/libvae_decoder.so 10

结果保存在output/sd21_portrait_quant.jpg, 再adb pull下来看

其他

  1. qnn输入输出dataformat都是NHWC
  2. qnn 2.14.0.230828 cpu不支持量化的模型推理,需要用htp的后端
  3. qnn 2.26.0.240827 cpu也不支持量化模型的推理,composeGraphs的时候报错
相关推荐
智驱力人工智能7 小时前
基于视觉分析的人脸联动使用手机检测系统 智能安全管理新突破 人脸与手机行为联动检测 多模态融合人脸与手机行为分析模型
算法·安全·目标检测·计算机视觉·智能手机·视觉检测·边缘计算
wanhengidc13 小时前
云手机能够流畅运行大型游戏吗
运维·服务器·游戏·智能手机·云计算
啦啦91171416 小时前
Niagara Launcher 全新Android桌面启动器!给手机换个门面!
android·智能手机
不一样的故事12617 小时前
iPhone 17 Pro Max 的评测和用户反馈
数码相机·智能手机·iphone
夏之繁花17 小时前
追剧喵 v3.2.0 手机影视播放器工具
智能手机
青茶36020 小时前
iPhone苹果手机拍的照片默认是heic如何换成jpg格式
ios·智能手机·手机·iphone
mit6.8241 天前
[手机AI开发sdk] 模型冻结&解冻.pb | `aidlite`加速AI模型
人工智能·智能手机
nono牛2 天前
MTK平台详解`ro.boot.serialno` 的实现流程 adb devices输出序列号
adb·智能手机
JoyCong19982 天前
手机、平板、电脑如何投屏画面到电视?ToDesk远程控制TV版教程分享
智能手机·电脑
Digitally2 天前
如何用5种实用方法将电脑上的音乐传输到安卓手机
android·智能手机·电脑