1、RISC-V V 扩展软硬一体优化提升应用性能芯来科技 胡进Nuclei Technology芯来矢量计算单元-Nuclei VPU2023/9/17Confidential 2023 Nuclei.All Rights Reserved.2 基于Verilog的代码设计,PPA拥有较大的优势,易于SoC集成 高主频,可匹配主核CPU 强大的算力以及灵活的可配置选项 实现VLM Port&Vector Store Buffer,进一步提升VPU 访存能力 IOCP 端口方便整合外部VPU 单元芯来900 Series Vector 扩展指令实现特点2023/9/17Confidential 2
2、023 Nuclei.All Rights Reserved.3芯来的900系列都支持Vector扩展指令且可配置,包括RV32 N900 和RV64 的NX900/UX900 都按Vector version1.0 实现,其实现的框图和特色如下:Vector 指令分为三个Queue:常见运算指令;非常见指令;Ld/St 参数可配置 支持1.0 定义的所有Ld/St 指令 支持Vector Chaining 支持 8/16/32/64 整数;8/16/32/64 定点;16/32/64 浮点以及 BF16Nuclei VPU 灵活可配置2023/9/17Confidential 2022 Nu
3、clei.All Rights Reserved.4Nuclei VPU 进一步可配置,以满足用户不同场景的需要:P0P1128VLEN=128,DLEN=64VLEN=128,DLEN=128256VLEN=256,DLEN=128VLEN=256,DLEN=256512VLEN=512,DLEN=256VLEN=512,DLEN=512P0配置适合访存/运算=2 的运算场景,比如FFT;P1 配置适合访存/运算 2 的场景,比如矩阵乘。不同配置的频率和面积的数据如下:020040060080001600vlen128_p0vlen128_p1vlen256_p0vle
4、n256_p1vlen512_p0vlen512_p1Freq(MHz)05000000002000000vlen128_p0vlen128_p1vlen256_p0vlen256_p1vlen512_p0vlen512_p1Area(um2)tsmc28_hpcp_9t_ssg0p81vm40c_ccs(rvt)1500MHz900系列VLM Port2023/9/17Confidential 2023 Nuclei.All Rights Reserved.5LSUD-Cache/DLMVPULSUVPU EXE UnitSoC Component/Accelerato
5、r/MemMemVector Local Memory Port(VLM):和主核LSU共享memory port性能提升需求可以配置单独VLM portVLM port可单独连接加速器及memoryVector Instruction Dispatch UnitMem PortVLM Port0246850482048RVV?FFT?no?optno?optvpu(VLEN=128)vpu(VLEN=128)vpu(VLEN=512)vpu(VLEN=512)NUCLEI?VPU?2023/9/17Confidential 2022 Nuclei.
6、All Rights Reserved.600708090(128,?32)(128,?32)(256,?64)(256,?64)(512,?128)(512,?128)(1024,?128)(1024,?128)RVV?CONVno?optno?optvpu(VLEN=128)vpu(VLEN=128)vpu(VLEN=512)vpu(VLEN=512)051015202530(128,?32)(128,?32)(256,?64)(256,?64)(512,?128)(512,?128)(1024,?128)(1024,?128)RVV?FIRno?optno?optv
7、pu(VLEN=128)vpu(VLEN=128)vpu(VLEN=512)vpu(VLEN=512)0016x1632x3264x64128x128RVV?GEMMno?optno?optvpu(VLEN=128)vpu(VLEN=128)vpu(VLEN=512)vpu(VLEN=512)y?:?X?:?y?:?X?:?y?:?X?:?y?:?X?:?NUCLEI?VPU?2023/9/17Confidential 2022 Nuclei.All Rights Reserved.7111111111.12108.0912.4817.0930.5615.51404.43
8、395.19429.2856.1107.5657.830500300350400450sincos1/xsqrtexplog几个超越函数的RVV优化no optvpu(VLEN=128)vpu(VLEN=512)2023/9/17Confidential 2022 Nuclei.All Rights Reserved.8NUCLEI?VPU?Store?Buffer?00.511.522.533.5basevstore bufferNuclei VPU Store BufferVector Store BufferVector StoreVector LoadLoad指令
9、可以bypass更早的Store指令Vector StoreVector StoreVector LoadNUCLEI 900 IOCP方便整合外部VPU2023/9/17Confidential 2023 Nuclei.All Rights Reserved.900 Cluster WrapperCluster Debug ModuleJTAG/cJTAGCluster Interrupt ModuleECLIC/PLICUX9009UX90016-ways Cluster CacheIO Coherence Port(IOCP):保障加速器与CPU的缓存一致性读取:从Core的缓存读取数据如果Miss则去系统级缓存读取存写:Invalidate每个Core的缓存数据存写到系统级缓存灵活配置,接口数量可选方便整合外部加速器、VPU等UX900UX900Nuclei Bus FabricNuclei NAcc(NPU)IOCP PortTHANK YOU