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
    +关注

    关注

    134

    文章

    8653

    浏览量

    361832
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4424

    浏览量

    126722
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26923
  • 大模型
    +关注

    关注

    2

    文章

    1536

    浏览量

    1135

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

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

收藏 人收藏

    评论

    相关推荐

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

    这是RISC-V跑大模型系列的第二篇文章,主要教大家如何将LLaMA移植到RISC-V环境里。
    的头像 发表于 07-17 16:16 999次阅读
    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 530次阅读
    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

    如何在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 1370次阅读

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

    这是RISC-V跑大模型系列的第二篇文章,主要教大家如何将LLaMA移植到RISC-V环境里。
    的头像 发表于 07-10 10:10 774次阅读
    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 966次阅读

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

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

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

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

    谷歌模型框架是什么?有哪些功能和应用?

    谷歌模型框架(Google Model Framework)并不是一个特定的框架,而是指谷歌开发的一系列软件框架,用于支持机器学习和人工智能的应用。以下是一些与谷歌
    的头像 发表于 02-29 18:11 669次阅读

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlow。TensorFlow是一个开源的机器学习框架,由谷歌的机器学习团队开发,用于构建和
    的头像 发表于 03-01 16:25 245次阅读

    Meta推出最强开源模型Llama 3 要挑战GPT

    Meta推出最强开源模型Llama 3 要挑战GPT Facebook母公司Meta Platforms(META.US)推出了开源AI大模型Llama”的最新升级版本“
    的头像 发表于 04-19 17:00 469次阅读

    英特尔AI产品助力其运行Meta新一代大语言模型Meta Llama 3

    英特尔丰富的AI产品——面向数据中心的至强处理器,边缘处理器及AI PC等产品为开发者提供最新的优化,助力其运行Meta新一代大语言模型Meta Llama 3
    的头像 发表于 04-28 11:16 176次阅读