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

ops/2025/2/27 0:56:26/
  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 #运行后就可以提问了

http://www.ppmy.cn/ops/161549.html

相关文章

面试加分项:JVM 锁优化和逃逸分析详解

1 锁优化 JVM 在加锁的过程中,会采用自旋、自适应、锁消除、锁粗化等优化手段来提升代码执行效率。 1.1 自旋锁和自适应自旋 现在大多的处理器都是多核处理器 ,如果在多核心处理器,有让两个或者以上的线程并行执行,我们可以让一个…

Linux内核,slub分配流程

我们根据上面的流程图,依次看下slub是如何分配的 首先从kmem_cache_cpu中分配,如果没有则从kmem_cache_cpu的partial链表分配,如果还没有则从kmem_cache_node中分配,如果kmem_cache_node中也没有,则需要向伙伴系统申请…

基于Matlab实现汽车远近光灯识别的详细步骤及代码示例

以下是一个基于Matlab实现汽车远近光灯识别的详细步骤及代码示例,主要通过图像处理技术来区分远光灯和近光灯。 整体思路 图像预处理:包括读取图像、灰度化、去噪等操作,以提高后续处理的准确性。边缘检测:找出图像中的边缘信息…

如何在视频中提取关键帧?

在视频处理中,提取关键帧是一项常见的任务。下面将介绍如何基于FFmpeg和Python,结合OpenCV库来实现从视频中提取关键帧的功能。 实现思路 使用FFmpeg获取视频的关键帧时间戳:FFmpeg是一个强大的视频处理工具,可以通过命令行获取…

nvidia-docker2 和 NVIDIA Container Toolkit 的区别及推荐

NVIDIA Docker 和 NVIDIA Container Toolkit 1. NVIDIA Docker 和 NVIDIA Docker2 nvidia-docker 是 NVIDIA 最早推出的工具,用于在 Docker 容器中启用 GPU 支持。它以独立守护进程的形式作为 Volume Plugin 存在,但与 Docker 生态系统的兼容性较差&am…

【Linux】34.封装 UdpSocket(1)

文章目录 1. 实现一个简易的远程命令执行系统1.1 日志系统 (Log.hpp)1.2 UDP客户端 (UdpClient.cc)1.3 UDP服务器 (UdpServer.hpp)1.4 主程序 (main.c) 1. 实现一个简易的远程命令执行系统 1.1 日志系统 (Log.hpp) Log.hpp #pragma once // 防止头文件重复包含// 必要的头文…

DeepSeek掘金——SpringBoot 调用 DeepSeek API 快速实现应用开发

Spring Boot 实现 DeepSeek API 调用 1. 项目依赖 在 pom.xml 中添加以下依赖: <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency>&l…

Maven之jjwt依赖爆红

在使用IDEA工具的时候&#xff0c;我们经常会出现pom.xml文件依赖速度慢或者是依赖不上等问题&#xff0c;导致pom.xml文件出现报错情况。如jjwt爆红 查了一下是阿里的库中没有这个依赖&#xff0c;索性直接使用jar包导入 第一步 下载jar包 打开Maven官网&#xff0c;寻找依…