模拟器使用教程
本项目提供了完善的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
: 只编译测试集
由于脚本只会反馈已编译应用的结果,所以进行测试前请确保已经编译好所有想执行的测试应用。