当前位置: 首页 > web >正文

【“星瑞” O6 评测】 — llm CPU部署对比高通骁龙CPU

在这里插入图片描述

前言

随着大模型应用场景的不断拓展,arm cpu 凭借其独特优势在大模型推理领域的重要性日益凸显。它在性能、功耗、架构适配等多方面发挥关键作用,推动大模型在不同场景落地

1. CPU对比

星睿 O6 CPU 采用 Armv9 架构,集成了 Arm®v9 CPU 核心、Arm Immortalis™ GPU 及安谋科技 “周易” NPU 等。其中,“周易” NPU 算力可达 30TOPS,在处理 AI 相关任务时,异构的架构能让 CPU、GPU、NPU 协同工作,加速 AI 模型的运行。骁龙 8 Elite 采用 2+6 架构设计,首次运用专为智能手机打造的第二代自研 Oryon CPU 架构。两颗超大核频率为 4.32GHz,六颗大核频率为 3.53GHz,每个 CPU 丛集都配备了较大缓存,还引入全新的数据时序预取器以及全新的性能内核设计,在通用计算性能上表现强劲。

这里我们让二者通过llama.cpp跑同样模型的推理速度对比

2. 星瑞O6跑llama.cpp

参阅:https://aijishu.com/a/1060000000507877

3. 骁龙8 Elite跑llama.cpp

3.1 依赖安装

## 1.安装[termux](https://termux.dev/en/)app,配置ssh,## 2.安装编译环境
apt update && apt upgrade -y
apt install git cmake

3.2 不开启klelidiAI优化

cmake -B build
cmake --build build --config Release -j

3.2 验证模型正确性

还是使用“星瑞” O6 评测 —— CPU llama.cpp不同优化速度对比转换的模型

taskset -c 0,3,4,5,6,7 ./build_kle/bin/llama-cli -m asserts/Qwen2.5-3B-Instruct-Q4_0.gguf -c 4096 -t 6 --conversation

打印信息

> hello
Hello! How can I assist you today? Do you have any questions or topics you'd like to discuss?> 
llama_perf_sampler_print:    sampling time =       2.79 ms /    32 runs   (    0.09 ms per token, 11477.76 tokens per second)
llama_perf_context_print:        load time =     498.94 ms
llama_perf_context_print: prompt eval time =     592.82 ms /     9 tokens (   65.87 ms per token,    15.18 tokens per second)
llama_perf_context_print:        eval time =    1711.00 ms /    22 runs   (   77.77 ms per token,    12.86 tokens per second)
llama_perf_context_print:       total time =    6498.13 ms /    31 tokens
Interrupted by user

3.3 不开启klelidiAI优化的benchmark

taskset -c 0,1,2,3,4,5,6,7 ./build/bin/llama-bench -m asserts/Qwen2.5-3B-Instruct-Q4_0.gguf -p 128 -n 128 -t 8

用[0,2,3,4,5,6,7]7个核心的结果

modelsizeparamsbackendthreadstestt/s
qwen2 3B Q4_01.69 GiB3.09 BCPU7pp12863.59 ± 0.31
qwen2 3B Q4_01.69 GiB3.09 BCPU7tg12810.87 ± 0.37

用8个核心的结果

modelsizeparamsbackendthreadstestt/s
qwen2 3B Q4_01.69 GiB3.09 BCPU8pp12872.39 ± 1.43
qwen2 3B Q4_01.69 GiB3.09 BCPU8tg1289.99 ± 1.02

3.5 开启kleidiai优化的benchmark

kleidiai已经集成到llama.cpp的后端,只需要编译时给定正确的选项就行。

cmake -B build_kle -DGGML_CPU_KLEIDIAI=ON
cmake --build build_kle --config Release -j

benchmark命令: taskset -c 0,2,3,4,5,6,7 ./build_kle/bin/llama-bench -m asserts/Qwen2.5-3B-Instruct-Q4_0.gguf -p 128 -n 128 -t 7

用[0,2,3,4,5,6,7]7个核心的结果

modelsizeparamsbackendthreadstestt/s
qwen2 3B Q4_01.69 GiB3.09 BCPU7pp12861.55 ± 0.10
qwen2 3B Q4_01.69 GiB3.09 BCPU7tg12810.41 ± 0.13

用8个核心的结果

modelsizeparamsbackendthreadstestt/s
qwen2 3B Q4_01.69 GiB3.09 BCPU8pp12869.05 ± 0.88
qwen2 3B Q4_01.69 GiB3.09 BCPU8tg1289.68 ± 0.16

打印中有load_tensors: CPU_KLEIDIAI model buffer size = 1488.38 MiBKLEIDIAI = 1表明编译选项正确打开。

4.总结

从推理速度来看:星瑞O6在同样的核心数量时,推理速度更快。而且星瑞O6共有12个CPU核。

5.疑问

  • 从主频来看高通的主频更高,理论上推理速度应该更快。
  • 不知道用高通的qnn cpu后端能否比llama.cpp推理更快。
http://www.xdnf.cn/news/2706.html

相关文章:

  • T-BOX应用 NXP S32K148控芯片搭配 SD NAND(嵌入式SD卡)存储的完美结合
  • 设计模式(状态模式)
  • 【力扣刷题实战】丢失的数字
  • vue代码规范管理
  • BeeWorks企业内部即时通讯软件支持国产化,已在鸿蒙系统上稳定运行
  • 【Altium】自定义菜单显示名称
  • C++23 std::bind_back:一种调用包装器 (P2387R3)
  • Matlab自学笔记五十二:变量名称:检查变量名称是否存在或是否与关键字冲突
  • Nacos-3.0.0适配PostgreSQL数据库
  • 互容是什么意思?
  • python+selenium实现淘宝商品数据半自动查询
  • pg数据库删除模式
  • CVE-2024-3431 EyouCMS 反序列化漏洞研究分析
  • 道可云人工智能每日资讯|“人工智能科技体验展”在中国科学技术馆举行
  • 【原创】从s3桶将对象导入ES建立索引,以便快速查找文件
  • 基于 MeloTTS.cpp 的轻量级的纯 C++ 文本转语音(TTS)库
  • 相机-IMU联合标定:相机-IMU外参标定
  • 【二分查找】寻找峰值(medium)
  • 学生管理系统审计
  • 从零开始的二三维CAD软件开发: 系列经验分享-写在开头
  • TensorFlow深度学习实战——基于循环神经网络的文本生成模型
  • ExoPlayer 中的 Timeline、Period 和 Window
  • shell--数组、正则表达式RE
  • Flutter 学习之旅 之 flutter 作为 module ,在 Android 端主动唤起 Flutter 开发的界面 简单的整理
  • gitgitgit!
  • 关于CentOS7学习过程中遇到的一些问题
  • JAVA-StringBuilder使用方法
  • 文号验证-同时对两个输入框验证
  • Android开发,实现一个简约又好看的登录页
  • 谷歌浏览器js获取html宽度不准