神经网络推理加速入门——指令流水线

前言

刚毕业的时候在青岛某信任职,做嵌入式软件开发,需要调试电路板。公司有个要求是所有新入职的员工,都要去公司自己的加工厂上两周的班,亲自组装生产电路板,体验产品生产的过程。

于是,刚毕业的我,光荣的成为了一名流水线工人,虽然只有两周的时间。这期间,我和同事一起,完成过一天组装3万片电路板的成就,也完成过一天往电路板上插装不计其数电阻、电容的操作,白班夜班倒,记忆犹新。

当时的我,坐在流水线的椅子上,满脑子就一个想法:“我今天就是个螺丝钉”——真拧螺丝。也正是这一次流水线的工作体验,让我明白了一个道理——

一个产线或团队的工作效率,取决于整条流水线上动作最慢的那个人,而不是最快的那个人。一旦动作慢导致产品在你那积压,最常见的就是带小红帽的组长过来噼里啪啦说一顿。不过好在我当时手脚勤快,没有拖后腿。

在流水线上,人就是个机器,机械的执行着每一个动作。直到后来开始做芯片开发,开始给指令排流水,才恍然大悟,原来,每条指令都是流水线工人。

指令流水

上一篇计算和存储的分离说到,在冯诺依曼架构的计算体系中,计算和存储是分离的。分离的结果就是,我们可以将计算和存储分别看做两个工人,而不是一个,每个工人只负责干自己的事儿。

—— 【计算】这名工人只负责计算,【存储】这名工人只负责存储。

计算好比在厨房做菜,存储好比从厨房冰箱里将菜拿出来。这个比喻很重要,能帮你很通俗的理解流水。

那么问题来了,【一个人从冰箱里拿菜洗菜然后去做菜】和【两个人,一个专门拿菜洗菜,一个专门做菜】,哪种做饭效率高?

做过饭的同学肯定知道,当然两个人配合快了。

比如做西红柿鸡蛋,一个人需要先从冰箱拿出鸡蛋,记需要花费 A 的时间,然后炒鸡蛋需要花费B的时间,然后回去拿出西红柿,需要花费C的时间,然后将西红柿和鸡蛋一起炒,需要花费D的时间。总共花费 A + B + C + D的时间。

而两个人的话,第一个人从冰箱里拿出鸡蛋,记A的时间,第二个人炒鸡蛋,花费B的时间,而此时,在第二个人炒鸡蛋的同时,第一个人可以同时去拿出西红柿,需要花费C的时间,然后第二个人抄完鸡蛋后,接过第一个人的西红柿一起炒,需要花费D的时间。总共花费 A + MAX(B,C) + D 的时间。

两个一比较,肯定两个人做饭时间花的少吧。

img

而两个人做饭时,B,C同时进行,就像流水线上的工人一样,你负责你的事,我负责我的事,我做完就给下一个人,下一个人动作快的话,可以立刻接过去,动作慢的话,就会导致产品积压。

在计算机的体系结构中,计算指令和存储指令,一般都是两条独立的指令,并且在硬件部件上,是两个独立的硬件部件,比如计算是ALU单元,存储是DMA或load/store单元等。

img

独立的硬件部件和独立的指令设计,天然的保证了两条指令之间可以排流水,就像流水线上的工人一样工作。

还是拿卷积算法举例子,我先计算上半张图片,同时你就可以搬运下半张图片的数据,整体的AI计算开销,就会少很多。

从而起到了推理加速的作用。

不仅如此,在指令集设计或硬件设计时,一般都会考虑流水线的设计,从而完成更高效的计算和访存操作。

可进行流水操作的指令,也绝不仅仅只有计算指令和存储指令等,不同的计算单元之间,也是可以排流水的。

比如卷积层后面接一个池化层,那么在计算第二部分卷积的同时,可以计算第一部分池化。

流水线的发明对于制造业来说是一次技术变革。早期的手工制造业是靠大量人工完成的,这种工作方式要求每个工作者要了解整个成品的完整制造过程,要快速的制造出一个成品需要对整个工序、流程非常熟悉,无形中提高了对工人素质的要求。而流水线的出现,不需要工人了解整个流程,为手工制造业实现了半自动化,加快了加工速度。

好啦,本篇就简单介绍了一种推理优化的常见方式,那就是通过对指令排流水的方式,可以完成指令加速,从而完成推理优化。

大模型资源分享

针对所有自学遇到困难的同学,我为大家系统梳理了大模型学习的脉络,并且分享这份LLM大模型资料:其中包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等。😝有需要的小伙伴,可以扫描下方二维码免费领取↓↓↓

