清华大学计算机系 高性能计算技术研究所 体系结构研究 2010.9
description
Transcript of 清华大学计算机系 高性能计算技术研究所 体系结构研究 2010.9
清华大学计算机系高性能计算技术研究所体系结构研究
2010.9
研究所简介
研究所简介基本情况学科专业:计算机组织于系统结构计算机科学与技术系三个博士点之一,也是国家教委批准的重点学科博士点,在全国学科评比中名列第一获国家科技进步奖一等奖 1 项,二等奖 2 项
863 高性能计算机性能评测中心国家网格技术支持中心中关村开放实验室
人员构成现有在职教职工 21 人教授 10 人,副教授 6 人,助理教授 5 人研究生 100 人左右
主要研究方向计算机体系结构网格计算、分布式计算与云计算网络存储技术图形图像与可视化其他
计算机体系结构
主要研究方向高性能计算高性能计算集群与系统软件
Open64 编译器计算机全过程评测评测 benchmark系统模拟运行状态分析微处理器、多核处理器结构研究嵌入式处理器众核处理器模拟片上网络结构研究定制化处理器研究 其它虚拟化终端软件
高性能计算集群与系统软件从 90 年代开始开展高性能集群研究,研制了国内的第一台高性能计算集群系统(基于 Solaris 系统)开展了系统性的集群系统中间件与工具软件研发,应用于国产曙光、神威等高性能计算机
ChaRM – Checkpoint and Rollback Recovery SystemThe first open source checkpoint system for IA64For various OS: Linux, Solaris, AIX and WindowsNT
Buster – parallel debuggerUse GDB as underlying debuggerLinux, Solaris and WindowsNT
高性能计算
FMP – Fast Message Passing Protocol
CFS – Cluster file system
RiCE – remote super-computing environment
JBS – Job Batch-processing System
IPCE – Integrated Parallel Computing Environment(Based on XMPI)
TIPS – Tsinghua Interactive Parallelizing System
Open64 编译器• 工作起始于 2005 年 11 月• Joint project funded by HP (THU, ICT, UDEL),
now working with Google• Open 64 4.0.
GCC 4.0 front-end for C, C++, Cray Fortran frond-end for FortranIA64/X86 backendC++ ABI compatible with GCC 4.0SPEC CPU 2000 and 2006 result.
• Goal: Production qualityAn alternative GCC in IA64
作为产品编译器被 AMD, Tensilica, Qualcom 等公司使用。
微处理器、多核处理器结构研究高性能 32 位嵌入式处理器 ( 2002~ )
典型频率 :400MHz功耗 1.17mW/MHz最高频率: 500MHz ( @2.1V )芯片面积 3.2×3.2mm2内核面积 2.0×2.0mm2
TSMC 1P6M 0.18um 工艺与 MIPS 4Kc 指令集兼容支持 MIPS I II ISA ,支持 DSP 、媒体处理等指令添加了适于媒体处理的 SIMD 型指令7 级流水线结构
周期精确的 CPU 模拟器在 THUMP107 的设计开发过程中起到了关键作用之一
结构设计性能分析与比较指明系统的瓶颈提供精确的设计文档
结构验证Golden- 模型RTL 编码前找出了设计错误
能够进行早期的软件系统开发运行调试操作系统 & 应用程序 确保软硬件的无缝操作
实现特色 提出了一种与硬件结构无关的硬件功能模块描述规范
模拟器所模拟的对象可以进行方便的修改与扩充 设计了一种与体系结构无关的事件驱动信号更新算法
实现了周期精确模拟 使用了预编译、代码自动生成等方法来简化系统设计
模拟器提供一个模拟框架,用户使用类 C语言的“描述规范”来给出模拟对象,经过与处理后与模拟框架编译连接形成最终的模拟器实例 采用层次化、模块化建模方法,提高了设计方法的可移植性。
Control Module
Simulatin codes of CPU components
Pre-compilati
on program
Definition of all CPU components
Definition of CPU signals
Loader
GUI
Peripheral Module
SoC 软硬件协同设计验证平台以 THUMP 107 的软件模拟器与片上总线模拟为核心,辅之以必要外设的软件模拟模块,形成支持总线事务该软件平台能够运行 Linux 系统能够进行快速的软硬件 (RTL) 模块替换与协同验证,有利于进行快速的 SoC 系统原型验证与软件开发曾与 PMC-Sierra 公司合作,基于此平台开展基于 MIPS 处理器的视频解码芯片 SoC 设计
高性能计算机系统全过程评测不仅在验收阶段开展评测工作,还要在需求分析、设计、开发、验收、部署与使用等系统的全生命周期中综合采用建模、模拟、小规模实测等多种手段进行评测工作,为高端容错服务器的成功研制做好服务工作。
时间设计阶段
设计方案 原型系统 应用系统
模型
模拟/分系统
方法、工具
测试数据 测试数据
方法、工具
测试数据
模型 方法、工具模型
测试数据 预测数据
验证阶段 实用阶段
模型分析、归一化
评测结果
基于 FPGA的计算机系统模拟
需求背景高端容错计算机的设计合理性问题
系统投资巨大,构建周期长,如何尽早评估设计是否合理?分析方法 vs.模拟技术模拟技术被广泛应用于大规模计算机系统的设计
IBM 、 UIUC 的 BigSim 、 BG/LSimLos Alamos 国家实验室的 PARSIM
在精度、时间与成本之间的权衡多核、多芯片、大规模已成为计算机系统的发展趋势传统的基于软件的模拟(尤其是周期精确模拟)已经无法适应大规模目标系统的需求
其模拟速度是真实运行速度的千分之一到万分之一
解决思路基于 FPGA 的系统模拟灵活可配 快速 成本相对低Intel 的 HASimUC Berkeley 等一些高校以及微软、 SUN联合的 RAMP课题2006 年以来的 HPCA 上都设立了 Workshop on Architecture Research using FPGA Platforms
近几年来,全系统性能模拟从传统的软件实现逐步演化为软硬件混合模式,或者说是硬件加速模式
基于 FPGA 的计算机全系统模拟技术研究目标
研究基于 FPGA 的多核多处理器计算机系统模拟技术,包括系统功能模型与时序模型分离的模拟框架、硬件资源时分复用模拟技术、软硬件混合的模拟方法,并完成相应的模拟平台。研究内容与指标
功能模型与时序模型分离的模拟框架功能模型采用内部微码,指令集可调;支持一种主流指令集时序模型参数可调(包括微体系结构、存储层次结构参数等)
硬件资源时分复用 (目标 FPGA: Xilinx Virtex 5 )可以模拟 64~128 个处理器核,周期级模拟可以模拟 80~256 规模的互连网络
软硬件混合模拟软件完成外设与系统调用模拟
研究内容与指标 (续 )工作频率—— 80Mhz
trace
FunctionalModel
(ISA + peripherals)
TimingModel
(Micro- architecture)
Host+FPGA HostFPGAtrace
FunctionalModel
(ISA + peripherals)
TimingModel
(Micro- architecture)
Host+FPGA HostFPGA
Interleaved Pipeline 16xCPU Cache #0
Cache #1
Cache #15
……
Cache Controller
NIOSII Processor #0_MMU
NIOSII Processor #1_Cplx
NIOSII Processor #2_PCI-E
Memory
SRAM
SDRAM
IDE
22
BEE3-LX155T-2C
集成了四片 Xilinx LX155T FPGA 芯片、 64GB DDR2 内存、 8 个 10G 以太网接口、 4 个 PCI-E接口的大规模开发平台。预计可以模拟几百核至近千核的多核多芯片系统(采用时分复用模式),包括其互连、存储层次等结构。
Xilinx Virtex-5 XC5VLX110T
预期成果FPGA 模拟器的可综合 RTL 代码以及相关工程文件相关开发文档以及使用手册关键技术说明文档或者技术论文相应的测试用 OS 、编译器以及测试代码(采用第三方开源软件)
验收方法展示 FPGA演示系统
功能检查、运行频率检查(根据量化指标)文档、代码检查帮助进行系统迁移、安装。
基本目标规模: 64 核规模, 80 结点互连网络规模 ( 支持虚通道 )频率: 80Mhz
良好目标规模: 128 核规模, 256 结点互连网络规模
挑战目标规模: 128 核规模 + 256 结点互连网络规模(需要跨片实现)
项目进度阶段一 (三个月)确定细化技术方案,给出细致指标;完成初步的内核模拟代码,以及 RTL 功能仿真;完成互连模拟的 RTL 代码(支持跨片设计)。阶段二 (七到九个月)
代码综合、上板调试完成原型系统集成软件部分
阶段三 (二到三个月)调整优化系统展示
其 它
针对大气变化的定制化众核处理器设计• 面向超级计算关键应用(如气象预报),研究可定制高性能科
学计算处理器设计方法与示范应用。• 提供应用驱动的可定制处理器的设计验证方法 \ 模型 \ 系统
应用需求分析 /热点分析 / 自动优化 方法 处理器内核结构定制 / 指令扩展 /互连拓扑结构定制 方法 硬件支持的相关编程模型 软硬件混合的处理器全系统模拟 系统 高层次的处理器芯片功耗 / 面积评估
• 基于上述方法的可定制处理器设计的完整流程• 提供针对气象预报计算应用所定制的高性耗比众核处理器设计与芯
片验证系统
•高性能科学计算应用——网格模拟类
•中国自己的数值天气预报业务系统( GRAPES )
具有自主知识产权的全球中期数值天气同化、预报系中国气象局数值天气预报专业模式的基础
•其它类应用•地球物理学应用(大气 /海洋等模拟)
与清华大学全球变化研究院等合作
•高性能计算处理器与系统设计方法•应用是第一位的
跨院系交叉,气候模拟应用需求分析
•采用定制处理器针对应用进行处理器剪裁与扩展
•采用多核 / 众核技术针对应用的并行模式
采用较简单的核 / 较多的核核间互连结构等优化硬件支持的并行编程模式
•设计自动化方法芯片定制工具软件、定制工具链基于 FPGA 的软硬件混合模拟与验证
应用分析/应用优化(需求分析、特征提取、扩展性分析、并行
性分析、热点分析与优化)
处理器内核定制(结构裁剪与扩展、指令扩展、缓存与本
地存储定制、)
处理器核间定制(核间拓扑结构、核间快速通信接口、
片上DMA)
编译器定制技术 MPI运行库优化
软硬件混合的目标设计性能模拟
目标设计的功耗/面积评估
虚拟化终端软件背景如何将现存的大量桌面软件转换成 Software as a Service 使用形式?
Software as a Service 是具有良好前景的软件使用方式但与现有的桌面软件不兼容
目标搭建 SaaS 与现有桌面软件的桥梁,为个人计算机用户提供一个网络按需使用现有软件的应用环境
在联网环境下,用户可以在任何地方、任何时间使用兼容计算机来恢复其专属的个性化工作环境实现软件发布的网络化与服务化,用户可以按需使用软件
成果可迁移虚拟化桌面系统
计算机用户的 Windows桌面环境、个性化数据、常用软件与配置存储于便携式存储设备或者网络存储上,从而可以在不同的兼容的主机上访问、使用其个性化数据以及带有个性化设置的软件。
支持 Windows XP SP2 以及 Vista 操作系统 兼容已有的应用软件二进制代码符合主流的桌面应用模式充分利用主机处理能力
P2P Transfer
Download
Data Server & Track Server
Portable Storage Device
Portable Storage Device
Portable Storage Device
Peer Node 2
Peer Node 1 Peer Node 3
系统结构可迁移桌面界面
THANKS
Interleaved Pipeline 16xCPU
16Clk
发射 16条指令来自模拟的 16 个处理器完成 16条指令的执行
1Clk
每条指令依次经过 16 个流水段每个流水段上依次经过 16 个核的指令
多核多处理器互连网络模拟( 用于设计阶段 )• 方法模拟互连网络系统,采用时钟周期驱动模式,模拟网络中包传送的过程以及每个节点的处理与发送过程传输瓶颈分析与不同拓扑结构对比• 输入互连拓扑结构、网络各节点行为参数(处理 / 发送时延、连接带宽、工作频率、转发策略等)随机负载(强度可调)• 评测项目包传输时延(平均 / 最大)节点处理阻塞时间(平均 / 最大)。。。。。。
软件模拟 完成了周期精确的可配置互连网络模拟
模拟网络节点的内部微体系结构 模拟了物理层、 Cache 一致性协议层 灵活统计各项性能参数
FPGA 模拟 在软件模拟的基础上,完成了周期精确的可配置的互连网络仿真
拓扑结构、信道个数、缓存大小、网络节点处理时间等可配置 正在开展扩展工作,争取在 4 个 FPGA 片上完成 256~512 结点网络规模的高速模拟。
面向 IA64 的处理器体系结构模拟、故障注入与跟踪(设计阶段)• IA64 处理器的微体系结构模拟• 提供内核、存储层次、互连网络等多层次的故障注入接口• 内部模拟实现了多种主流容错技术,可以直接配置运行• 提供容错技术开发接口,以开发新的容错功能模块
Appl ication/Benchmark
系统模拟
体系结构配置参数…
处理器锁步配置参数…
互联网络配置参数…
故障注入参数…
配置接口
新的容错模块
容错开发接口
研究平台
高性能服务器
ECC容错模块
互联网络容错模块处理器锁步模块
检查点设置模块
启动时配置参数
容错模拟结果、模拟统计分析、模拟执行记录…
输入 输出
修改的处理器锁步容错模块
User
User
模块接口内存容错模块.. .