《10-沈贽.pdf》由会员分享,可在线阅读,更多相关《10-沈贽.pdf(19页珍藏版)》请在三个皮匠报告上搜索。
1、基于RISC-V向量拓展的高性能开源GPGPU设计(股票代码:688262)www.china-苏州国芯科技股份有限公司 研发背景发展背景:通用图形处理单元(GPGPU)是高性能并行计算处理器芯片的一种。GPGPU因为其可编程性、易移植性,面对新兴应用具有更低的跟随成本,所以始终占据着高性能计算市场最大的份额。痛点:GPU研发资源极度分散,内卷及其严重。GPU研发软件生态不够统一,各自封闭。解决以上痛点采用开源的RSIC-V架构实现GPU设计解决生态问题。基于LLVM开发编译器,结合linker、runtime library、math library实现对OpenGL、OpenGL ES、V
2、ulkan和OpenCL C的完整支持。GPU的核心就是生态,以上痛点也成为了国内GPU长远发展的瓶颈!G P UC P UD S A更灵活,编程友好并行度高,性能更好过于专用过于通用GPGPU主要技术规格指令集架构RISC-V:RV32IMA_zicsr_zfinx+Vector 扩展自定义线程束的分支和同步、多线程束执行指令特性统一分配SM线程调度器CTA每个SM支持最大32线程支持Private、Share、Global存储模型支持256向量和64标量寄存器堆支持barrier、fence同步指令支持endprg、mask线程控制指令可配置Tensor Core缓存架构在RVWMO的基础
3、上,“乘影”进一步部署了释放连贯性指导的缓存一致性(RCC)。让SM私有缓存间具备一致性功能的同时,避免了硬件一致性协议带来的高昂硬件成本和运行时带宽开销工程化RTL设计Verilog语言设计CTA SchedulerSMSMSMSML2 CacheL2 Cache ClusterSMSMSMSML2_to_Out_ArbCluster_to_L2_ArbMemArbiterSchedulerVentus GPGPUPipeHost Device(CPU)Global Memory(DDR)扩展指令类型GPGPUV(zve32f)配置指令部分支持加载和存储支持整型指令支持浮点指令支持fp32I
4、基本指令支持M乘法指令支持A原子指令支持zicsrCSR操作支持F(zfinx)单精度浮点指令支持GPGPU主要技术规格1.总调度器设计(CTA Scheduler):负责以workgroup为单位接收CPU分配的总任务,并统计资源将任务以warp为单位逐个分配到空闲的SM上2.流多处理器设计(SM):前端包括:取指、译码、指令缓冲、操作数收集、发射、记分牌、warp调度(单指令操作)后端包括:ALU、vALU、vFPU、MUL、LSU、CSR、SFU、SIMT-stack、TC、warp控制、写回(多线程执行)3.内存系统设计(Cache):单个SM内部:Regfile、L1 DCache、
5、L1 ICache、Share Mem多个SM共享L2 Cache主要功能模块OpenCL程序OpenCLRuntime驱动接口PCGPGPUSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreSMCoreCommand ProcessorL2$CTA软软件件工工具具GPGPU 研发平台简介 研发框架围绕开源RISC-V向量扩展搭建GPGPU平台,完成包括开源指令集、微架构设计、OpenCL软件工具链、专用张量计算单元在内的全套实现。参照开源软硬件项目“乘影”GPGP
6、U平台而设计具有高度可定制性和可扩展性,具有完整的开源编译器,驱动程序和运行时软件堆栈是支持基于RISC-V ISA扩展的GPGPUGPGPU系统平台编程框架与工具链指令集硬件架构RISC-V Vector Extension自定义指令GPGPU微架构OpenCL并行编程框架驱动程序编译器连接器、数学函数库、运行时库流水线实现存储系统硬件支持驱动目标研究对象解决方案具体实现OpenCL编程模型workgroup被拆分成warp的形式在CU/SM内执行(1个SM执行1个workgroup)warp:单个SM内在硬件上有多少个线程单个SM最多同时执行8个warp同一warp中,所有线程运行相同的指