在这里插入图片描述

一、全套 AGI 大模型学习路线

AI 大模型时代的精彩学习之旅:从根基铸就到前沿探索,牢牢掌握人工智能核心技能!

在这里插入图片描述

二、640 套 AI 大模型报告合集

此套涵盖 640 份报告的精彩合集,全面涉及 AI 大模型的理论研究、技术实现以及行业应用等诸多方面。无论你是科研工作者、工程师,还是对 AI 大模型满怀热忱的爱好者,这套报告合集都将为你呈上宝贵的信息与深刻的启示。

在这里插入图片描述

三、AI 大模型经典 PDF 书籍

伴随人工智能技术的迅猛发展,AI 大模型已然成为当今科技领域的一大热点。这些大型预训练模型,诸如 GPT-3、BERT、XLNet 等,凭借其强大的语言理解与生成能力,正在重塑我们对人工智能的认知。而以下这些 PDF 书籍无疑是极为出色的学习资源。
在这里插入图片描述
在这里插入图片描述

阶段 1:AI 大模型时代的基础认知

  • 目标:深入洞悉 AI 大模型的基本概念、发展历程以及核心原理。

  • 内容

    • L1.1 人工智能概述与大模型起源探寻。
    • L1.2 大模型与通用人工智能的紧密关联。
    • L1.3 GPT 模型的辉煌发展历程。
    • L1.4 模型工程解析。
    • L1.4.1 知识大模型阐释。
    • L1.4.2 生产大模型剖析。
    • L1.4.3 模型工程方法论阐述。
    • L1.4.4 模型工程实践展示。
    • L1.5 GPT 应用案例分享。

阶段 2:AI 大模型 API 应用开发工程

  • 目标:熟练掌握 AI 大模型 API 的运用与开发,以及相关编程技能。

  • 内容

    • L2.1 API 接口详解。
    • L2.1.1 OpenAI API 接口解读。
    • L2.1.2 Python 接口接入指南。
    • L2.1.3 BOT 工具类框架介绍。
    • L2.1.4 代码示例呈现。
    • L2.2 Prompt 框架阐释。
    • L2.2.1 何为 Prompt。
    • L2.2.2 Prompt 框架应用现状分析。
    • L2.2.3 基于 GPTAS 的 Prompt 框架剖析。
    • L2.2.4 Prompt 框架与 Thought 的关联探讨。
    • L2.2.5 Prompt 框架与提示词的深入解读。
    • L2.3 流水线工程阐述。
    • L2.3.1 流水线工程的概念解析。
    • L2.3.2 流水线工程的优势展现。
    • L2.3.3 流水线工程的应用场景探索。
    • L2.4 总结与展望。

阶段 3:AI 大模型应用架构实践

  • 目标:深刻理解 AI 大模型的应用架构,并能够实现私有化部署。

  • 内容

    • L3.1 Agent 模型框架解读。
    • L3.1.1 Agent 模型框架的设计理念阐述。
    • L3.1.2 Agent 模型框架的核心组件剖析。
    • L3.1.3 Agent 模型框架的实现细节展示。
    • L3.2 MetaGPT 详解。
    • L3.2.1 MetaGPT 的基本概念阐释。
    • L3.2.2 MetaGPT 的工作原理剖析。
    • L3.2.3 MetaGPT 的应用场景探讨。
    • L3.3 ChatGLM 解析。
    • L3.3.1 ChatGLM 的特色呈现。
    • L3.3.2 ChatGLM 的开发环境介绍。
    • L3.3.3 ChatGLM 的使用示例展示。
    • L3.4 LLAMA 阐释。
    • L3.4.1 LLAMA 的特点剖析。
    • L3.4.2 LLAMA 的开发环境说明。
    • L3.4.3 LLAMA 的使用示例呈现。
    • L3.5 其他大模型介绍。

阶段 4:AI 大模型私有化部署

  • 目标:熟练掌握多种 AI 大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述。
    • L4.2 模型私有化部署的关键技术解析。
    • L4.3 模型私有化部署的实施步骤详解。
    • L4.4 模型私有化部署的应用场景探讨。

学习计划:

  • 阶段 1:历时 1 至 2 个月,构建起 AI 大模型的基础知识体系。
  • 阶段 2:花费 2 至 3 个月,专注于提升 API 应用开发能力。
  • 阶段 3:用 3 至 4 个月,深入实践 AI 大模型的应用架构与私有化部署。
  • 阶段 4:历经 4 至 5 个月,专注于高级模型的应用与部署。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值