上海交大开源GPGPU青花瓷仿真环境搭建和实现分析

上海交大发布的开源GPGPU平台“青花瓷”为国内工程师提供了深入理解GPU软件栈的机会。本文将指导如何在Ubuntu 22.04上搭建青花瓷仿真环境,涉及CUDA运行时、环境配置、编译、测试和项目分析,包括GPGPU结构、青花瓷项目特点、warp调度、线程定位等关键内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

或许因为RISCV ISA规范的开放带来了RISCV快速发展证明了硬件开放也是一条可以尝试的方向,今年8月,上海交大先进计算机体系结构实验室团队对外发布了自研开源GPGPU平台“青花瓷”,试图通过开源这条路缩小和AMD,NVIDIA等产业国际巨头的距离。

GPGPU中文名叫做通用图形处理器,在面对并行任务处理时,CPU 与 GPU 的体系结构设计理念有着根本的区别。CPU 注重通用性来处理各种不同的数据类型,同时也必须支持复杂的控制指令,比如条件转移、分支、循环、逻辑判断及子程序调用等,因此 CPU 微架构的复杂性高,是面向指令执行的高效率而设计的。GPU 最初是针对图形处理领域而设计的。图形运算的特点是大量同类型数据的密集运算,因此 GPU 微架构是面向这种特点的计算而设计的。设计理念的不同导致 CPU 和 GPU 在架构上相差甚远。CPU 内核数量较少,常见的有 4核和 8 核等,而 GPU 则由数以千计的更小、更高效的核心组成。这些核心专为同时处理多任务而设计,因此 GPU 也属于通常所说的众核处理器。
多核 CPU 和众核 GPU 的架构对比如图下图所示。可以看到,CPU 中大部分晶体管用于构建控制电路和存储单元,只有少部分的晶体管来完成实际的运算工作,这使得 CPU 在大规模并行计算能力上极受限制,但更擅长于逻辑控制,能够适应复杂的运算环境。由于 CPU 一般处理的是低延迟任务,所以需要大量如图所示的一级(L1)、二级(L2)、三级(L3)高速缓存(cache)空间来减少访问指令和数据时产生的延迟。GPU 的控制则相对简单,对高速缓存的需求相对较小,所以大部分晶体管可以组成各类专用电路、多条流水线,使得 GPU 的计算能力有了突破性的飞跃。由于图形渲染的高度并行性,使得 GPU 可以通过简单增加并行处理单元和存储器控制单元的方式提高处理能力和存储器带宽。

GPGPU的结构

青花瓷项目对国内工程师融入GPU或者NPU开发平台,了解GPU软件栈应该是有积极意义的。下面我们就根据官方指导来在ubuntu22.04上搭建一个青花瓷的仿真环境。

主机环境

由于只开源了软件部分,硬件部分暂时没有开源,目前软件栈只支持CUDA的运行时,测试集多是AI领域比较热门的模型。所以需要主机安装有支持CUDA的N卡,并正确安装了CUDA的toolkit.

install utilis toools

sudo apt-get install build-essential
sudo apt-get install git bc numdiff

资源链接

开源官网:

总体介绍 - 开源通用计算芯片平台-青花瓷(GPGPU)

项目代码github仓库地址:

https://github.com/SJTU-ACA-Lab/blue-porcelain

下载代码

$ git clone https://github.com/SJTU-ACA-Lab/blue-porcelain.git

hiarachy:

  • driver: Host drivers repository.
  • runtime: Kernel Runtime software.
  • sim: Simulators repository.
  • benchmarks: Benchmarks for testing.
  • ci: Continuous integration scripts.

环境配置:

$ export CUDA_INSTALL_PATH=/usr/local/cuda
$ export PATH=$CUDA_INSTALL_PATH/bin:$PATH

下一步导入环境变量,由于我的主机CUDA版本比较高,所以出现下图中的错误,修改脚本,删掉这里的检查逻辑,让这里不报错即可。

$ source setup_environment

编译

项目顶层目录下,执行 make -s开始编译,编译完成后,没有发现有可执行程序生成,可能这里只是编译了某些库吧,比如cmodel.

Ru

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

papaofdoudou

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

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

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

打赏作者

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

抵扣说明:

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

余额充值