飞腾腾锐D2000 + OpenHarmony 4.1release部署deepseek大模型

  1. 简介
    1.1 飞腾腾锐D2000
    飞腾腾锐D2000是一款面向桌面应用的高性能通用处理,集成8个飞腾自主研发的高能效处理器核FTC663,兼
    容64位ARMv8指令集并支持ARM64和ARM32两种执行模式,支持单精度、双精度浮点运算指令和ASIMD处理
    指令,主频最高2.3GHz,支持硬件虚拟化,支持商业和工业分级。
    1.2 OpenHarmony操作系统
    OpenHarmony 是由开放原子开源基金会孵化及运营的开源项目,由开放原子开源基金会 OpenHarmony 项目
    群工作委员会负责运作。由全球开发者共建的开源分布式操作系统,具备面向全场景、分布式等特点,是一款
    “全(全领域)・ 新 (新一代)・ 开(开源)・ 放(开放)”的操作系统。
    1.3 Deepseek大模型
    DeepSeek(深度求索)是中国人工智能领域的一匹黑马,凭借其低成本、高性能的大语言模型(LLM)技术迅
    速崛起,并在全球范围内引发关注。
  2. 运行效果
    下图是在腾锐D2000 + OpenHarmony4.1release环境下运行deepseek大模型的效果图,1.5b模型推理速度约为
    7.60 tokens/s。
  3. 方案设计
    OpenHarmony中c库使用的是musl,使用llvm开源项目的C ++ 标准库libc ++ 作为C++运行时库。在
    OpenHarmony上运行ollama最快的方法就是补充ollama依赖的GNU C 库(glibc)和GNU C++ 库
    (libstdc++)到腾锐D2000开发板中去,这里采用这个方案。
    开发环境:
  4. ollama64位二进制;
  5. OpenHarmony 4.1release arm64位镜像;
  6. 飞腾 腾锐D2000开发板;
    llm copy.md 2025-02-20
    2 / 3
  7. 具体实现
  8. 首先获取ollama arm64二进制ollama-linux-arm64.tgz,下载链接:
    https://github.com/ollama/ollama/releases
  9. 获取glibc 2.27以上版本的二进制,这里提取出来命令为glibc.tar.gz,参考链接:
    https://archlinuxarm.org/packages/aarch64/glibc
  10. 获取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
  11. 将下载完成以及打包完成的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
  12. 在当前的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系统服务
  13. 新建另外一个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 #运行后就可以提问了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/977972.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【原创工具】同文件夹PDF文件合并 By怜渠客

【原创工具】同文件夹PDF文件合并 By怜渠客 原贴:可批量合并多个文件夹内的pdf工具 - 吾爱破解 - 52pojie.cn 他这个存在一些问题,并非是软件内自主实现的PDF合并,而是调用的pdftk这一工具,但楼主并没有提供pdftk,而…

Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因

Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因 一、背景二、查看topic日志信息三、结论四、解决方法一、背景 源头数据库在很短的时间内刷了大量的数据,部分数据在hdfs丢失了 理论上debezium数据采集不会丢失,就需要排查数据链路某个节点是否有数据丢失。 数据…

llama.cpp 一键运行本地大模型 - Windows

文章目录 llama.cpp 一键运行本地大模型 - Windows嘿,咱来唠唠 llama.cpp 这玩意儿!gguf 格式是啥?咱得好好说道说道基座模型咋选?所需物料,咱得准备齐全咯核心命令,得记牢啦运行方式咋选?测试应…

BGP状态和机制

BGP邻居优化 为了增加稳定性,通常建议实验回环口来建立邻居。更新源:建立邻居和邻居所学习到的路由的下一跳。多跳:EBGP邻居建立默认选哟直连,因为TTL=1,如果非直连,必须修改TTL。命令备注peer 2.2.2.2 connect-interface lo1配置更新源peer 2.2.2.2 ebgp-max-hop 2配置T…

Holoens2开发报错记录02_通过主机获取彩色和深度数据流常见错误

01.E1696 E1696 无法打开源文件 “stdio.h” 解决方法: 更新一下SDK 1)打开Visual Studio Installer,点击修改 2)安装详细信息中自己系统对应的SDK,点击修改即可 02.WinError 10060 方法来源 解决方法&#xff1a…

labview关于计时器的使用

