/ventus-gpgpu-cpp-simulator

Cycle-accurate C++ & SystemC simulator for the RISC-V GPGPU Ventus

Primary LanguageCMulan Permissive Software License, Version 2MulanPSL-2.0

TODO

endprg时,通过置wait_bran为1来停止该warp的dispatch;在UPDATE_SCORE中notify ev_issue来依旧出发ev_issue_list。这都不太好。


Requirements:

  • GCC version >= 11
  • enable C++20 support
  • to use the latest release of SystemC is highly recommended

Please scroll down for the English version of README.


配置systemc可以参考我的博文(也参考了很多别人的经验,但这篇比较适合本工程)。

主程序目前在 sc-code/sm 中,在sm文件夹下运行【make -j $(nproc) && ./ventus.out --inssrc imem --metafile matadd/matadd.metadata --datafile matadd/matadd.data --numcycle 10000】来编译程序并运行。现在也可以用【make -j $(nproc) && make run】来运行。如果运行报错,可以先尝试【make clean】.

出现Segmentation fault的调试方法:
参考Linux下Segmentation Fault的定位方法linux下不产生core文件的原因
调试步骤(调试完记得把core文件删除,文件太大上传到github会报错):

ulimit -c unlimited
sudo bash -c "echo core.debug > /proc/sys/kernel/core_pattern"
make GPGPU_test_GDB -j $(nproc)
make run
gdb ./ventus.out ./core.debug

To configure systemc, you can refer to my blog post (I also referred to the experience of many others, but this one is more suitable for this project).

The main program is currently in sc-code/sm, run [make -j $(nproc) && ./ventus.out --inssrc imem --metafile matadd/matadd.metadata --datafile matadd/matadd.data --numcycle 10000] to compile the program and get the output under the sm folder.