《08-何虎.pdf》由会员分享,可在线阅读,更多相关《08-何虎.pdf(21页珍藏版)》请在三个皮匠报告上搜索。
1、何 虎清华大学集成电路学院开源通用GPU指令集架构-乘影(OpenGPGPU)Vector处理器和GPGPU的主要区别Page 2*计算机体系结构 量化研究方法CPU和GPU性能对比最核心区别是编程模型GPU采用显示并行方式,暴露线程数量给程序员,并行数据处理采用标量方式进行CUDA和OpenCL均采用此种方式编程,目前生产效率最高的并行编程模型开源是发展自主可控芯片的创新路径5建立开源生态,打破技术封锁处理器芯片技术栈最重要的中间抽象层是指令集架构(ISA)。高性能计算公司,尤其是并行计算芯片行业领导者英伟达(NVIDIA)和超微半导体(AMD)长期以来将其作为闭源技术规范。开源指令集RIS
2、C-V有望突破这一现状,通过建立大众参与的开放上下游生态,建设积极旺盛的人才培养环境,打破行业垄断玩家对先进技术的封锁,凝聚原本分散的社会资源,齐心协力做好一个GPGPU软硬件生态。Tensor Core计算单元RISC-V向量扩展指令集开源软件工具链补全创新路径:开源软件工具链、开源指令集、开源硬件架构计算架构创新OpenCL编程框架软硬件协同构建开发者生态6Khronos Group旗下的OpenCL是一个异构并行计算编程框架,提供一系列通用中间层API。各芯片供应商根据API标准各自独立实现。调用相同API的软件程序则可以运行在不同硬件平台上。因此OpenCL易于在不同平台之间迁移。Op
3、enCL是目前所有GPU都支持的并行编程框架是唯一可能与CUDA竞争的GPU并行编程框架#includeint main()status=clGetPlatformIDs(0,NULL,&numPlatforms);free(platform);软件开发者OpenCL软件工具链编译链接标准库芯片公司AA 定制驱动CPU a1CPU a2芯片公司BB 定制驱动DSA B1芯片公司CC 定制驱动GPU C1广 泛 兼 容统一指令集架构意义应用程序应用程序编程接口高层编程语言汇编语言指令集架构处理器微架构逻辑门、寄存器晶体管固体物理(开源技术标准)软件技术栈(开源技术标准)如果指令集架构变成开源技术
4、标准,上下游开源标准之间分割出的软硬件技术栈有能力供养一批独立的软硬件解决方案公司。对软件公司而言,建立统一的软件生态系统,减少上层应用和工具软件的开发和迁移成本;对硬件公司而言,让芯片公司专注于硬件设计,提高GPU硬件公司的资源投入效率,进而提高技术水平和竞争力。应用程序应用程序编程接口高层编程语言汇编语言指令集架构处理器微架构逻辑门、寄存器晶体管固体物理(开源技术标准)软硬件技术栈(闭源技术标准)硬件技术栈统一指令集架构意义(续)统一指令集架构可以形成合力,把分散的GPU研发力量聚合起来,形成可以和巨头竞争的局面,不会陷入重复造轮子的困境,也更利于人才的汇聚;乘影开源通用GPU指令集架构,
5、大部分指令来自于RISC-V指令集,采用了GPGPU SIMT架构并设计了多条扩展指令。充分利用RISC-V现有的指令集架构生态,使得市场主体很容易接受和参与到软件开发和芯片设计中。指令集架构手册可行性和技术路线10“乘影”围绕开源RISC-V指令集搭建国内开源GPGPU平台,提供包括开源指令集架构、微架构设计、OpenCL软件工具链在内的全套实现。可基于乘影现有成果,进一步推动国内统一开源通用GPU指令集架构的发展。开源指令集架构开源指令集架构基于基于RISCRISC-V V的的GPUGPU指令集架构指令集架构开源编程框架和工具链开源编程框架和工具链开源开源GPGPUGPGPU平台平台建设建
6、设开源硬件实现开源硬件实现OpenCLOpenCL并行编程框架并行编程框架GPGPUGPGPU微架构微架构Tensor CoreTensor Core计算单元计算单元+驱动程序驱动程序链接器、数学函数库、运行时库链接器、数学函数库、运行时库编译器编译器功能定义功能定义APIAPI封装封装硬件实现硬件实现研究研究问题问题总体总体目标目标解决解决方案方案具体具体实现实现指令集支持及自定义扩展扩展扩展指令类型指令类型1.0版本版本2.0版本版本3.0版本版本VConfiguration-Setting部分支持部分支持部分支持Loads and Stores支持支持支持Integer Arithmet