跳转至

模拟器使用教程

本项目提供了完善的GPGPU功能模拟器,这套模拟器提供了CUDA运行时以及设备端的Warp级别的功能仿真支持。本教程提供了对模拟器使用方法的详细介绍。

模拟器安装

我们目前支持的操作系统平台为:

  • Ubuntu 18.04

所需工具链包括:

  • gcc 7.5.0
  • g++ 7.5.0
  • GNU Make 4.1
  • CUDA 10.2 Runtime

请参考https://github.com/SJTU-ACA-Lab/blue-porcelain下载项目源码并安装。

运行用户程序

安装模拟器后激活项目环境即可利用仿真的运行时支持CUDA应用在模拟器的载入与运行,这一系列的过程都是对用户透明的,用户可以像在实卡上运行程序一样运行仿真程序。

source setup_environment
./application

集成测试

我们目前提供了基础测试集,包含30个CUDA程序。其中benchmarks/basic包含了15个常见的基础CUDA应用,benchmarks/polybench包含了15个polybench应用,大多是一些线性代数运算。在benchmarks文件夹下make可以编译整个测试集的应用,也可以单独在各个测试下面进行编译运行。

  • 编译整个测试集(在blue-porcelain项目层级下):
cd ./benchmarks
make
  • 运行向量加法测试步骤如下(在blue-porcelain项目层级下):
source setup_environment
cd ./benchmarks/basic/VECTORADD
./VECTORADD

我们还提供了自动化的集成测试,由于脚本使用到了Python,需要保证系统中安装了Python(支持3.6 ~ 3.9版本)。在ci文件夹下,测试脚本会自动执行已编译的应用并打印执行结果和时间。为了使用集成测试,首先需要激活项目的环境,然后在ci目录下运行集成测试脚本。

source setup_environment
cd ./ci
sh run.sh -a

可以通过run.sh脚本的参数来控制模拟器和基准测试集的编译,脚本的可选参数如下:

-core: 设置sm核的数量(默认为1,需要编译模拟器才能重新设置)

-a : 编译整个项目(包括模拟器和测试集)

-b : 只编译模拟器

-bb : 只编译测试集

由于脚本只会反馈已编译应用的结果,所以进行测试前请确保已经编译好所有想执行的测试应用。