多核、众核技术课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线延迟变长
在众核设计中进行集中控制变得困难,如何采用更分布式的方式完成结 构设计?如何在分布的结构中实现共享数据的分发传播?如何在分布的 结构中实现高效的核间互斥并发操作?
------Tilera-Gx72-Raw结构
作者:杨颖超
4.1Tilera-Gx72
这是Tilera公司今年2月19发布的一款新的72核心的微 处理器。 Tilera-Gx72还包含了多项Tilera的特有技术:iMesh二 维互联、DDC分布式缓存一致性以及TileDirect I/O技术等, 提供了4个DDR3内存控制器,以及带有100Gb以太网的片 上 I/O 、 8 个可配置为 32 个 1GbE 端口的 10GbE 端口、以及 4个 PCI-E 端口。芯片主频为 1.2GHz ,带有 23MB 缓存, 16个内核可用于NIC功能。
3.1.3核心内部的延迟
多核之间的通信实现方法:基于总线的共享 cache实现和片上互连技术实现。 在采用共享总线的多核结构中,多处理器核对 总线控制权存在竞争,以及争用延时进行分析。 美国麻省理工学院的Raw 处理器计划,考虑限 制每个核心的面积,使每个核心内部的线延迟较短 从而提升其频率;再通过将应用映射到多个核心上 以提高性能。
Tilera-Gx72处理器结构图
内存控制器 系统集成
mpipe多核可编程智能引 擎系统提供线速数据包 分类,负载平衡和数据 包缓冲管理处理等操作
串行总线
网络端口
IO流接口
系统wk.baidu.com成
芯片带有2个USB 2.0、1个主机接口。4个I2C接口。1个 SPI主接口,2个高速UART接口及48个中断引脚和JTAG 端口。 串行总线
上世纪末,HP和IBM已经提出双核处理器 的可行性设计,成功推出了有双内核的HP PA8800和IBM Power4处理器
2002年,英特尔超线程技术(HT,HyperThreading) ,预告多核时代的来临
2003年,Sun在发表双核心UltraSPARCⅣ处理器 2004年,AMD和Intel在2004年公布了各自的双核计 划,AMD率先在服务器和工作站领域引入双核架构
2005年4月18日,英特尔首发奔腾D处理器(双) 21日AMD 推出了双核速龙™ 64 X2处理器(双)
X64 X86
2007年, SUN推出的八核Niagara 2,11月微软公司发 表宣言,宣布转入对众核系统软件的研究
2009年10月-酷睿i7 2013年10月,Intel集成众核技术峰会, 融核、 微异构技术
网络接口
8个10Gbps的XAUI端口,提供双XAUI支持,最多提供 32个10/100/1000SGMII端口。提供出口QoS排队及流量 整形支持功能。精密计时控制器支持,包时间戳精密粒 度为1ns。
3.2. 2多核面临的软件困难
如何计算软件授权?
按CPU个数收取软件授权费用 按芯片个数收取软件授权费用
应用软件是否支持?
应用程序是基于多处理器编写的
软件的复杂性
指令级并行技术中的乱序执行技术、分支预测技术、 共享存储技术、直接内存访问技术等等都给底层软 件的编程增加了不同程度的复杂性。
并行程序设计困难表现在:
优点:OpenMP简单易用,它可以帮助程序快速创 建线程,解决多核编程中面临的问题。 缺点:限制了程序员对并行的控制,限定了所提供信息 的数量,例如OpenMP没有动态线程调度机制、伸缩性 的内存分配器、内嵌式并行程序、并发的数据结构等。
2.3.3基于高层次模板库的方法
这类方法具有面向对象的特征,基于模板技术构建了 丰富的线程控制和并行计算的模板库。其中Java Threading和TBB是运用比较多的两种方法。
2.由来 背景
多核的由来:为什么有多核处理器? 多核技术的开发源于工程师们认识到仅仅提高单 核芯片(one chip)的速度会产生过多热量,且无法
带来相应的性能改善。多核处理器出现最本质的 原因是一个经验定律和三个限制。 摩尔定律:每个芯片上集成的晶体管数(集成度) 会每十八个月翻一番。 三个限制:在CPU的集成度以摩尔定律速度增长 的同时,CPU的性能增长受到了三个物理规律的 限制:功耗、互连线延时和设计复杂度。
系统软件如何才能有效管理数量众多的处理器资源? 系统虚拟化技术采取的是由运行在系统 / 处理器最高级 别权限中的相对精简的虚拟机管理器负责管理系统中的所 有处理器资源,而运行在相对较低权限级别上的虚拟机管 理器则负责用户任务调度的多个操作系统的结合,由此达 到对处理器资源分而治之的目的。 目前英特尔多核处理器上VT(Virtualization Technology) 技术和超威(AMD)多核处理器中的Pacifica技术都采用系 统虚拟化。
①不同处理器上的各项任务之间的通信难点。
②并行系统缺少明确的全局系统状态。
③并行程序执行时,每一次的执行路径并不完全一样, 这会给并行程序设计的纠错和调优等带来很大困难。
3.2. 3 多核/众核设计的问题
硬件资源管理的困难和对资源的竞争
如何容易地将计算任务进行分割,映射到众多处理器核上?如何让众多 处理器核利用有限片上传输网络传递数据,而冲突最小?等问题
2.3.2 基于共享内存编程模型的方法
共享内存编程模型中最有代表性的是OpenMP。 OpenMP形成于1997年,用于编写可移植的多线程应用程 序,起初只是一个Fortran标准,后来又发展到C/C++,目 前在Intel C++ Compiler和Microsoft VS2005以及更高版 本等编译器上都得到了广泛支持。
器OSCAR 以及与其协同工作的多粒度并行编译器的文章. 在子程序、循环和基本块之间开发多粒度的并行性是他 们工作的特色。
3.1.2多核中的能源
现在多核处理器结构的设计使得集成在同一块芯 片上的多个执行核之间共享各种硬件资源。而线程的 并发性导致核与核之间共享资源的争用,如何有效地 解决多核共享资源冲突带来提升系统的整体性能以及 应用程序的服务质量成为热点。 美国的宾州大学也活跃在多核领域。他们从能源 角度出发,在编译/运行时考虑应用程序应当利用多少 个核心,还研究缓存上的结构/互连,并关注多核处理 器中的温度问题。 康奈尔大学的研究包括多核中的能源有效相关问 题,在多核体系结构中针对单线程进行数据预取,以 及通过在多核处理器上进行激进的资源回收来改善关 键资源利用率。
芯片的访存带宽问题
访存带宽的限制是多核/众核发展的最大制约。如何让众多处理器核有 数据可算?如何更充分地利用片上有限存储空间的众核间共享,以避免 片外访存?如何充分利用有限访存带宽,尽量让访存通道繁忙,并能优 先满足处于关键路径处理器核的访存请求?
功耗问题
如何在众核设计中提高能效?如何对众多计算资源进行调度管理才能最 大限度降低众核设计的功耗?
作者:娄文君
内部结构
片上网络
存储层次结构
外部软件接口 编程模型 多核资源的管理
2.1片上网络—实现高速核间通信
在多核/ 众核系统中,随着内核数量的增加,基于传 统共享总线的互连结构受到扩展能力的制约,无法满足 处理器内核间的高速通信需求。片上网络(Network on Chip,NoC)正在成为多核/ 众核处理器核间互连的有效 组件。片上网络相关的研究包括: 路由算法 交换技术 拓扑结构 服务质量(Quality of Ser- vice,QoS) 降低片上网络功耗
作者:傅雪雪/张伟育
3.1 多核技术主要研究内容
并行编程 多核中的能源
核心内部的延迟
3.1.1并行编程
多核的成本优势与并行化计算与计算机性能上的需 求相结合,促进了多核并行编程。
美国斯坦福大学在20 世纪90 年代中期就开始了多核处理 器的研究。他们是目前学术界非常活跃的研究小组之一, 研究范围包括体系结构、应用程序分析研究,以及目前 处于热点的并行编程模型-事务存储。 日本的早稻田大学在20 世纪末就开始发表有关多核处理
2.3.4基于分布式编程的方法
多核环境中可以使用分布式的消息传递编程模型,Intel的 编译器就支持在多核环境中使用MPI编程。
缺点:在多核环境中使用消息传递编程会带来性能上的 损失,并且不是所有的共享数据类型都适用消息传递模 型来解决,例如,查找算法在多核中就不适用。
2.4多核/众核资源的管理——系统虚 拟化
多核系统的出现是摩尔定律与物理规律限制相互 作用的结果。
用在一个处理器中集成多个简单的处理器核。这样既
把多出来的晶体管用上了,而每个处理器核就像前一 代的处理器一样简单,因此不必提高他们的翻转速度, 各个处理器核只需要自己交换数据,因此没有很长的 连线延迟。
3.发展过程
高端 RISC 处理 器
基于Raw Thread API的方法
基于共享内存编程模型的方法 基于高层次模板库的方法 基于分布式编程的方法
2.3.1基于Raw Thread API的方法
主要使用系统底层API来进行多线程编程
Windows Threads和POSIX threads都属于使用系统底层 API,是最低层次的并行编程API,不同点是Windows threads应用于Windows平台,有Win32这样一个完整的库 支持,相对较为成熟,而POSIX threads主要UNIX/Linux 平台,但编程难度相当大,它将巨大的潜能交到了程序员 手中。
片上网络路由器的典型结构,主要实现了虚通道仲裁、 包路由和交换等功能。
2.2存储层次结构—缓解存储系统压力
存储层次结构(包括各级片上缓存(Catch)和主存) 的设计通常需要考虑三个方面: (1 )减少对片外主存的访问次数;
(2 )减少缓存访问延迟; (3 )提高内存访问带宽和速度。
2.3并行编程模型
Java Threads是所有能显示支持并行的程序设计语言中使用最广 泛的。提供了与POSIX Threads相同的概念特性,并且支持并发 数据结构。
Threading Building Blocks是由Intel针对多核平台开发的一组开源 的C++的模板库,基于GPLv2开源证书,支持可伸缩的并行编程。 它不需要特别的语言或者编译器的支持,因此可以广泛地被用于 任何处理器、任何操作系统以及任何编译器。
两个或多个完整的计算引擎(内核) 。这些核心可以分别独立 运行程序指令,利用并行计算的能力,可以加快程序的运行 速度,提供多任务能力,由此得到的结果就是性能大幅超过 单核处理器
1.2 众核(ManyCore)
众核处理器比多核(MultiCore)处理器中的处理内核数量还要
多,计算能力更强大。当一个芯片集成的核心数达到十几, 几百甚至几千时,多核则变成众核,而manycore的区别不仅 在于核心数量上多于multicore,另一个区别则是mulicore的 核心是每颗完全相同的X86处理器核心,而manycore则是 X86处理器内专门为这类工作设计的核心以达至加速。
章节安排:
第一章 多核/众核概念及发展 第二章 多核/众核处理器的关键技术 第三章 多核技术研究的主要内容、及难点 第四章 典型多核芯片分析 第五章 多核平台下并行程序设计
作者:刘甜
1.概念
1.1 多核(Multi-core )
多核处理器也叫多微处理器核心,是指在一枚处理器中集成
3.2 多核技术的难点
操作系统对多核的支持问题
多核面临的软件困难
多核/众核设计的问题
3.2.1操作系统对多核的支持问题
分配和调度: 操作系统的一个重要工作就是分配和调度任务。 多核处理器环境下操作系统的任务分配调度是目前研 究的一个热点。 调度包括多个方面:新任务的分配;核如何调度它上 面的任务;是否采用一致的调度算法;如何调度实时 任务和普通任务等。
搭载吞吐量为96Gbps的串行总线,24通道并行转换控制 器。配备高性能的DMA引擎,及对处理有效数据运动的 多种事务模式,并提供SR-IOV支持。
集成内存控制器
4个72位的支持ECC的DDR3内存控制器,内存总容量 可达1TB,存取速度高达1866MT/S,搭载先进的请求 重新排序机制。 缓存
总共有23MB的片上高速缓存,缓存方式采用动态分布 式方式。每个核心有1个单独的32KB的一级缓存, 256KB的二级缓存,及所有核心共享一个18MB的三级 缓存