- 简介
1.1 飞腾腾锐D2000
飞腾腾锐D2000是一款面向桌面应用的高性能通用处理,集成8个飞腾自主研发的高能效处理器核FTC663,兼
容64位ARMv8指令集并支持ARM64和ARM32两种执行模式,支持单精度、双精度浮点运算指令和ASIMD处理
指令,主频最高2.3GHz,支持硬件虚拟化,支持商业和工业分级。
1.2 OpenHarmony操作系统
OpenHarmony 是由开放原子开源基金会孵化及运营的开源项目,由开放原子开源基金会 OpenHarmony 项目
群工作委员会负责运作。由全球开发者共建的开源分布式操作系统,具备面向全场景、分布式等特点,是一款
“全(全领域)・ 新 (新一代)・ 开(开源)・ 放(开放)”的操作系统。
1.3 Deepseek大模型
DeepSeek(深度求索)是中国人工智能领域的一匹黑马,凭借其低成本、高性能的大语言模型(LLM)技术迅
速崛起,并在全球范围内引发关注。 - 运行效果
下图是在腾锐D2000 + OpenHarmony4.1release环境下运行deepseek大模型的效果图,1.5b模型推理速度约为
7.60 tokens/s。 - 方案设计
OpenHarmony中c库使用的是musl,使用llvm开源项目的C ++ 标准库libc ++ 作为C++运行时库。在
OpenHarmony上运行ollama最快的方法就是补充ollama依赖的GNU C 库(glibc)和GNU C++ 库
(libstdc++)到腾锐D2000开发板中去,这里采用这个方案。
开发环境: - ollama64位二进制;
- OpenHarmony 4.1release arm64位镜像;
- 飞腾 腾锐D2000开发板;
llm copy.md 2025-02-20
2 / 3 - 具体实现
- 首先获取ollama arm64二进制ollama-linux-arm64.tgz,下载链接:
https://github.com/ollama/ollama/releases - 获取glibc 2.27以上版本的二进制,这里提取出来命令为glibc.tar.gz,参考链接:
https://archlinuxarm.org/packages/aarch64/glibc - 获取OpenHarmony源码下面gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linuxgnu/
aarch64-linux-gnu/libc/lib下的所有so,打包成压缩包。
cd gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linuxgnu/
aarch64-linux-gnu/libc
tar -czvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz lib - 将下载完成以及打包完成的ollama-linux-arm64.tgz、glibc.tar.gz和gcc-linaro-7.5.0-2019.12-
x86_64_aarch64-linux-gnu.tar.gz全部推送到腾锐D2000开发板中的data目录并且解压,解压完成后需要
将其拷贝到系统根目录下的lib目录下。
推送:
hdc file send gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz /data
llm copy.md 2025-02-20
3 / 3
hdc file send glibc.tar.gz /data
hdc file send ollama-linux-arm64.tgz /data
新建命令行页:
hdc shell
解压压缩包:
cd data
tar -zxvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz /data/
tar -xvf glibc.tar.gz /data/
tar -zxvf ollama-linux-arm64.tgz /data/
拷贝至系统根目录下的/lib文件夹:
mount -o remount,rw /
cd
cp /data/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/* /lib - 在当前的shell页开启ollama服务
设置Ollama模型的下载位置
export OLLAMA_MODELS=/data
export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
mount -o remount,rw /
cd data/bin
./ollama serve #启动ollma系统服务 - 新建另外一个hdc shell运行模型
hdc shell
mount -o remount,rw /
export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
cd data/bin
拉取deepseek-r1:1.5b模型
./ollama pull deepseek-r1:1.5b #耗时3+小时
启动deepseek-r1:1.5b模型
./ollama run deepseek-r1:1.5b #运行后就可以提问了