Vortex GPGPU:基于RISC-V指令集的GPU

论文:《Vortex: Extending the RISC-V ISA for GPGPU and 3D-Graphics Research》 MICRO’21

1 Vortex是什么?

Vortex是一个基于RISC-V指令集扩展实现的GPGPU,并且实现了纹理单元,在FPGA上可以扩展32个核心,200MHz主频性能为25.6 GFlops。其实现结构如下:

2 背景

目前GPGPU的架构研究主要仿真上,但是缺乏开源的硬件实现。

目前开源GPGPU的实现

目前已有的开源GPGPU的模拟器实现有如下:

  • [10] Analyzing CUDA workloads using a detailed GPU simulator. 2009

  • [54] gem5-gpu: A heterogeneous cpu-gpu simulator. 2014

  • [31] Emerald: graphics modeling for SoC systems. 2019

  • [63] Multi2Sim: A simulation framework for CPU-GPU computing. 2012

  • [41] Macsim: A cpu-gpu heterogeneous simulation framework user guide. 2012

  • [23] ATTILA: a cycle-level execution-driven simulator for modern GPU architectures. 2006

以上的研究主要是针对中间语言级别的仿真(如PTX、HSAIL)。

其中:

  • [55] Modeling Modern GPU Applications in gem5. 2020

基于GEM5实现AMD GPU的模拟,能够缩小与真实硬件的差距,但是在包括运行时、能效、可靠性、以及RTL级别的微架构评估方面还很欠缺。

也有一些开源的GPGPU硬件实现:

  • [1] FGPU: An SIMT-architecture for FPGAs. 2016

  • [21] Simty: generalized SIMT execution on RISC-V. In First Workshop on Computer Architecture Research with RISC-V. 2017

  • [16] Nyami: a synthesizable GPU architectural model for general-purpose and graphics-specific workloads. 2015

  • [4] FlexGrip: A soft GPGPU for FPGAs.

  • [17] NyuziRaster: Optimizing rasterizer performance and energy in the Nyuzi open source GPU. 2016

  • [11] Miaow-an open source rtl implementation of a gpgpu. 2015

  • [40] Lightweight SIMT Core Designs for Intelligent 3D Stacked DRAM.

以上的开源硬件实现都缺乏对Cache的实现,并且这些实现中的指令集都是定制或者专有的。

当前实现开源GPGPU的条件

  • 高端FPGA的发展使得实现全功能GPGPU成为可能。

  • 免费、开放可扩展的RISC-V指令集为以较低的成本设计硬件架构提供了一个新的选择,并且其有丰富的软件生态可工具链。

  • 对更高速、更高质量的实时渲染的需求不断增长

面临的挑战

  • GPGPU指令集的虚确定,要适合现代GPU的SIMT执行模型,并且适合FPGA实现。

  • 基于RISC-V指令集的微架构实现。

  • 适合FPGA实现,使资源利用率最大化。

本文的主要贡献:

  • 展示了当前GPGPU指令集的分类方法,并提出了一个涵盖基本的SIMT微架构功能的最小子集。

  • 描述了Vortex的SIMT微架构,纹理单元的实现以及光栅化图形管线的实现

  • 介绍了Votex 的cache实现,基于FPGA的多端口多bank的优化

  • 实现了基于PCIe的FPGA软核

3 指令级实现

Vortex ISA

Vortex扩展了6条指令用来支持GPGPU:

  • wspawn指令:一个PC激活多个wavefront,确保多个实例能够并行的运行。

  • tmc指令:根据thread mask寄存器来使能/停止线程的执行

  • split/join指令:split将mask信息及分支结果压入栈中,join 用来信息出栈。

  • bar指令:进行wavefront的栅栏同步

  • tex指令:用来支持纹理单元的访问

4 微体系结构

Vortex实现了一个标准的五级顺序流水线,并且实现了以下的SIMT组件:

  • hardware wavefront scheduler:包含PC、thread mask寄存器、IPDOM 栈

  • GPRs:对于wavefront中的每个线程的general-purpose-register

  • High-bandwidth caches:线程并行访问的cache

  • Barrier control module:wavefront级别的同步。

5 软件支持

主要支持的OpenCL,基于POCL框架实现。

修改POCL的后端实现:

  • 添加新的设备和编译器支持来支持RISC-V

  • 支持新的Vortex指令

  • 与Vortex运行时系统集成

