当前的CPU和GPU是分立设计的处理器,不能高效率地协同工作,编写同时运行于CPU和GPU的程序也是相当麻烦。由于CPU和GPU拥有独立的地址空间,应用程序不得不明确地控制数据在CPU和GPU之间的流动。CPU代码通过系统调用向GPU发送任务,此类系统调用一般由GPU驱动程序管理,而驱动程序本身又受到其他调度程序管理。这么多的环节造成了很大的调用开销

为了充分释放并行处理器的计算能力,架构设计者必须打破既有格局,采用新的思路。设计者必须重塑计算系统,把同一个平台上分立的处理单元紧密整合成为不断演进单颗处理器,同时无需软件开发者的编程方式发生重大的改变,这是HSA设计中的首要目标。

异构系统架构(HSA,Heterogeneous System Architecture)用一句话来概括就是:一种智能计算架构,通过无缝地分配相应的任务至最适合的处理单元,使CPU、GPU和其他处理器和谐工作在单一芯片上。上一代APU虽然已经将CPU和GPU无缝融合在了一起,但并没有实现“分配相应的任务至最适合的处理单元”,这就是HSA架构的精髓,也是AMD未来APU想要努力实现的方向。

HSA系统的几大特性:

   1. 任何处理单元的数据可以轻易地被其它处理单元所访问;
   2. 异构计算不仅包括GPU,还包括其它专用处理单元或协处理器;
   3. 编程人员不用知道程序在什么处理单元上运行;
   4. GPU和其它处理单元无缝访问虚拟内存,解决数据搬迁瓶颈,数据无需复制。

在硬件层面,HSA架构当中的异构统一内存访问是一项关键技术。

最新文章

  1. docker 实践笔记
  2. C#遍历文件夹下所有文件
  3. Java JDBC基础学习小结
  4. Screen Orientation for Windows Phone
  5. 第二章平稳时间序列模型——ACF和PACF和样本ACF/PACF
  6. 交流异步电机的Modelica模型
  7. JavaScript中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令是什么?
  8. css斜线
  9. HDU 5705 Clock (精度控制,暴力)
  10. HBase开发错误记录(一):java.net.UnknownHostException: unknown host: master
  11. C#中对输出格式的初始化
  12. CodeForces 340E Iahub and Permutations
  13. 2017 ZSTU寒假排位赛 #2
  14. Lambda表达式和Java集合框架
  15. [转载] OAuth2.0认证和授权原理
  16. Angular记录(3)
  17. OpenCV入门之寻找图像的凸包(convex hull)
  18. 【DDD】使用领域驱动设计思想实现业务系统
  19. info AI drive
  20. 理解Netty中的零拷贝(Zero-Copy)机制【转】

热门文章

  1. uni-app如何解决在for循环里调用异步请求获取数据顺序混乱问题?
  2. SpringBoot 通过jjwt快速实现token授权
  3. 关于Panel隐藏横向滚动条
  4. Redis之缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
  5. 何为KVM克隆和快照
  6. 一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token
  7. 解决 Electron 5.0 版本出现 require is not defined 的问题
  8. WorkFlow三:配BO对象,事件触发工作流
  9. 常用SQL语句分享
  10. Vim文本编辑器详细用法