0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

大模型笔记之gem5运行模型框架LLama介绍

处理器与AI芯片 来源:处理器与AI芯片 2024-01-22 09:10 次阅读

一 LLama.cpp

LLama.cpp 支持x86,armgpu的编译。

github下载llama.cpp

https://github.com/ggerganov/llama.cpp.git

2. gem5支持arm架构比较好,所以我们使用编译LLama.cpp。

以下是我对Makefile的修改

e5008006-b8c2-11ee-8b88-92fbcf53809c.png

开始编译:

make UNAME_M=aarch64

编译会使用到aarch64-linux-gnu-gcc-10,编译成功可以生成一个main 文件,这里我把main重命名成main_arm_backup了。

可以使用file main查看一下文件:

e5112082-b8c2-11ee-8b88-92fbcf53809c.png

3. 下载一个大模型的model到llama.cpp/models的目录下,这里我下载了llama-2-7b-chat.Q2_K.gguf。

这个模型2bit量化,跑起来不到3G的内存。

GGML_TYPE_Q2_K - "type-1" 2-bit quantization in super-blocks containing 16 blocks, each block having 16 weight. Block scales and mins are quantized with 4 bits. This ends up effectively using 2.5625 bits per weight (bpw)

e51b5ed0-b8c2-11ee-8b88-92fbcf53809c.png

4.此时我们可以本地运行以下main和模型,我的prompt是How are you

./main -m ./models/llama-2-7b-chat.Q2_K.gguf -p "How are you"-n 16

下图最下面一行就是模型自动生成的

e522f672-b8c2-11ee-8b88-92fbcf53809c.png

二 gem5

gem5下载编译好后,我们可以使用gem5.fast运行模型了。

build/ARM/gem5.fast

--outdir=./m5out/llm_9

./configs/example/se.py -c

$LLAMA_path/llama.cpp/main-arm

'--options=-m $LLAMA_path/llama-2-7b-chat.Q2_K.gguf -p Hi -n 16'

--cpu-type=ArmAtomicSimpleCPU --mem-size=8GB -n 8

此时我的prompt是Hi,预期是n=8,跑8核。

e54e8404-b8c2-11ee-8b88-92fbcf53809c.png

上图是gem5运行大模型时生成的simout,我增加了AtomicCPU 运行指令数量的打印,这是在gem5的改动。

如果你下载的是gem5的源码,那么现在运行起来应该只是最前面大模型的输出。

模型的回答是Hi,I'm a30-year-old male, and 但是我预期的是8核,实际上运行起来:

e56033a2-b8c2-11ee-8b88-92fbcf53809c.png

可以看出来,实际上只跑起来4核,定位后发现,模型默认是4核,需要增加-t 8选项,即threadnumber设置成8,下面的红色标注的command.

build/ARM/gem5.fast

--outdir=./m5out/llm_9

./configs/example/se.py -c

$LLAMA_path/llama.cpp/main-arm

'--options=-m$LLAMA_path/llama-2-7b-chat.Q2_K.gguf -p Hi -n 16 -t 8'

--cpu-type=ArmAtomicSimpleCPU --mem-size=8GB -n8

e5770ef6-b8c2-11ee-8b88-92fbcf53809c.png

如上图所示,8核都跑起来了,处理到Hi这个token的时候,CPU0执行了2.9 Billion指令,相对于4核时的5.4 Billion约减少了一半。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • arm
    arm
    +关注

    关注

    133

    文章

    8543

    浏览量

    360858
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4212

    浏览量

    126092
  • Linux系统
    +关注

    关注

    4

    文章

    550

    浏览量

    26813
  • 大模型
    +关注

    关注

    2

    文章

    1065

    浏览量

    533

原文标题:大模型笔记【3】 gem5 运行模型框架LLama

