-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
checkpoint的生成 #16
Comments
|
我想用riscv64-nemu-interpreter的--simpoint-profile来生成cpu2006某个测试项的BBV,比如400.perlbench,基于linux编译完成后用objcopy生成了bin文件,但是该测试项执行时后面会跟参数,cpu2006的测试我采用的和你们一样的方法,单独编译执行,不是用runspec指令,那我生成perlbench.bin后怎么写这条生成BBV的指令,perlbench执行需要的参数怎么添加进去 |
针对第一条,确认一下,我的400.perlbench基于Linux生成的可执行文件,是可以用objcopy直接从该可执行文件转换来的吗 |
Most SPEC benchmarks depend on *nix environment. Bare metal environment is not enough for them. So you have to run them in Linux. |
能针对我上面的两个问题具体回答吗 |
我就是在直接回答你啊。 跟你说了,裸机跑不起来perlbench,因为裸机没有运行时。 “perlbench执行需要的参数怎么添加进去?” 就算传进去了又怎么样?perlbench要用系统调用啊,你去给NEMU挨个实现系统调用?再虚拟一个文件系统? |
那我这么问吧,可以用riscv64-nemu-interpreter生成cpu2006中400.perlbench的BBV文件吗 |
那这个400.perlbench的workload.bin是怎么生成的 |
这个400.perlbench的workload.bin是bbl + linux + perlbench 需要你自己去构建 |
这个workload.bin 我每测一个测试项都要重新生成一次,但里面除了具体的测试项还包含bbl+linux 也就是说每生成一个测试项的BBV,执行一次riscv64-nemu-interpreter workload.bin,每次的执行中bbl+linux都跟着跑了一遍? |
连接中文档介绍的bbl.bin和Checkpoint的生成.md文档中“workload (非 可执行文件格式,需使用 objcopy 命令进行处理)”的workload是一个东西吗 |
NEMU称呼的workload为全系统的内存镜像,需要自己用objcopy制作成binary以便加载入内存中等待启动 |
|
emu_defconfig menuconfig fpga_defconfig这三个config分别是配置什么的 |
这三个其中有一个不是config,这是编译linux的基本知识,请自行了解 |
我可以这样理解吗,如果用emu_defconfig,则linux自启动的配置在initramfs-emu.txt文件里,如果使用fpga_defconfig,则linux自启动的配置在initramfs-autorun.txt文件里? |
是不同的工具链,请参考https://xiangshan-doc.readthedocs.io/zh_CN/latest/compiler/gnu_toolchain/ 另外,请到XiangShan主repo下进行提问,请勿在doc中提问技术问题 |
该问题中我问的时前两个riscv64-linux-gnu-,riscv64-unknown-linux-gnu-,你给的链接是后两个。 |
你问的一些问题不是香山specific的问题,而是通用问题。这些问题你应该自己去搜索,网上有现成答案,我们没有义务给这些通用问题做QA。 例如,这个问题:
再例如
|
针对后一个问题,根据我搜索的结果,unknown-linux-gnu和linux-gnu应该没有什么区别:https://unix.stackexchange.com/questions/206410/why-gcc-show-unknown-in-target-x86-64-unknown-linux-gnu-in-arch-linux 这个答案也说明,这个问题不是xiangshan specific的,甚至不是RISC-V specific的,并且是在互联网上存在现成答案的。 |
原因是其中的
这里指定成两个工具链的原因是,香山相关仓库以及应用中有些编译指定了riscv64-linux-gnu-工具链,另一些指定了riscv64-unknown-linux-gnu-,因此在这里说明了两个工具链以方便一键编译各个应用,实际上你软链接他们两个为同一个工具链也没有问题。 |
我只是不确认,因为你们的工具链有的是自己编译出来的,和通版有区别,为避免这方面的误解我觉得我还是问一下比较好。 |
社区应该是用来反馈那些真实存在的问题, 而且需要给出确切的证据证明问题的存在. 你这个问题纯粹是你自己不想动手, 所以找社区开发者来问: 你完全可以自己试着跑, 跑出错误之后尝试自己解决, 实在解决不了才带着错误来提问. 比如工具链的版本, 你就试一下, 一个错了换另一个, 两个都错再来问. 你说"问一下比较好", 也只是说明你不想花时间去自己解决这个问题. 另外, 不要把开源社区当做你学习的课堂, 社区开发者不是你的老师, 你的某些提问不仅不能给社区带来价值, 而且你也并没有为这些提问向社区开发者支付任何报酬, 大家没有义务教你学习. 基础不牢固, 就先自己补好功课再进社区. |
checkpoint的生成中,该“Checkpoint的生成.md文件”文档中采用riscv64-nemu-interpreter的--simpoint-profile来生成用于simpoint的BBV文件,
riscv64-nemu-interpreter workload.bin -D /home/user/spec_cpt -w workloadName -C run_spec -b --simpoint-profile --interval 100000000
1.该命令行中workload.bin是可执行文件吗,虽然后缀是bin,应该是类似elf的该执行文件吧
2.如果该可执行文件执行时需要后面跟输入参数,如一个文件,该怎么添加参数,如cpu2006中的某一个测试项,
这个bin文件使用OBJCOPY从可执行文件生成的吗
The text was updated successfully, but these errors were encountered: