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

    文章

    9027

    浏览量

    366450
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4673

    浏览量

    128558
  • Linux系统
    +关注

    关注

    4

    文章

    590

    浏览量

    27309
  • 大模型
    +关注

    关注

    2

    文章

    2273

    浏览量

    2350

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

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

收藏 人收藏

    评论

    相关推荐

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

    这是RISC-V跑大模型系列的第三篇文章,前面我们为大家介绍了如何在RISC-V下运行LLaMA,本篇我们将会介绍如何为
    的头像 发表于 07-17 17:15 766次阅读
    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 72次下载
    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 2032次阅读

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

    目前大部分开源LLM模型都是基于transformers库来做的,它们的结构大部分都和Llama大同小异。
    发表于 08-23 11:44 2756次阅读
    深入理解<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 854次阅读

    Meta Llama 3基础模型现已在亚马逊云科技正式可用

    亚马逊云科技近日宣布,Meta公司最新发布的两款Llama 3基础模型——Llama 3 8B和Llama 3 70B,现已正式上线并集成至Amazon SageMaker JumpS
    的头像 发表于 05-09 10:39 355次阅读

    英伟达发布AI模型 Llama-3.1-Nemotron-51B AI模型

    速度比原70B大模型提升2.2倍,具备更准确和更高效的运算效率;能够大幅降低运行成本。       通过NAS技术微调;大幅降低了内存消耗、计算复杂性;Llama-3.1-Nemotron-51B AI
    的头像 发表于 09-26 17:30 534次阅读

    亚马逊云科技正式上线Meta Llama 3.2模型

    亚马逊云科技宣布,Meta的新一代模型Llama 3.2,包括其首款多模态模型,现已在Amazon Bedrock和Amazon SageMaker中正式可用。
    的头像 发表于 10-11 09:20 425次阅读

    亚马逊云科技上线Meta Llama 3.2模型

    亚马逊云科技近日宣布,Meta公司的新一代模型Llama 3.2已在其平台上正式上线。该模型包括Meta首款多模态模型,现已在Amazon Bedrock和Amazon SageMak
    的头像 发表于 10-11 18:08 397次阅读

    Llama 3 语言模型应用

    在人工智能领域,语言模型的发展一直是研究的热点。随着技术的不断进步,我们见证了从简单的关键词匹配到复杂的上下文理解的转变。 一、Llama 3 语言模型的核心功能 上下文理解 :Llama
    的头像 发表于 10-27 14:15 211次阅读

    Llama 3 模型训练技巧

    Llama 3 模型,假设是指一个先进的人工智能模型,可能是一个虚构的或者是一个特定领域的术语。 1. 数据预处理 数据是任何机器学习模型的基础。在训练之前,确保数据质量至关重要。 数
    的头像 发表于 10-27 14:24 207次阅读

    Meta发布Llama 3.2量化版模型

    近日,Meta在开源Llama 3.2的1B与3B模型后,再次为人工智能领域带来了新进展。10月24日,Meta正式推出了这两个模型的量化版本,旨在进一步优化模型性能,拓宽其应用场景。
    的头像 发表于 10-29 11:05 260次阅读