文章出处:【微信号:处理器与AI芯片,微信公众号:处理器与AI芯片】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RISC-V 跑大模型(二):LLaMA零基础移植教程

    这是RISC-V跑大模型系列的第二篇文章,主要教大家如何将LLaMA移植到RISC-V环境里。
    的头像 发表于 07-17 16:16 856次阅读
    RISC-V 跑大<b class='flag-5'>模型</b>(二):<b class='flag-5'>LLaMA</b>零基础移植教程

    RISC-V 跑大模型(三):LLaMA中文扩展

    这是RISC-V跑大模型系列的第三篇文章,前面我们为大家介绍了如何在RISC-V下运行LLaMA,本篇我们将会介绍如何为
    的头像 发表于 07-17 17:15 453次阅读
    RISC-V 跑大<b class='flag-5'>模型</b>(三):<b class='flag-5'>LLaMA</b>中文扩展

    【飞腾派4G版免费试用】仙女姐姐的嵌入式实验室五~LLaMA.cpp及3B“小模型”OpenBuddy-StableLM-3B

    ,根据LLaMA官方的介绍,要想运行模型需要30GB左右显存的显卡支持,这是边缘终端甚至个人电脑难以做到的,后来,GitHub上的一位开发者ggerganov发布了
    发表于 12-22 10:18

    Django模型

    Django模型(二)
    发表于 05-29 10:01

    RT-Thread 的 IO 设备模型框架是由哪些部分组成的呢

    RT-Thread 的 I/O 设备模型框架是由哪些部分组成的呢?接下来由小编给大家详细介绍一下。1、RT-Thread 的 I/O 设备模型框架
    发表于 03-11 18:17

    如何在gem5里支持armv9 Transactional Memory (TME)扩展

    SLICC_HTML=True CPU_MODELS=AtomicSimpleCPU,TimingSimpleCPU,O3CPU -j 4接下来可以在系统模式下运行这个直方图可执行程序./gem5
    发表于 08-01 14:45

    gem5中支持Arm TME的工作资料推荐

    1、在gem5里支持armv9 Transactional Memory (TME)扩展微处理器的顺序执行性能到了停滞期,产业界将通过增加核心数量来提升更多的性能。结果就是软件编程从纯顺序编程模型
    发表于 08-05 15:14

    SECS/GEM标准模型分析及应用

    SECS/GEM是半导体自动化生产中广泛采用的一个行业标准。首先介绍了SECS/GEM标准的整体框架,并分析了其行业发展状况,然后依次说明了SECSⅠ/Ⅱ、
    发表于 08-01 14:25 70次下载
    SECS/<b class='flag-5'>GEM</b>标准<b class='flag-5'>模型</b>分析及应用

    Gem5 Arm Fullsystem仿真

    如果是基于X86 Ubuntu系统模拟gem5 arch,制作disk image比较简单,可以git clone gem5 resource, 在spec2017文件夹
    的头像 发表于 01-04 14:11 1130次阅读

    基于LLAMA的魔改部署

    去训练),并且和Vision结合的大模型也逐渐多了起来。所以怎么部署大模型是一个 超级重要的工程问题 ,很多公司也在紧锣密鼓的搞着。 目前效果最好讨论最多的开源实现就是LLAMA,所以我这里讨论的也是基于
    的头像 发表于 05-23 15:08 4220次阅读
    基于<b class='flag-5'>LLAMA</b>的魔改部署

    RISC-V跑大模型(二):LLaMA零基础移植教程

    这是RISC-V跑大模型系列的第二篇文章,主要教大家如何将LLaMA移植到RISC-V环境里。
    的头像 发表于 07-10 10:10 615次阅读
    RISC-V跑大<b class='flag-5'>模型</b>(二):<b class='flag-5'>LLaMA</b>零基础移植教程

    Meta推出免费大模型Llama 2,GPT要有危机感了

    作为Meta首批合作伙伴之一,亚马逊云科技宣布客户可以通过Amazon SageMaker JumpStart来使用Meta开发的Llama 2基础模型
    的头像 发表于 07-21 16:10 853次阅读

    深入理解Llama模型的源码案例

    目前大部分开源LLM模型都是基于transformers库来做的,它们的结构大部分都和Llama大同小异。
    发表于 08-23 11:44 1204次阅读
    深入理解<b class='flag-5'>Llama</b><b class='flag-5'>模型</b>的源码案例

    大语言模型简介:基于大语言模型模型全家桶Amazon Bedrock

    本文基于亚马逊云科技推出的大语言模型与生成式AI的全家桶:Bedrock对大语言模型进行介绍。大语言模型指的是具有数十亿参数(B+)的预训练语言模型
    的头像 发表于 12-04 15:51 303次阅读

    Meta发布开源大模型Code Llama 70B

    近日,Meta宣布推出了一款新的开源大模型Code Llama 70B,这是其“Code Llama家族中体量最大、性能最好的模型版本”。这款新模型
    的头像 发表于 01-31 09:24 227次阅读