前几天看到一则新闻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相关推荐

  1. AUTOSAR汽车电子系统架构标准

    目录 AUTOSAR RTE SWC和BSW SWC访问代码实现 ARXML(AUTOSAR XML) Interface Client-Server接口代码实现 AutoSAR OS Applica ...

  2. 【STM32】标准外设库,系统架构,时钟系统

    文章目录 标准外设库 系统架构 时钟系统 标准外设库 官方库目录列表如下:STM32 标准外设库 工程结构:STM32 不完全手册中新建出来的工程模板 系统架构 STM32 系统架构的知识可以在< ...

  3. 异构SOA系统架构之Asp.net实现(兼容dubbo)

    原文:异构SOA系统架构之Asp.net实现(兼容dubbo) 我们公司技术部门情况比较复杂,分到多个集团,每个集团又可能分为几个部门,每个部门又可能分为多个小组,组织架构比较复杂,开发人员比较多. ...

  4. 智能制造系统架构和标准体系结构

    导读: 智能制造是基于先进制造技术与新一代信息技术深度融合,贯穿于设计.生产.管理.服务等产品全生命周期,具有自感知.自决策.自执行.自适应.自学习等特征,旨在提高制造业质量.效率效益和柔性的先进生产 ...

  5. 系统架构与5G异构云无线入网关键技术(物联网电子类外文翻译)

    资料下载地址:https://download.csdn.net/download/sheziqiong/85584733?spm=1001.2014.3001.5503 摘 要 与第四代蜂窝系统相比 ...

  6. 系统架构设计师考试大纲

    一.考试说明:   1.考试目标   考试合格人员应能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确.合理的软件架构,确保系统架构具有良好的特性;能够对项目睥系 ...

  7. 【转载】广告系统架构解密

    广告.增值服务.佣金,是互联网企业最常见的三种盈利手段.在这3大经典中,又以广告所占的市场份额最大,几乎是绝大部分互联网平台最主要的营收途径,业务的重要性不言而喻. 从技术角度来说,广告业务涉及到 A ...

  8. 智慧医院新系统架构设计与建设

    一.建设背景 我国医院信息系统经过近40年的发展,大部分医院已经被架构陈旧的HIS制约业务发展.一方面HIS厂商的技术人员流动,致使HIS对需求变更的响应越来越慢,成本越来越高,用户满意度越来越低:另 ...

  9. 2015年系统架构师考试题详解

    原文地址为: 2015年系统架构师考试题详解 考试科目一:综合知识 某航空公司机票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,-,n)管理机票销售.假设Tj(j=1,2,-, ...

最新文章

  1. SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin实现链路追踪
  2. Python 基础(6)(常用数据结构)
  3. c# 字典按ascii 排序_sort命令-将文件进行排序并输出
  4. 自我价值感缺失的表现_不同类型的缺失价值观和应对方法
  5. 百度云盘云知梦php_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...
  6. kotlin 扩展类的功能_Kotlin程序| 扩展功能功能
  7. 09年3月编程语言排行榜:Visual Basic与PHP的暗战
  8. 【鲲鹏来了】华为云鲲鹏弹性云服务器 KC1一文全掌握(2)
  9. python自动化测试工具开发_Python+Selenium自动化测试教程连载(2)
  10. 安装Reporting Service即时报表模型
  11. java单元测试方法的使用
  12. TheFatRat一般使用
  13. 单片机计数器代码(四位共阴数码管)
  14. vmware workstations 共享虚拟机 failed to connect 903
  15. window下postgresql启动服务失败 Access is denied
  16. OpenStack安装CentOS镜像:Device eth0 does not seem to be present, delaying initialization
  17. 王飞跃教授点评:无人车最“靠谱”的应用领域——不是出行
  18. java unrar 乱码_JAVA使用 java-unrar-0.3.jar 解压rar,并且解决中文乱码
  19. [转载]Meta Learning单排小教学
  20. 点击切换图标(收藏和取消收藏)

热门文章

  1. 好用的翻牌器,定时器适用于react vue 等等
  2. 计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度附Matlab代码和论文复现
  3. 基于JavaWeb电影系统分享【源码开源】
  4. uniapp动态显隐导航栏图标
  5. 下载了免费的txt电子书,如何用Mac打开?
  6. nginx反向代理404错误
  7. 火鸟字幕合并器V0.3Build2004.6.9
  8. 05. windows下使用U盘工具把多个分区合并为一个分区
  9. 德国著名的五位数学家
  10. 走着走着就散了,回忆都淡了,看着看着就倦了,星光也暗了