如何支持图形:

  • 几何处理在Host端,光栅化之后在gpu上运行。

  • 纹理采样通过加速的tex指令实现

  • 编译器:LunarGLASS -> SPIR-V -> LLVM-IR -> Vortex Binary

参考资料:

  • Vortex: Extending the RISC-V ISA for GPGPU and 3D-Graphics Research

开放源码的GPU计算能力可以推到一个新的水平BINGHAMTON,纽约–Binghamton大学的研究人员已经使用一个开源的图形处理器(GPU)的研究。宾汉姆顿大学计算机科学助理教授Timothy Miller Aaron Carpenter和研究生Philip Dexter,与合著者Jeff Bush,有Nyami,一个综合的图形处理器(GPU)的通用图形的特定工作负载的建筑模型。这标志着第一次的团队采取了一个开源的GPU的设计和运行的一系列的实验,看看不同的硬件和软件配置会影响电路的性能。根据Miller的说法,其结果将有助于科学家们做出自己的GPU计算能力和推到一个新的水平。“作为一个研究人员,重要的是要有工具,实事求是地评估新的想法,可能会提高性能,能源效率,或其他处理器架构的挑战,”Miller说。虽然模拟器可以走捷径,一个实际的综合开源处理器不能偷工减料,所以我们可以说,任何实验结果得到特别可靠。”GPU已经存在了大约40年,通常发现在商业视频或图形卡在电脑或游戏机。专门的电路有计算能力,使图像更平滑,更充满活力的屏幕上。最近有一个运动,看看芯片是否可以应用到非图形计算,如算法处理大块数据。 “我们不一定在寻找结果的新颖性,所以我们想创建一个新的工具,然后显示它是如何使用的,”Carpenter说。我希望人们能更有效地在GPU上的实验,为爱好者和研究者,创造未来的GPU更高效的设计。”开源GPU用于他们的研究团队是宾厄姆顿的先河。虽然成千上万的GPU是每年生产的商业化,这是第一个可以修改的爱好者和研究者了解如何变化可能会影响主流芯片。布什,在公司的软件工程总监,是该论文的第一作者。“这是坏的开源社区,GPU厂商都决定保持他们的芯片规格的秘密。这阻止了开源开发人员编写可以利用该硬件的软件,“Miller说。Miller开始在2004个类似的项目,而布什开始工作的nyami 2010。”这使得其他研究者更容易进行他们自己的实验,因为他们不需要重新发明轮子.。随着“开放硬件”社区的贡献,我们可以把更多的创造性的想法,并产生一个越来越好的工具。调查结果的后果可能使处理器更容易为研究人员工作,并探讨不同的设计权衡。Dexter,Miller,Carpenter和布什已经走出了一条新的道路,可能会影响从太空旅行的一切发现心脏手术。“我有一个论文的研究思路列表我们可以探索利用nyuzi [芯片更名],专注于各种性能瓶颈。这个想法是为了寻找那些让nyuzi低效相比其他GPU和解决那些问题研究。我们也可以用nyuzi作为开展研究,不是针对GPU平台,能源效率和可靠性,”Miller说。本文《Nyami:一个综合的GPU通用建筑模型和图形的具体工作量”出现在对系统和软件的性能分析国际研讨会。http://www.binghamton.edu/mpr/news-releases/news-release.html?id=2362--------------------------------------------------------------------------------------------------------NyuziProcessorMicroarchitecture 该项目是一个专为高度并行和GPGPU应用程序设计的开源处理器。 它的灵感来自英特尔的Larrabee,虽然指令集和微架构有很大的不同。处理器运行在Verilog仿真和FPGA上。它是一种现代架构,具有集合关联L1和L2缓存,细粒度硬件多线程,流水线SIMD浮点和整数执行单元,并支持多个缓存一致性内核。它包括基于LLVM的C/C 编译器。GPU已经被证明对于具有大量内在并行性的应用程序是有用的,如图像处理和机器学习。 然而,GPU具有缺乏灵活性的高度约束的编程模型。 这个项目是一个混合架构,结合GPU架构概念,如宽SIMD和硬件多线程与通用指令集。 硬件实现的重点更多在于计算而不是图形,缺乏固定功能的图形硬件。 它能够作为协处理器或独立处理器操作。这已使用Nangate 45nm库合成。每个核心的估计:面积1.84 mm2,功率329 mW,最大频率671 Mhz。 标签:Nyuzi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马师傅哈哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值