当前位置:首页 > 报告详情

09-于芳菲.pdf

上传人: 山哈 编号:725364 2025-07-04 21页 1.52MB

1、清华大学集成电路学院“乘影”:开源通用GPU指令集架构介绍于芳菲向量处理器与GPGPU 典型向量处理器与典型SIMT架构在计算、访存、分支、任务控制、寄存器堆较为相似 动机:将向量lane与GPGPU thread一一对应*图片来自计算机体系结构 量化研究方法计算单元计算单元访存单元访存单元分支控制分支控制任务控制任务控制寄存器堆寄存器堆整体结构整体结构VectorVector LaneGather/ScatterMask RegistersControl ProcessorVector RegistersVector ProcessorGPGPUSIMD LaneGlobal load/st

2、orePredicate RegistersThread Block SchedulerSIMD Lane RegistersMultithreaded SIMD Processor“乘影”GPGPU指令集-设计概览 指令集:RISC-V+向量扩展 GPGPU与向量处理器的结构有许多相似之处 大部分GPGPU所需指令可以由RISC-V向量扩展集提供 GPGPU额外的特性和功能需求:线程束的分支和同步、多线程束执行 按OpenCL模型要求,线程在运行时能够获取自身索引号 更高的指令表达能力,以提升执行效率扩展扩展指令类型指令类型乘影乘影V(zve32f)Configuration-Setting

3、部分支持Loads and Stores支持Integer Arithmetic支持Floating-Point支持fp32Fix-Point参照需求添加Reduction、Mask、Permutation参照需求添加I支持M支持A支持zicsr支持F(zfinx)支持“乘影”GPGPU指令集-扩展方案 指令编码空间有限?官方给出的扩展空间仅包括4个opcode7 乘影GPGPU采用RISC-V 32-bit指令字作为基础 舍弃RISC-V 16-bit指令,释放低2位作为GPGPU的指令编码空间 RISC-V 32-bit指令bbb空间111之外的部分也可以作为扩展指令空间 GPGPU 64

4、-bit指令分两种实现方式:作为RISC-V 32-bit指令的前缀,实现对RISC-V现有指令的兼容 利用16-bit释放出来的00,10,01实现完全自定义的32-bit和64-bit GPGPU指令 以上方法既可以兼容RISC-V 32-bit指令字,同时可以高效的利用指令字空间构建GPGPU指令集“乘影”GPGPU指令集 标量指令 覆盖范围:RV32IMA_zicsr_zfinx RV64 I:基本指令 整数基本运算、访存、线程束整体分支、函数调用*未支持ecall和ebreak指令 M:乘法指令 A:原子指令 约束多线程对同一地址的读写操作,描述的是单个线程行为。zicsr:CSR寄

5、存器操作 线程和线程块索引在启动线程束前存入特定CSR以供读取 zfinx:单精度浮点指令 不设标量浮点寄存器,标量浮点数同样存入整数寄存器 RV64:更改了部分指令语义,支持64位操作“乘影”GPGPU指令集 向量指令 在V扩展的zve32f子集上进行裁剪与修改,使之符合SIMT编程模型:支持基本运算和访存指令,保证线程标量操作均存在向量版本指令 GPGPU计算方式特性考量:未支持元素数目和宽度的变长特性,固定元素数目32+宽度32位 未支持向量元素间数据交换(gather,scatter,shuffle等)写回数据位宽小于32时(如掩码计算、读字节),仍采用32位对齐方式写回“乘影”GPG

6、PU指令集 寄存器堆 每个warp有64个32bit sGPR,256个1024bit vGPR(num_thread=32时)。标量寄存器由同一warp内的线程共享。特殊寄存器:x0为0寄存器,x1为返回pc寄存器,x2为栈指针寄存器、x3为shared memory基址,x4为private memory基址 CSR:添加warp id、workgroup id、kernel metadata baseaddr等 ABI:约定8个sGPR和32个vGPR为函数参数,16个vGPR为返回值 不同线程层次对应不同存储层次:warp地址空间:PrivateMemory(栈)workgroup地址

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了清华大学集成电路学院提出的“乘影”GPGPU指令集架构。该架构基于RISC-V指令集,并进行了向量扩展以适应GPGPU的需求。以下是关键点: 1. 结构相似:GPGPU与向量处理器的结构相似,大部分GPGPU指令可由RISC-V向量扩展提供。 2. 指令集扩展:采用RISC-V 32-bit指令字,并释放低2位作为GPGPU指令编码空间,同时利用32-bit和64-bit指令扩展。 3. 指令类型:包括标量和向量指令,覆盖整数、浮点、原子操作等,并添加特定于GPGPU的指令如线程束分支和同步。 4. 寄存器堆:每个warp有64个32-bit sGPR和256个1024-bit vGPR,特殊寄存器和CSR用于存储线程索引和内存基址。 5. 存储模型:包括私有、共享和全局内存空间,采用Sv32/Sv39虚拟内存规范。 6. 自定义指令:包括线程束分支与汇合、线程同步退出、额外访存指令、前缀指令等,以支持SIMT编程模型和张量计算。 7. 缓存一致性:部署了释放连贯性指导的缓存一致性(RCC)以优化缓存性能。 综上,“乘影”GPGPU指令集架构在RISC-V基础上扩展,以提升GPGPU的计算效率和编程模型支持。
"乘影"架构的优势何在? "乘影" GPGPU如何创新? "乘影"与主流GPU有何不同?
客服
商务合作
小程序
服务号
折叠