HSA DSE 初探索

本文主要将目前三种HSA模拟器设计文献进行翻译总结,文献请查看上传文件。
摘要由CSDN通过智能技术生成

本文主要将目前三种HSA模拟器设计文献进行翻译总结,文献请查看上传文件。

gem5-gpu: http://download.csdn.net/detail/lpn709695399/9620482


multi2sim: http://download.csdn.net/detail/lpn709695399/9621438


socrocket: http://download.csdn.net/detail/lpn709695399/9620483

http://download.csdn.net/detail/lpn709695399/9608852



gem5-gpu: A Heterogeneous CPU-GPU Simulator
-> 2013
集成CPU与GPU系统的模拟器,基于gem5(CPU)与GPGPU-sim(GPU)搭建
most memory accesses基于Ruby搭建,gem5中的可配置存储系统:
1. cache一致性
2. CPU/GPU共享虚拟地址,独享物理地址


可以运行CUDA 3.2的代码,非阻塞运行,CPU与GPU可并行运行,本文提供软件架构和性能分析,并提出扩展方案 <---如何实现非阻塞运行


1. Introduction
gem5为全系统多核模拟器,有多种CPU、指令集 和 存储模型;另外gem5支持面向对象的设计,灵活多变的配置方案。逐渐成熟的技术使得gem5成为评估通用CPUs和多核平台的主要工具。 <---是否包含ARM


GPGPU-sim为GPGPU的模拟器,为GPGPU的CU(compute units,如NVIDIA中的SM)和GPU的存储系统进行建模


gem5-gpu借鉴GPGPU-sim中的CU模型 和 gem5的CPU和存储系统模型
采用execution-driven simulation
trace-driven的prtition方法比较好
[1] MacSim中采用了更加细化的方法,相对于Multi2Sim和FusionSim,具有更灵活的存储架构和一致性协议,仿真时间比较长
优势:
1.Detailed cache coherence model
2.Full-system simulation
3.Checkpointing
4.Tightly integrated with the latest gem5 simulator
5.Increased extensibility of GPGPU programming model and entire system architecture
DMA engine可以对CPU和GPU地址空间进行数据搬运建模


2 Heterogeneous Computing
GPGPU计算是计算迁移(Computation Offloading)的代表
计算迁移:针对特定的工作任务,受当前计算系统资源的限制,需要将计算任务分配到其他外部平台,比如a cluster, grid, or a cloud。可以用到Artificial intelligence, Artifitial Vision and object tracking, or computational decision making
data-parallel image processing, scientific, and numerical algorithms


迁移到GPU的任务称为Kernel,Kernel可以分为许多线程,而只占用GPU一条指令的SIMT执行
Work units offloaded to the GPU are called kernels


CPU与GPU采用独立的存储空间时,GPU与CPU之间需要进行数据的搬运
程序迁移至GPU需要use-level calls,调用GPGPU的API(runtime),其中包含kernel-level驱动控制GPU设备。目前比较流行的runtime为CUDA和OpenCL


HSA fundation提出未来异构计算中统一存储方案(heterogeneous uniform memory access, hUMA)
[7]中NVIDIA也提出统一存储空间的方法UVA


gem5-gpu目的就是支持这种灵活、可扩展的编程模型和体系结构


3. The Giant's shoulders
3.1 gem5
gem5.org由学术界与工业界的许多实验室开发
gem5包含许多CPU,存储系统和指令集模型
two execution modes:
1) system call emulation: 系统调用仿真,可以执行User-level binaries调用emulated system calls <- 不是特别懂
2) full-system: 建模所有设备来boot并运行操作系统,提供检查点(checkpoint),可以有目的的进行仿真
优势:
1. 提供融合新体系架构机制,可以使用集成在gem中的EXTRAS接口例化外部代码 <- 如何添加
2. 集成了详细的cache和memory模拟器Ruby,Ruby是基于domain specific language, SLICC(用来描述cache一致性协议)开发的环境,目前还没有GPU的模型
3.2 GPGPU-Sim
[2] backed by a strong publication record
为现有的NVIDIA显卡进行建模
GPGPU-Sim将应用程序编译为PTX(NVIDIA中间指令集)或者汇编本地GPU机器码
GPGPU-Sim为线程分配逻辑、highly-banked regster file、特殊功能单元和存储器系统的计算流水进行功能和时序模型
GPGPU-Sim包含GPU的存储器、DRAM、cache模型
constant/scratchedpad/low-latency in-core cache/local/parameter/instruction/texture


GPGPU-Sim可以将源代码连接到为对应的GPGPU运行库
GPGPU-Sim是一个功能优先模拟器,先执行所有的指令,然后反馈给时间模拟器


GPGPU-Sim在为异构系统建模的缺陷:
1. 没有主CPU的时钟模型
2. 没有主设备拷贝函数的时钟模型
3. 严格的cache模型
4. 没有主设备间的交互模型


4. gem5-gpu architecture
GPU由许多CU组成,每个CU均有取指/译码逻辑、a large register file,许多执行通道(execution lanes, 多为32/64)
当读取global memory时,每个通道将各自地址发送到聚结器(coalescer),将所有的memory accesses指向相同的cache块,GPU也可以有自己的cache架构


4.1 gem5<-->GPGPU-Sim Interface
我们的目标之一是在gem5与GPGPU-sim间提供简洁的接口,在gem5中添加一条伪指令,简化DMA engine和GPU功能的调用
gem5-gpu将GPGPU-Sim对global address space的访问通过gem5接口映射到Ruby的访存指令


4.2 Memory Syst

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值