如何编译 SHOC(可扩展的异构计算基准套件)

Posted by 叉叉敌 on August 11, 2023

什么是 SHOC

可扩展异源计算基准套件(SHOC)是一组基准程序,用于测试系统的性能和稳定性。其最初的重点是其最初的重点是包含图形处理器(GPU)和多核和多核处理器的系统,以及 OpenCL(openclspec)编程标准。

它既可用于集群,也可用于单个主机。

OpenCL 是一个开放标准,用于对各种类型的计算设备进行编程。

设备编程的开放标准。OpenCL 规范描述了一种编程语言。

内核的编程语言,以及用于在支持 OpenCL 的设备上运行的应用编程接口 (API),用于将数据传输到此类设备并在其上执行内核。 内核的应用编程接口(API)。

SHOC 可以验证什么?

稳定测试

SpMV

能效

资源竞争

GPU api 比较

如何编译 SHOC

参考文件:https://github.com/vetter/shoc/blob/master/INSTALL.txt

  • 拉代码 git clone https://github.com/vetter/shoc.git.
  • 进入目录 cd shoc.
  • 执行 ./configure 来配置编译选项。这里可以指定一些参数来运行: --with-cuda, --with-opencl, --with-mpi ,也可以用./configure --help 查看其他的选项。
  • 编译make -j 88 来执行编译。这里的-j参数是指定并行编译的线程数,可以根据自己的机器来设置。
  • 可选, make install 来安装 bin 到指定目录。

下面是我的执行命令:

git clone https://github.com/vetter/shoc.git
cd shoc
# ./configure CPPFLAGS="-I/usr/local/cuda/include" CUDA_CPPFLAGS="-gencode=arch=compute_60,code=sm_60" LIBS="-lcuda -lcudart" LFLAGS="-l/usr/local/cuda/lib64" --with-cuda
./configure CPPFLAGS="-I/usr/local/cuda/include" CUDA_CPPFLAGS="" LIBS="-lcuda -lcudart" LFLAGS="-l/usr/local/cuda/lib64" --with-cuda
make -j 88
make install

可能遇到的问题: https://github.com/vetter/shoc/issues/67 CUDA10.0(不含)之后的版本会出现的问题:编译失败 执行 configure 配置时加入-lcuda -lcudart 参数,指定 cuda 库和 cudart 库。

也可以参考这个教程,shell 已经写好了: https://openbenchmarking.org/innhold/db04416737e558c3510d20be04d2574e63e0a548

如何执行 SHOC

执行:

perl tools/driver.pl -s 1 -d 0 -cuda 来执行测试。这里的-s参数是指定测试的规模,就是节点数量,-d参数是指定测试的设备,-cuda参数是指定测试的类型。

也可以用./bin/shocdirver -h

结果截图

Read more

  1. https://blog.csdn.net/babyfacer/article/details/6989093
  2. https://openbenchmarking.org/test/pts/shoc
  3. https://on-demand.gputechconf.com/gtc/2010/posters/I05-The-Scalable-HeterOgeneous-Computing-(SHOC)-Benchmark-Suite.pdf
  4. https://www.jianshu.com/p/9cd6708246c9 (1) shoc/shoc-manual.tex at master · vetter/shoc · GitHub. https://github.com/vetter/shoc/blob/master/doc/shoc-manual.tex (2) Issues · vetter/shoc · GitHub. https://github.com/vetter/shoc/issues (3) SHOC: The Scalable HeterOgeneous Computing Benchmark Suite. https://usermanual.wiki/Document/shocmanual.432449542.pdf