GPGPU-SIM 使用篇

GPGPU-SIM 使用篇

什么是GPGPU-SIM

  • 简单地说,GPGPU-SIM是一款仿真器,可以在CPU上仿真执行CUDA程序
  • 主页
  • 使用手册
  • github

如何优雅地安装GPGPU-SIM

依赖=>Spack

  • GPGPU-SIM的手动安装过程较为复杂,很容易因为依赖导致安装失败

  • 强烈推荐通过Spack安装

  • 这里介绍参考上面的安装方法

    • 在安装好spack后,运行命令spack create gpgpu-sim 并修改内容为package.py
    • 运行命令spack install gpgpu-sim%[email protected] ^ mesa~llvm
  • docker 安装

    dock pull gtyinstinct/gpgpu-sim:spack
    

如何优雅地使用GPGPU-SIM

依赖=>通过spack安装GPGPU-SIM

GPGPU-SIM仿真需要在运行目录下存在config文件,且每次运行过后都会有很多其他文件生成,导致文件混乱

单次仿真

  • 为了解决上述问题,我写了几个脚本来在GPGPU-SIM上仿真程序

  • 例如,你想使用RTX2060配置仿真,你的仿真程序为test.cu,你的Spack上CUDA版本为11.7,你需要通过nvcc编译仿真程序,你的Spack上GPGPU-SIM为[email protected],那么你需要在run.sh中修改变量NAME=testCONFIG=RTX2060[email protected]IFBUILD=1CUDAVERSION=11.7,将test.cu放到${SRC}目录下,并在终端中输入如下命令

    或者你也可以将编译好的程序放到${BIN}目录下,并修改IFBUILD=0

    # pwd 
    # **/SimpleUseGpgpuSim  确保当前目录在SimpleUseGpgpuSim
    . run.sh
    
  • 此时文件(your_dir)目录结构为

    • bin 目录存放编译好或提前放置的可执行程序
    • sim 目录存放每次仿真后GPGPU-SIM自动输出的文件和指定的配置文件
    • out 目录存放每次仿真后GPGPU-SIM的输出信息
    |-- run.sh
    |-- src
    	|-- test.cu
    |-- bin
    	|-- test
    |-- sim
    	|-- [email protected]
    		|-- ...
    |-- out
    	|-- [email protected]
    
  • 变量的使用详见run.sh中的注释

  • run.sh

批量仿真

  • 批量仿真基于单次仿真

  • 假如你想仿真test1.cutest2.cu程序,并希望使用GPGPU-SIM4.0.1版本仿真(需要Spack中存在以上版本),仿真配置为RTX2060QV100,修改好的变量见batch_run.sh,并在终端输入如下命令

    # pwd 
    # **/SimpleUseGpgpuSim  确保当前目录在SimpleUseGpgpuSim
    . batch_run.sh
    
  • 得到的文件目录结构和单次仿真一致

  • batch_run.sh

  • run_each.sh

如何优雅地构建GPGPU-SIM

依赖=>通过spack安装GPGPU-SIM

例如,你修改了GPGPU-SIM的源码,那么怎么通过Spack重新构建GPGPU-SIM?

  • 可以通过syn_gpgpu_sim.sh完成一键重新构建

  • 例如,你修改的GPGPU-SIM的路径为~/gpgpu-sim,在syn_gpgpu_sim.sh修改GPGPUSIM_DIR=~/gpgpu-sim,并在终端输入

     # pwd
     # **/SimpleUseGpgpuSim  确保当前目录在SimpleUseGpgpuSim
     . syn_gpgpu_sim.sh
    

    注意需要运行命令 spack edit gpgpu-sim并修改为package.py

  • 变量的使用详见syn_gpgpu_sim.sh中的注释

  • syn_gpgpu_sim.sh

你可能感兴趣的:(计算机基础,其他)