通过使用计时器函数,可以对采集和保存实现很好的控制,因为之前通过等待函数有出现程序卡死的情况,这里用到定时器函数来实现时间控制。 根据用户输入的采集频率,和采集的单位来确定是否上次采集的时间间隔减去这次计时器的时间是…

go语言环境下载与配置(Windows)

下载 Go下载 - Go语言中文网 - Golang中文社区 建议在D盘中创建文件夹安装到 D 盘 ,方便进行管理,然后进行傻瓜式安装。 安装 验证安装 go version 安装成功 配置环境变量 winE --> 右击此电脑 --> 选择属性 --> 高级系统设置 --> 点击…

低延迟,高互动:EasyRTC的全场景实时通信解决方案

在数字化时代,实时通信技术已成为连接人与人、人与设备的重要桥梁。无论是在线教育、远程医疗、智能家居,还是企业协作,高效的实时互动体验都是提升效率和满意度的关键。而 EasyRTC,作为领先的实时通信解决方案,凭借其…

车载诊断架构 --- LIN节点路由转发注意事项

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

浏览器深度解析:打造极速、安全、个性化的上网新体验

在数字化时代,浏览器作为我们获取信息、娱乐休闲的重要工具,其性能与功能直接影响着我们的上网体验。今天,我将为大家介绍一款备受好评的浏览器——Yandex浏览器,并深入解析其独特功能与优势,帮助大家更好地了解并选择这款上网神器。 一、知名公司背书,开源项目融合 Yan…

vite react 项目打包报错处理

Could not find a declaration file for module lodash 安装 Lodash 类型声明文件 # 使用 npm npm install --save-dev types/lodash# 使用 yarn yarn add -D types/lodash 打包成功

PyTorch-基础(CUDA、Dataset、transforms、卷积神经网络、VGG16)

PyTorch-基础 环境准备 CUDA Toolkit安装(核显跳过此步骤) CUDA Toolkit是NVIDIA的开发工具,里面提供了各种工具、如编译器、调试器和库 首先通过NVIDIA控制面板查看本机显卡驱动对应的CUDA版本,如何去下载对应版本的Toolkit工…

[实现Rpc] 测试 | rpc部分功能联调 | debug | 理解bind

目录 服务端 客户端 Debug 运行 总结 服务端 调用 on Request 对请求做出回应 on 对...做处理 #include "../../common/net.hpp" #include "../../common/message.hpp" #include "../../common/dispatcher.hpp" #include "../../se…

LeetCode每日精进:622.设计循环队列

题目链接:622.设计循环队列 题目描述: 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个…

网络安全学习-常见安全漏洞检测以及修复方法-1

渗*透测试 渗透测试就是模拟攻击者入侵系统,对系统进行一步步渗透,发现系统的脆弱环节和隐藏风险。形成测试报告提供给系统的所有者,所有者根据报告对系统进行加固,提升系统的安全性,防止真正的攻击者入侵。 渗透测试…

鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar)

鸿蒙开发深入浅出01(基本环境搭建、页面模板与TabBar) 1、效果展示2、下载 DevEco Studio3、创建项目4、新建页面模板5、更改应用信息6、新建以下页面7、Index.ets8、真机运行9、图片资源文件 1、效果展示 2、下载 DevEco Studio 访问官网根据自己的版本…

C/C++ | 每日一练 (4)

💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 C/C | 每日一练 (4)题目参考答案基础容器序列容器std:…

(八)趣学设计模式 之 装饰器模式!

目录 一、 啥是装饰器模式?二、 为什么要用装饰器模式?三、 装饰器模式的实现方式四、 装饰器模式的优缺点五、 装饰器模式的应用场景六、 装饰器模式 vs 代理模式七、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢…

快节奏生活

在当今快节奏的商务环境中,效率成为了决定企业竞争力的关键因素之一。亿可达软件连接平台,以其独特的功能和优势,为职场人士带来了前所未有的便捷与高效,成为了众多用户心中的“宝藏”工具。 1、亿可达:自动化流程的搭…

Jenkins protoc: command not found

个人博客地址:Jenkins protoc: command not found | 一张假钞的真实世界 在使用Jenkins编译Hadoop3.1.2时报错信息如下: [INFO] --- hadoop-maven-plugins:3.1.2:protoc (compile-protoc) hadoop-common --- [WARNING] [protoc, --version] failed: j…