《第7章-人工智能系统硬件基础.pptx》由会员分享,可在线阅读,更多相关《第7章-人工智能系统硬件基础.pptx(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 第1章 概述人工智能系统硬件基础072 第1章 概述 导读l 身边的云计算l 云计算的时代背景以及发展过程l 嵌入式系统的基本原理及分类方式l 嵌入式系统的开发方法及开放资源l FPGA的原理以及发展趋势l FPGA的开发方法以及开放资源第7章 人工智能系统硬件基础 本章从人工智能系统硬件基础的角度,介绍了主流的平台和技术,首先对云计算、边缘计算的概念、原理进行了介绍,之后对嵌入式系统以及FPGA的基本原理、开发方法和开资源进行了详细的介绍。本章知识点:3 第1章 概述目录/Contents7.17.2人工智能基础设施嵌入式系统概述FPGA概述7.3 FPGA概述4 第1章 概述目录/Co
2、ntents7.1人工智能基础设施一、云计算二、边缘计算5 第1章 概述 一、云计算1.云计算的定义云计算是一种能够通过网络以便利的、按需付费的方式获取计算资源(包括网络、服务器、存储、应用和服务等)并提高其可用性的模式。这种模式具有5个关键功能,还包括3种服务模式和4种部署方式,如图7-1所示:云计算技术发展的主线可以总结为如下几点:1)网格计算(包括分布式计算、机群和集群、并行与超级计算、HPC等)体系架构提供基础设施(计算节点、存储资源等),即IaaS。2)中间件(包括SOA、Web Services、Multi-Tenancy、Hypervisor单机虚拟化等技术和Grid Middl
3、eware、DRM、PFS、多机虚拟化、效用计算等技术)提供可互操作的业务集成平台(PaaS)和在其上建立的应用软件(SaaS)。图7-1 云计算模式第7章 人工智能系统硬件基础 6 第1章 概述 云计算的分类按照部署模式,云计算可以分为如下几种:1)公有云通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过Internet访问使用,可能是免费或成本低廉的。2)私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所。3)混合云,是目标架构中公有云、私有云,或者公众云的结合。按照服务
4、模式划分,则云计算可以分为如下几种:1)IaaS(Infrastructure as a Service),提供CPU、网络、存储等基础硬件的云服务模式。2)PaaS(Platform as a Service)提供类似于操作系统层次的服务与管理。3)SaaS(Soft as a Service),就是熟悉的软件即服务。一般情况下,云计算通常按照服务模式进行划分;而更一般的情况下,提到云计算系统就是指IaaS系统。可以说IaaS是整个云计算系统最核心的部分,也是最难实现的部分。图7-2 三种模式的云计算对比第7章 人工智能系统硬件基础 三种模式的云计算的对比如下图:7 第1章 概述 云计算的佼
5、佼者OpenStackOpenStack是一个面向IaaS层的开源项目,用于实现公有云和私有云的部署及各种资源的管理。OpenStack含九个核心项目:1)计算(Compute)-Nova 2)网络和地址管理-Neutron 3)对象存储(Object)-Swift4)块存储(Block)-Cinder 5)身份(Identity)-keystone 6)镜像(Image)-Glance7)UI界面(Dashboard)-Horizon 8)测量(Metering)-Ceilometer 9)编配(Orchestration)HeatNova是OpenStack云计算架构控制器Swift为Op
6、enStack提供分布式的、最终一致的虚拟对象存储。Neutron提供云计算环境下的虚拟网络功能。这三者的关系如下图所示:图7-3 计算基础架构、存储基础架构和虚拟网络服务关系图第7章 人工智能系统硬件基础 8 第1章 概述 Pass服务的兴起容器容器(Container)是一种便携式、轻量级的操作系统级虚拟化技术。它使用namespace隔离不同的软件运行环境,并通过镜像自包含软件的运行环境,从而使得容器可以很方便的在任何地方运行。容器的优点:第7章 人工智能系统硬件基础 1)敏捷的应用程序创建和部署2)持续开发、集成和部署3)开发与运维的关注分离4)开发、测试与生产环境的一致性5)可观测6
7、)云和操作系统的分发可移植性7)以应用为中心的管理8)松耦合、分布式、弹性伸缩、微服务9)资源隔离10)资源利用9 第1章 概述 云计算与边缘计算的集合kubernetesKubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,也是CNCF最重要的项目之一。主要功能包括:第7章 人工智能系统硬件基础 1)基于容器的应用部署、维护和滚动升级 2)负载均衡和服务发现 3)跨机器和跨地区的集群调度4)自动伸缩 5)无状态服务和有状态服务 6)广泛的Volume支持 7)插件机制保证扩展性10 第1章 概述 云计算与边缘计算的集合kubernetesK
8、ubernetes主要由以下几个核心组件组成:1)etcd保存了整个集群的状态;2)apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;3)controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;4)scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;5)kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;6)Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);7)kube-proxy负责为Service提供clu
9、ster内部的服务发现和负载均衡。Kubernetes的架构如下图7-4所示:图7-4 Kubernetes的架构第7章 人工智能系统硬件基础 11 第1章 概述 二、边缘计算边缘计算是指靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台。边缘计算处理数据中心明显的优势有以下几点:1)边缘计算可以实时或更快的进行数据处理和分析,让数据处理更靠近源,而不是外部数据中心或者云,可以缩短延迟时间。2)在成本预算上可以大大减轻经费预算。企业在本地设备上的数据管理解决方案所花费的成本大大低于云和数据中心网络。3)减少网络流量。随着物联网设备数量的增加,数据生成继续以创纪录的速度增
10、长。结果,网络带宽变得更加有限,压倒了云,导致更大的数据瓶颈。4)提高应用程序效率。通过降低延迟级别,应用程序可以更高效、更快速地运行。5)个性化:通过边缘计算,可以持续学习,根据个人的需求调整模型,带来个性化互动体验。第7章 人工智能系统硬件基础 12 第1章 概述 二、边缘计算边缘计算是指靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台。边缘计算处理数据中心明显的优势有以下几点:1)边缘计算可以实时或更快的进行数据处理和分析,让数据处理更靠近源,而不是外部数据中心或者云,可以缩短延迟时间。2)在成本预算上可以大大减轻经费预算。企业在本地设备上的数据管理解决方案所花
11、费的成本大大低于云和数据中心网络。3)减少网络流量。随着物联网设备数量的增加,数据生成继续以创纪录的速度增长。结果,网络带宽变得更加有限,压倒了云,导致更大的数据瓶颈。4)提高应用程序效率。通过降低延迟级别,应用程序可以更高效、更快速地运行。5)个性化:通过边缘计算,可以持续学习,根据个人的需求调整模型,带来个性化互动体验。第7章 人工智能系统硬件基础 13 第1章 概述 二、边缘计算AI芯片的相关研发逐渐成为学术界和工业界研发的热点。在云端和终端有专门为AI应用设计的芯片和硬件系统,针对目标应用是“训练”还是“推断”,AI芯片的目标领域分成4个象限。在训练/数据中心这个领域,是GPU和云计算
12、的主场;而推断和边缘端,则是边缘计算以及FPGA等芯片的着力点。图7-5 AI芯片的目标领域第7章 人工智能系统硬件基础 14 第1章 概述 一、嵌入式系统原理嵌入式系统:嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。嵌入式系统具有如下特性:1)嵌入式系统强调以满足用户的特定需求为目标,而不是像目前的PC机那样定位在通用信息处理。2)嵌入式系统一般是服务于特定应用的专用系统,它并不强调系统的通用性和可扩展性,相比一般的计算机系,统嵌入式系统往往对可靠性、实时性有较高要求。3)嵌入式系统是以现代计算
13、机技术为核心的。嵌入式系统的最基本支撑技术大致包括集成电路设计技术、系统结构技术、传感与检测技术、嵌入式操作系统(EmbeddedOS/EOS)和实时操作系统(RTOS)技术、资源受限系统的高可靠软件开发技术、系统形式化规范与验证技术、通信技术、低功耗技术、特定应用领域的数据分析、信号处理和控制优化技术等。4)嵌入式系统一般能够根据需求不同,灵活的裁剪软硬件,以满足不同应用场景下差异性极大的指标要求(如功能、性能、可靠性、成本、功耗等)。第7章 人工智能系统硬件基础 15 第1章 概述目录/Contents7.2嵌入式系统概述一、嵌入式系统原理二、嵌入式系统开发方法三、嵌入式系统开放资源16
14、第1章 概述 一、嵌入式系统原理嵌入式系统可按嵌入式处理器的位数、应用、实时性、软件结构等进行分类。图7-6 常见的嵌入式系统示例按嵌入式处理器的位数来分,嵌入式系统可分为4位、8位、16位、32位和64位。目前,32位嵌入式系统正成为主流发展趋势,高度复杂的、高速的嵌入式系统已开始采用64位嵌入式处理器。按应用领域分,嵌入式系统可分为信息家电类、移动终端类、通信类、汽车电子类、工业控制类等,如图7-6所示是常见的嵌入式系统示例。按实时性来分类,嵌入式系统可分为嵌入式实时系统和嵌入式非实时系统。根据实时性的强弱,嵌入式实时系统可进一步分为硬实时、软实时系统。按软件结构来分类前后台系统、单处理器
15、多任务系统、多处理器多任务系统等。第7章 人工智能系统硬件基础 17 第1章 概述 循环轮询系统最简单的软件结构是循环轮询(Polling Loop),程序依次检查系统的每个输入条件,一旦条件成立,就进行相应的处理,如图所示:图7-7 循环轮询系统运行方式 循环轮询结构的优点:对于简单的系统而言,便于编程和理解;没有中断的机制,程序运行良好,不会出现随机问题。循环轮询结构的缺点:有限的应用领域(由于其具有不可确定性);对于有大量I/O服务的应用不容易实现;程序规模大,不便于调试。由此看来,循环轮询系统更适用于慢速或非常快速的简单系统。图7-8 循环轮询系统程序流程第7章 人工智能系统硬件基础
16、18 第1章 概述 前后台系统 前后台(Foreground/Background)系统又称为中断驱动系统,后台是一个一直在运行的系统,前台是由一些中断处理过程组成的。当有一个前台事件(外部事件)发生时引起中断,中断后台运行,进行前台处理,处理完成后又回到后台(通常后台又称为主程序)。系统的性能主要由中断延迟时间(Interrupt Latency Time)、响应时间(Response Time)和恢复时间(Recovery Time)来刻画,如图7-9、7-10、7-11所示为前后台系统的软件运行方式,程序流程,系统性能图。图7-9 前后台系统软件运行方式 图7-10 前后台系统程序流程
17、图7-11 前后台系统的系统性能第7章 人工智能系统硬件基础 19 第1章 概述 前后台系统其优点主要是:可并发处理不同的异步事件,设计简单;中断处理程序有多个,主程序只有一个;不需学习操作系统相关的知识。前后台系统应用领域广泛,主要应用在一些小型的嵌入式系统中。其缺点包括:对于复杂的系统而言,其主程序设计复杂,系统复杂度提高,可靠性降低;实时性只能通过中断来保证,如果采用中断与主程序结合的方式来处理事件,则其实时性难以保证;中断处理程序与主程序间的共享互斥问题需应用自己来解决。第7章 人工智能系统硬件基础 20 第1章 概述 单处理器多任务系统 对于一个较复杂的嵌入式系统来说,当采用中断处理
18、程序加一个后台主程序软件结构难以实时地、准确地、可靠地完成系统的需求时,或存在一些互不相关的过程需要在一个计算机中同时处理时,就需要采用多任务系统。多任务系统实际上是由多个任务、多个中断处理过程、嵌入式操作系统组成的有机整体,如图7-12所示。图7-12 多任务系统程序组成单处理器多任务系统主要特点如下:多个顺序执行的任务并行运行;从宏观上看,所有的任务同时运行,每个任务运行在自己独立的CPU上;实际上,不同的任务共享同一个CPU和其他硬件,因此需要嵌入式操作系统来对这些共享的设备和数据进行管理;每个任务一般被编制成无限循环的程序,等待特定的输入,执行相应的处理;这种程序模型将系统分成相对简单
19、的、相互合作的模块。第7章 人工智能系统硬件基础 21 第1章 概述 单处理器多任务系统单处理器多任务系统的优点:将复杂的系统分解成相对独立的多个任务,达到分而治之的目的,从而降低系统的复杂性;保证系统的实时性;系统的模块化好,可维护性高。第7章 人工智能系统硬件基础 单处理器多任务系统的缺点:需要采用一些新的软件设计方法;需要对每个共享资源进行互斥;导致任务间的竞争;需要使用嵌入式操作系统,增加系统的开销。22 第1章 概述 多处理器多任务系统多处理器系统的由来:当有些工作用单处理器来处理难以完成时,就需要增加其他的处理器。在多处理器系统中,多个任务可以分别在不同的处理器上执行,宏观上看是并
20、发的,微观上看也是并发的。前者称为伪并发性,后者称为真并发性。多处理器系统或称为并行处理器系统,可分为单指令多数据流(Single Instruction MultipleData,SIMD)系统和多指令多数据流(Multiplone InstructiStream Multiple Data Stream,MIMD)系统。MIMD系统又可分为紧耦合系统和松耦合系统两种,嵌入式系统大都是MIMD系统。紧耦合系统是多个处理器通过共享内存空间来交换信息的系统;在松耦合系统中,多个处理器是通过通信线路来连接和交换信息的。第7章 人工智能系统硬件基础 23 第1章 概述 二、嵌入式系统开发方法 嵌入式
21、系统的开发过程中大致可分为如下几个步骤:需求分析、架构和概要设计、详细设计和开发与测试反馈。常见的需求项目包括:v 功能性需求 v 可靠性需求 v 成本需求规定了整个系统的大致技术路线,而概要设计则可以认为是其更加具体的描述。架构设计 详细设计与开发详细设计是对概要设计的进一步细化,详细设计阶段需要明确一切未确定之处。嵌入式系统的开发包括硬件开发、软件开发,也包括两者的集成和联合测试。测试反馈测试是整个系统开发中必不可少的环节。需求分析第7章 人工智能系统硬件基础 24 第1章 概述 二、嵌入式系统开发方法 在实际的嵌入式系统开发过程中,由于嵌入式系统往往软、硬件资源有限,无法直接支持开发,通
22、常需要通用微型机(个人计算机,即PC)的支持,被称为宿主机(Host);待开发的嵌入式系统称为目标机(Target)。嵌入式系统一般采用宿主机-目标机开发模式(如图7-13所示),以便利用宿主机上丰富的软件、硬件资源以及良好的开发环境和调试工具,来开发目标机上的软件。图7-13 宿主机-目标机开发模式第7章 人工智能系统硬件基础 25 第1章 概述 三、嵌入式系统开放资源为方便嵌入式系统开发,许多公司提供多种嵌入式开发的软件、硬件资源,这些资源包括:集成开发环境、开发板、在线仿真器、设备驱动程序以及嵌入式操作系统等。集成开发环境(Integrated Development Environme
23、nt,IDE)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。目前,在嵌入式系统开发中比较常见的集成开发环境包括:ADS集成开发环境、Keil Real View MDK集成开发环境、IAREWARM集成开发环境。第7章 人工智能系统硬件基础 图7-14 ADS1.2集成开发环境环境 图7-15 Keil Vision集成开发环境26 第1章 概述 三、嵌入式系统开放资源开发板(Demo Board)是用于嵌入式系统开发的电路板,由微控制器、外扩存储器、常用I/O接口和简单的外部设备等组成,如图所示。常见的开发板有51、ARM、FPGA、DSP开发板。图
24、7-16 嵌入式系统开发板的硬件组成 图7-17 Arduino Uno开发板第7章 人工智能系统硬件基础 27 第1章 概述 三、嵌入式系统开放资源在线仿真器(In-Circuit Emulator,ICE)是调试嵌入式系统软件的硬件设备。在线仿真器也可以指在处理器上直接进行调试的硬件设备。大多数在线仿真器都由一个位于主机和被调试系统之间的适配器组成,如图7-18所示。基本驱动程序,包括寄存器定义、外设访问函数的头文件和源程序代码。开发人员可以将这些文件添加到自己的软件项目中,通过函数调用,方便地访问外设功能和存取外设寄存器;也可以参考驱动程序和示例代码,编写自己的应用程序;还可以修改驱动程
25、序代码,优化自己的应用程序。图7-18 JTAG仿真器第7章 人工智能系统硬件基础 28 第1章 概述 三、嵌入式系统开放资源应用操作系统可以运行较多任务,进行任务调度、内存分配,其内部具有大量协议支持,如网络协议、文件系统和很好的图形用户接口GUI等功能,可以大大简化系统的开发难度,并提高系统的可靠性。操作系统的移植是指一个操作系统经过适当的修改后,可以在不同类型的微处理器上运行。目前,在嵌入式系统中比较常用的操作系统有C/OS、Linux、VxWorks和Android等。C/OS(Micro Controller Operating System)是美国人Jean J.Labrosse开
26、发的实时操作系统内核。嵌入式Linux包括强实时的嵌入式Linux(RT-Linux和KURT-Linux)和一般的嵌入式Linux(如CLinux和PorketLinux等)。VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式(无MMU)实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境。Android是一种基于Linux的开放源代码的操作系统,主要应用于智能手机、平板电脑等移动通信设备。第7章 人工智能系统硬件基础 嵌入式操作系统29 第1章 概述目录/Contents7.3FPGA概述一、FPGA原理二、FPGA开发方法三
27、、FPGA开放资源30 第1章 概述 一、FPGA原理1.FPGA简介FPGA的英文全称是Field Programmable Gate Array,即现场可编程门阵列。采用FPGA,将大大降低系统的复杂性以及功耗等开销,FPGA还可用于实现硬件定制,使您能够高效地加速算法,从而快速提高性能增益。2.FPGA发展趋势现在可编程逻辑已经无处不在,从家中的高清电视到附近的手机信号塔、银行的自动柜员机,可编程逻辑设备已经得到广泛的应用。3.FPGA加速深度学习推理FPGA充分利用整个芯片的并行性,以降低计算延迟;同时FPGA拥有灵活的可定制IO,且实现了确定性低I/O延迟。因此FPGA可提供一种灵活
28、、确定性低延迟、高吞吐量、高能效解决方案,加速不断变化的网络和精度,支持深度学习推理。图7-19 FPGA应用领域第7章 人工智能系统硬件基础 31 第1章 概述 二、FPGA开发方法1.OpenCL介绍OpenCL全称Open Computing Language,即开放计算语言,是一套异构计算的标准化框架,覆盖了CPU、GPU、FPGA以及其他多种处理器芯片,支持Windows,Linux以及MacOS等主流平台。OpenCL框架具有高性能、适用性强、开放开源、支持范围广等特点。开发软件可编程器件的流程一般包括进行构思、在C等高级语言中对算法编程,然后使用自动编译器来建立指令流。面向Ope
29、nCL的Altera SDK提供了设计环境,很容易在FPGA上实现OpenCL应用,如图7-20所示。图7-20 面向OpenCL的Altera SDK简介第7章 人工智能系统硬件基础 32 第1章 概述 二、FPGA开发方法2.HLS介绍HLS(High-Level Synthesis),就是将C/C+的功能用RTL来实现,将FPGA的组件在一个软件环境中来开发,使用HLS,用高级语言开发可以提高效率。如图是HLS的使用模式。借助HLS编译器,将高级语言开发的模块生成一个IP,使用FPGA的工具可以合并到一个传统的FPGA设计里。HLS配合EDA软件,采用标准的C/C+开发环境,支持Mode
30、lsim,C+编译器,但是同样的功能比RTL代码多占用百分之10-15%的资源。图7-21 HLS的使用示意图第7章 人工智能系统硬件基础 下图7-21是HLS的使用模式:33 第1章 概述 二、FPGA开发方法3.OpenVINOFPGA深度学习加速套件是开放式视觉推理和神经网络优化OpenVINO工具包的一部分,它是用于在各种平台上开发和部署计算机视觉解决方案的综合工具包。OpenVINO工具套件它是一种可以加快高性能计算机视觉和深度学习应用开发速度的工具套件,支持在各种Intel平台的硬件加速器,包括CPU、GPU、FPGA以及VPU,来进行深度学习,允许在异构平台执行。DLDT(Dee
31、p Learning Deployment Toolkit,深度学习部署工具包)用于通过高级C+函数调用部署经过训练的深度学习网络。DLDT有两个组件:模型优化器 推理引擎图7-22 开放视觉推理和神经网络优化(OpenVINO)工具第7章 人工智能系统硬件基础 34 第1章 概述 二、FPGA开发方法4.THE ONE API提升整机性能一般有两种方式:提升硬件规格和软件优化。One API支持API编程和直接编程,通过提供统一的语言和库,可以在包括CPU、GPU、FPGA和AI加速器等多种硬件平台当中提供完整的代码性能。One API包含一种全新的直接编程语言数据并行C+(DPC+),DP
32、C+可以通过开发者普遍了解的编程模型提供并行编程能力和性能。DPC+基于C+,包含了来自Kronos Group的SYCL,并同时包含了开放社区当中的扩展项目。针对API编程,One API提供了一个强大的库,可以通过它来调用多个硬件实现不同的工作方式,库函数可以针对每个目标体系结构自定义编码。第7章 人工智能系统硬件基础 35 第1章 概述 三、FPGA开放资源Xilinx官方开发社区针对人工智能、智能驾驶、通信、数据中心、IOT物联网等多个应用领域提供了相应的设计指导文档和设计资源,同时在xilinx官方论坛上也有专业的技术答疑与支持。https:/AI工具供开发人员进行AI相关的开发,提
33、供了Vitis AI工具下载,LIbrary库说明,Vitis AI user guide设计说明。英特尔 AI Developer Program面向初学者到高级开发人员讲授有关人工智能的知识。访问 https:/英特尔 AI Developer Program第7章 人工智能系统硬件基础 36 第1章 概述 本章总结 算力是承载人工智能应用的平台和基础,算力的发展推动了整个人工智能系统的发展和快速演进,是人工智能的最核心要素。云计算是一种能够通过网络以便利的、按需付费的方式获取计算资源(包括网络、服务器、存储、应用和服务等)并提高其可用性的模式,这些资源来自一个共享的、可配置的资源池,并能够以最省力和无人干预的方式获取和释放。边缘计算是指靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台。嵌入式系统的硬件和软件必须根据具体的应用任务,以功耗、成本、体积、可靠性、处理能力等为指标来进行选择。嵌入式系统的核心是系统软件和应用软件,由于存储空间有限,因而要求软件代码紧凑、可靠,且对实时性有严格要求。FPGA作为一类重要的可编程逻辑器件,在云端和边缘端都有广泛的应用,在7.3节中重点介绍了FPGA的基本组成、结构以及原理,FPGA的开发方法,以及目前主流FPGA厂商所提供的开放资源。第7章 人工智能系统硬件基础 37 第1章 概述谢谢观赏
限制150内