异构系统架构标准——HSA
前几天看到一则新闻AMD发新Carrizo处理器http://digi.tech.qq.com/a/20150603/009450.htm 。这是第一个完整支持HSA1.0标准的产品。因为当时HSA是新生标准,没有进入市场的产品,因此对于这个标准以前只知道是关于异构计算的,没有过多的探究。这次借这个机会深入了解一下。
异构初窥
在异构系统架构(Heterogeneous System Architecture,简称HSA)上进行并行运算的异构计算(Heterogeneous Computing)技术从上世纪80年代产生,是并行/分布计算领域里的热点之一。
常见的计算单元有很多,例如CPU(中央处理器)、GPU(图形处理器)、协处理器、DSP(信号处理器)、ASIC(专用集成电路)、FPGA(现场可编程门阵列)。我们都知道诸如CPU主要应对的是逻辑密集运算,而GPU则是用于复杂数学运算,今天数量越来越多的主流应用要求兼具高性能和低功耗的素质,并行计算是达成目标的唯一途径。但是,当前的CPU和GPU是分立设计的处理器,不能高效率地协同工作,编写同时运行于CPU和GPU的程序也是相当麻烦。由于CPU和GPU拥有独立的地址空间,应用程序不得不明确地控制数据在CPU和GPU之间的流动, CPU代码通过系统调用向GPU发送任务,此类系统调用一般由GPU驱动程序管理,而驱动程序本身又受到其他调度程序管理。这么多的环节造成了很大的调用开销,以至于,只有在任务所需处理的数据规模足够大,任务的并行计算量足够大时,这样的调用开销才是划算的,因此很容易遇到计算瓶颈。HSA的提出就是为了应对如今日益复杂的计算要求,把同一个平台上分立的处理单元紧密整合成为不断演进单颗处理器(SOC)。下图就是HSA基金会的成员,可以看到其中有许多重量级的参与者,有软件供应商(ORACLE)、IP核供应商(ARM),也有半导体制造公司(TI),还有电子自动化设计一类的公司(Synopsys、Cadence),以及一些著名高校。
HSA系统架构
1.0标准对HSA架构的系统的特征进行了描述,其中包含一些必须有的特征,也有一部分可以由厂商自己决定是否加入的,下面是对于HSA系统最基本特征的描述:
- 共享虚拟内存
- 缓存链接域(包括主CPU、计算核心以及内联I/O总线)
- 内存寻址扁平化
- 一致的系统字节顺序
- 在所有HSA架构的系统组件(最小至原子级的部件)中基于内存的信号和同步的基本单元
- 原子级的内存操作
- HSA系统时间戳(提供HSA系统中的同一视角)
- 硬件层面上用户模式的队列拥有任务级的低延迟调度
- AQL(Architected Queuing Language)接口
- 核心调度
- 最大延迟可保证的抢占式内核切换
- 核心错误报告机制(与主CPU相同详细级别)
- 核心调试基础架构
- HSA平台拓扑
- 支持图像操作
HSA平台架构
下面只对其中小部分Requirement具体描述。
拓扑结构
下图是HSA架构的一个简单示例,只有一个节点,包含核心和存储资源。
如果是一个更复杂的HSA系统,其中有一系列的主CPU、核心以及分布在多个系统组件的五个HSA存储节点,那么它的整体拓扑结构就如下图所示。
对于复杂的HSA系统,为了随机的添加或者移除部件,系统必须提供一种识别和通知机制,使得HSA运行环境和软件可以不断枚举各个部件,以更新整个拓扑结构,同时也为了能在部件被识别的同时,得到各个部件的特性。HSA需要如下图一样的结构,用以描述整个系统中的Agent队列。
Architected Queuing Language
一个遵循HSA标准的系统应该为核心调度提供命令接口。这个命令接口就是AQL(Architected Queuing Language)。AQL使各个核心得以建立自己的命令数据包,并将其加入队列。AQL也支持核心依照AQL格式输入命令。AQL定义了一下几种数据包类型。
- 供应商自定义数据包
- 无效数据包
当整个队列初始化或read_index在增加时,数据包格式会被设置为无效。
- 核心调度数据包
- 代理调度数据包
- Barrier-AND数据包
这个数据包可以被代理加入队列中,用以延迟处理后面的数据包。
- Barrier-OR数据包
这个数据包可以被代理加入队列中,用以延迟处理后面的数据包。
发送的数据包类型在AQL数据头描述。
图像操作
遵循标准的平台应该视情况为HSA软件提供定义和使用图像对象的能力(支持一维至三维图像)。图像的格式只能从预先定义的格式里面选择。核心可以通过一个不透明的“指针”对图像的值进行操作。这个指针被HSA运行环境建立且只针对某一个核心。一个图像对象可以被设置为只读/只写/可读可写。除此之外,图像还有以下额外的要求。
- 图像被HSA平台建立,可能被从全局段里复制的数据初始化。初始化后,图像结构不再保留在全局段的引用,同时数据不再被存储在全局段内。
- 一个图像对象只能被一个核心使用,且这个核心在图像被建立时就应该声明。
- 图像数据只能通过接口访问。
- 图像数据的存储布局应该按定义的实现,并且对于在同一个HSA平台上的不同Agent不必相同。
- 图像不占用共享虚拟内存的地址空间。这样做的结果就是必须通过接口访问。
- 图像操作对于被HSA平台定义的内存排序没有影响。
- 当图像的读写属性(只读/只写/可读可写)被修改后,指定的核心不会改变。
- 当只读/只写的图像数据被写/读后结果不保证。
APU发展史
为了达到上面提到的融合加速的目的,AMD公司提出了APU概念。从最初宣布到最终发布,APU花了足足四年半的光阴,看似简单的CPU、GPU整合为何如此费力?原因就是这不简单。如果只是做另一种集成显卡,那是再容易不过了,但是要把CPU、GPU两种不同的计算单元有机地融合到一颗芯片中,还要发挥二者各自的最高效率,出色地完成串行和并行计算任务,就需要在方方面面保证它们俩的和谐共处,包括各自适当的规模、超高的晶体管集成度、先进的芯片制造工艺、高速的互联总线架构、共享低延迟的内存模式、适当的成本、足够的编程与软件支持,等等。正是在这些方面经历了深入的探索之后,AMD才最终完成了APU,绘就了一张宏伟蓝图。
为了达到这个目标,AMD将整个计划分为了四步:第一步,物理整合,CPU、GPU集成到单独一颗芯片上;第二步,平台优化,融合互连增强CPU、GPU之间的交互能力;第三步,架构整合,实现CPU、GPU内存统一寻址;第四步,架构和系统整合,从硬件到软件完全实现异构计算支持。
2011年的Llano就代表着第一步,2012年的Trinity则是第二步,第三步则是2013年底的Kaveri,而如今的第四步将由Carrizo迈出。
参考资料:
AMD 和异构系统架构(HSA),http://mt.sohu.com/20150326/n410358764.shtml
http://www.amd.com/Documents/ISSCC-presentation-CN.pdf
CPU和GPU真融合 APU异构系统架构解析,http://www.pcpop.com/doc/0/911/911103_all.shtml
HSA-SysArch-1.01,http://download.csdn.net/detail/u010945683/8780611
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。
异构系统架构标准——HSA相关推荐
- AUTOSAR汽车电子系统架构标准
目录 AUTOSAR RTE SWC和BSW SWC访问代码实现 ARXML(AUTOSAR XML) Interface Client-Server接口代码实现 AutoSAR OS Applica ...
- 【STM32】标准外设库,系统架构,时钟系统
文章目录 标准外设库 系统架构 时钟系统 标准外设库 官方库目录列表如下:STM32 标准外设库 工程结构:STM32 不完全手册中新建出来的工程模板 系统架构 STM32 系统架构的知识可以在< ...
- 异构SOA系统架构之Asp.net实现(兼容dubbo)
原文:异构SOA系统架构之Asp.net实现(兼容dubbo) 我们公司技术部门情况比较复杂,分到多个集团,每个集团又可能分为几个部门,每个部门又可能分为多个小组,组织架构比较复杂,开发人员比较多. ...
- 智能制造系统架构和标准体系结构
导读: 智能制造是基于先进制造技术与新一代信息技术深度融合,贯穿于设计.生产.管理.服务等产品全生命周期,具有自感知.自决策.自执行.自适应.自学习等特征,旨在提高制造业质量.效率效益和柔性的先进生产 ...
- 系统架构与5G异构云无线入网关键技术(物联网电子类外文翻译)
资料下载地址:https://download.csdn.net/download/sheziqiong/85584733?spm=1001.2014.3001.5503 摘 要 与第四代蜂窝系统相比 ...
- 系统架构设计师考试大纲
一.考试说明: 1.考试目标 考试合格人员应能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确.合理的软件架构,确保系统架构具有良好的特性;能够对项目睥系 ...
- 【转载】广告系统架构解密
广告.增值服务.佣金,是互联网企业最常见的三种盈利手段.在这3大经典中,又以广告所占的市场份额最大,几乎是绝大部分互联网平台最主要的营收途径,业务的重要性不言而喻. 从技术角度来说,广告业务涉及到 A ...
- 智慧医院新系统架构设计与建设
一.建设背景 我国医院信息系统经过近40年的发展,大部分医院已经被架构陈旧的HIS制约业务发展.一方面HIS厂商的技术人员流动,致使HIS对需求变更的响应越来越慢,成本越来越高,用户满意度越来越低:另 ...
- 2015年系统架构师考试题详解
原文地址为: 2015年系统架构师考试题详解 考试科目一:综合知识 某航空公司机票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,-,n)管理机票销售.假设Tj(j=1,2,-, ...
最新文章
- SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin实现链路追踪
- Python 基础(6)(常用数据结构)
- c# 字典按ascii 排序_sort命令-将文件进行排序并输出
- 自我价值感缺失的表现_不同类型的缺失价值观和应对方法
- 百度云盘云知梦php_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...
- kotlin 扩展类的功能_Kotlin程序| 扩展功能功能
- 09年3月编程语言排行榜:Visual Basic与PHP的暗战
- 【鲲鹏来了】华为云鲲鹏弹性云服务器 KC1一文全掌握(2)
- python自动化测试工具开发_Python+Selenium自动化测试教程连载(2)
- 安装Reporting Service即时报表模型
- java单元测试方法的使用
- TheFatRat一般使用
- 单片机计数器代码(四位共阴数码管)
- vmware workstations 共享虚拟机 failed to connect 903
- window下postgresql启动服务失败 Access is denied
- OpenStack安装CentOS镜像:Device eth0 does not seem to be present, delaying initialization
- 王飞跃教授点评:无人车最“靠谱”的应用领域——不是出行
- java unrar 乱码_JAVA使用 java-unrar-0.3.jar 解压rar,并且解决中文乱码
- [转载]Meta Learning单排小教学
- 点击切换图标(收藏和取消收藏)