本文使用的CPU为 AMD Ryzen 7 5800H with Radeon Graphics
环境是:win10 + wsl + ubuntu16.04
0. 安装gcc、g++、gfortran
这里都是4.6版本,高版本在编译spec2000程序时,可能会出现编译错误,导致一些子测试程序无法完成,需要自己额外添加编译选项,比较麻烦。
由于4.6版本过于古老,当前ubuntu下找不到,不能直接apt-get 下载,先需要在/etc/apt/sources.list的末尾添加如下代码:
deb http://archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://archive.ubuntu.com/ubuntu/ trusty universe
接着,记得更新apt
sudo apt-get update
执行如下命令,就可以成功安装啦:
sudo apt-get install gcc-4.6
sudo apt-get install g++-4.6
sudo apt-get install gfortran-4.6
不过这三个库默认命名都是带有版本号的,为了方便,软连接一下:
cd /usr/bin
# 如果已经装有gcc或者g++,需要先移除原先的软连接
sudo rm gcc
sudo rm g++
# 建立新的软连接
sudo ln -s gcc-4.8 gcc
sudo ln -s g++-4.8 g++
最后,查看是否正确安装:
gcc -v
g++ -v
gfortran -v
1. 网上找到spec2000的文件,并解压(文件名根据下载的进行更改)
tar -xvf spec2000.tar.gz
2. 进入解压后的文件夹
cd spec2000-all
然后执行ls命令,目录内容如下:
3. 安装spec2000程序,执行命令如下
./install.sh
接着,会弹出页面,让用户根据自己电脑的CPU,选择对应的架构,我这里有两个可选项,由于是AMD64,因此选择第二项,输入对应选项名称即可。
4. 修改config下的 x86_63.O3文件
vim config/x86_64.O3.cfg
设置对应的编译选项,这里分别做两个实验:O0无编译优化和O2编译优化。需要修改两次config,然后分两次跑。
如果要生成pdf,还需在该文件的output_format选项后面加上pdf
output_format = asc,config,pdf
5. 执行spec2000程序
bash RUNME.sh
结果默认保存在result/log.001下,可以通过执行给定的showresult脚本进行展示:
./showresult.sh result/log.001
这里给出O2编译选项的结果如下:
Wed Sep 7 12:06:38 CST 2022
[CPU]:
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
AMD Ryzen 7 5800H with Radeon Graphics
[Memory]:
12966772 kB
[Linux]:
Linux LAPTOP-GUTS4L96 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[MAC]:
Ethernet HWaddr 00:15:5d:0c:2d:7b
[Compiler]:
gcc (Ubuntu/Linaro 4.6.4-6ubuntu2) 4.6.4
g++ (Ubuntu/Linaro 4.6.4-6ubuntu2) 4.6.4
GNU Fortran (Ubuntu/Linaro 4.6.4-6ubuntu2) 4.6.4
[Result]:
Success 164.gzip ratio=2936.86, runtime=47.669947
Success 175.vpr ratio=3725.58, runtime=37.578013
Success 176.gcc ratio=7444.05, runtime=14.776910
Success 181.mcf ratio=8485.25, runtime=21.213278
Success 186.crafty ratio=6776.15, runtime=14.757650
Success 197.parser ratio=3985.75, runtime=45.160910
Success 252.eon ratio=8094.96, runtime=16.059366
Success 253.perlbmk ratio=6785.81, runtime=26.525930
Success 254.gap ratio=5765.85, runtime=19.077839
Success 255.vortex ratio=6401.91, runtime=29.678659
Success 256.bzip2 ratio=4088.73, runtime=36.686241
Success 300.twolf ratio=6910.87, runtime=43.409883
Success 168.wupwise ratio=6665.67, runtime=24.003572
Success 171.swim ratio=10456.58, runtime=29.646403
Success 172.mgrid ratio=5604.43, runtime=32.117461
Success 173.applu ratio=7866.67, runtime=26.694895
Success 177.mesa ratio=7990.93, runtime=17.519858
Success 178.galgel ratio=14633.40, runtime=19.817673
Success 179.art ratio=27506.80, runtime=9.452207
Success 183.equake ratio=11428.95, runtime=11.374626
Success 187.facerec ratio=12595.19, runtime=15.085129
Success 188.ammp ratio=7096.28, runtime=31.002175
Success 189.lucas ratio=8418.45, runtime=23.757333
Success 191.fma3d ratio=8100.62, runtime=25.923935
Success 200.sixtrack ratio=3147.62, runtime=34.947089
Success 301.apsi ratio=8031.99, runtime=32.370548
注:
- 如果要生成pdf,最好修改config/x86_63.O3文件中的电脑相关配置,以保证pdf内容的正确性(虽然不影响程序运行结果)
- Ubuntu最优版本12.04,可以直接支持gcc-4.6,无需很多额外操作,但这里使用wsl,并不直接支持这个古老的Ubuntu版本,因此选用Ubuntu16.04,如果使用的是虚拟机,建议直接安装Ubuntu12.04。