当前位置: 首页 > 范文大全 > 公文范文 >

基于龙芯2号处理器的SPEC,2000测试程序的分析与应用

时间:2022-03-19 13:18:12  浏览次数:

摘 要:为了对我国自主研发的龙芯2号处理器的性能进行评价,获取龙芯2号处理器性能的客观数据。提出一种针对龙芯2号处理器的采用由国际标准性能评测组织开发的、专门用于评价CPU性能的SPEC CPU 2000测试程序的测试和分析的方法。该方法包括在Linux操作系统下安装和配置SPEC 2000程序的要点和使用SPEC 2000程序对龙芯2E处理器进行性能测试的具体流程,还包括对SPEC 2000程序运行结果的分析。目前该方法已经应用,效果良好。

关键词:龙芯2号; 处理器; SPEC 2000; 性能测试

中图分类号:TN710-34; TP206文献标识码:A

文章编号:1004-373X(2010)17-0202-03

Analysis and Application of SPEC 2000 Based on Loongson-II CPU

WANG Quan-sheng

(Air Force Military Representative Office in Yangzhou Area, Yangzhou 225003, China)

Abstract: In order to evaluate the performance of Loongson-II(developed by China), and obtain its objective data, a method for Loongson-II′s test is proposed, which uses SPEC CPU 2000 test program developed by the International Standards Organization for the performance evaluation of CPU. The method consists of the key points of installing and configuring SPEC 2000 under Linux operating system, and the process of testing Loongson-II′s performance by the SPEC 2000 programs, and the analysis of the running results. Currently this method has been applied, and has good effect.

Keywords: Loongson-II; CPU; SPEC 2000; performance test

0 引 言

自主研发高性能处理器芯片对于经济和国家安全方面具有重要意义。龙芯系列处理器的成功研制填补了我国自主研发高性能通用处理器的空白,龙芯2号采用先进的结构设计技术,已跻身于世界一流处理器的行列。SPEC CPU 2000是SPEC(标准性能评测组织)开发的专门用于评价CPU(中央处理器)性能的一套基准程序,在CPU性能测试领域具有很大的权威性。

当前,在许多的实际应用中,需要对处理器的性能进行评估,以确定处理器是否可以达到应用的要求,这种评估的结果需要客观和准确,这样才具备可信性。当前针对主流的处理器如Intel的X86处理器的测试方法已经有很多,而且这些方法也普遍的经过验证。针对国产龙芯处理器的测试方法还比较的缺乏,因此有必要寻找一种可以客观评价国产处理器的测试方法。

1 龙芯2E结构分析

龙芯系列处理器是中国科学院计算技术研究所研制的高性能通用处理器。

龙芯2E处理器[1]是一款实现64位MIPS Ⅲ指令集[2]的通用RISC处理器,采用了4发射超标量超流水结构,实现了先进的转移猜测、寄存器重命名、动态调度等乱序执行技术,以及非阻塞的高速缓存和取数操作猜测执行等动态存储访问机制。

龙芯2E的一级Cache由64 KB的指令Cache和64 KB的数据Cache组成,片上二级Cache大小为512 KB,均采用四路组相联的结构。龙芯2E的基本流水线包括取指、预译码、译码、寄存器重命名、调度、发射、读寄存器、执行、提交等9级。龙芯2E先进的存储系统设计可以有效地提高流水线的效率。

2 SPEC 2000测试程序概述

SPEC CPU 2000是SPEC(标准性能评测组织)开发的专门用于评价CPU(中央处理器)性能的一套基准程序,主要应用于桌面型[3]和服务器型CPU的性能评价,其目的是比较不同类型CPU的整点运算和浮点运算性能。SPEC是由计算机业界几十个芯片厂商、计算机系统厂商、研究团体等构成的非营利组织,其开发的SPEC CPU 2000在CPU的性能评价领域具有很高的权威性。

3 在龙芯2E上使用SPEC 2000进行测试

SPEC 2000由两套基准程序组成,分别测试CPU的整型运算性能和浮点运算性能。目前龙芯平台上运行的操作系统以开源Linux为主,因此SPEC 2000的运行需要GCC和Gfortran编译器的支持[4]。

3.1 SPEC的安装

首先从软件包中解压tar-jxvf SPEC 2000.tar.bz2,

进入SPEC 2000根目录运行install.sh进行安装,

安装完成后运行./shrc启动SPEC程序,

最后敲入命令runspec –V,如能正确显示SPEC工具版本信息,则说明安装成功。

3.2 SPEC的运行

SPEC CPU 2000基准主要由基准程序源文件、脚本管理程序、配置文件以及测试结果文件组成。管理程序中最重要的是runspec脚本管理程序,通过它用户可以编译、运行和维护基准程序。典型的runspec用法是:

runspec –c default.cfg int

其中:default.cfg为配置文件;int则表示运行所有的整型基准程序。

3.3 配置文件

配置文件中包含了许多信息,其中最为重要的是编译基准程序的指令参数,例如编译时所要用到的编译器,编译优化选项等,设置如下:

runspec的运行参数:

output_format = asc,ps 设置输出文件的格式

tune = base 设置基本测试或是峰值测试

runlist = fp设置运行的基准程序列表

specmake编译参数:

CC=gcc 指定C编译器

FC=gfortran指定Fortran编译器

OPTIMIZE = -O2 设置编译时的优化选项

被测系统软硬件配置描述:

est_date=2009-06-09

hw_model = Loongson 2E

sw_os = Debian

3.4 MD5码的生成

为了保证测试结果的公正性,测试中采用了数字签名技术[5]。即在编译和运行测试程序时,对测试结果进行校验,从而保证测试结果是从各个基准程序中获得,没有经过人工篡改。运行成功后在配置文件末尾将自动生成以“MD5”开头的一段代码。

3.5 基准程序描述

SPEC2000基准程序存放在/spec2000/benchmark目录中,其中cint2000目录存放了12个整形基准程序,cep2000目录存放了14个浮点基准程序。SPEC2000并没有完全开放其源代码,而是开放了其基准程序的代码,因此运行runspec命令时需要针对基准程序进行编译,而编译规则只能在配置文件中设定。

SPEC 2000中的基准程序都是从实际应用程序中提取出来的,大多由C语言和Fortran语言编写,如表1,表2所示。

虽然基准程序的设计来源于真实的应用程序(如gzip和bzip2是Linux系统下的通用压缩程序,gcc是Linux的默认编译器),但考虑到其可移植性以及平台之间的可比较性[6],基准程序经过了一些改动,与实际的应用程序略有不同,兼顾了真实性与通用性。

表1 SPEC 2000整形基准程序描述

基准程序名称语言整形运算测试基准程序描述

164.gzipC数据压缩

175.vprCFPGA电路分布和路由

176.gccCC语言编译器

181.mcfC组合优化

186.craftyC棋类游戏

197.parserC自然语言处理

252.eonC++计算可视化

253.perlbmkCPerl语言

254.gapC群论解释器

255.vortexC面向对象数据库

256.bzip2C数据压缩

300.twolfC布局和路由仿真

表2 SPEC 2000浮点基准程序描述

基准程序名称语言浮点运算测试基准程序描述

168.wupwiseF77量子色彩动力学

171.swimF77浅水模型

172.mgridF77多网格方法求解3D位势场

173.appluF77抛物/椭圆偏微方程

177.mesaC3D图形库

178.galgelF90流体动力学

179.artC神经网络模拟、自适应推理

183.equakeC有限元模拟、地震模型

187.facerecF90计算机视觉,识别人像

188.ammpC计算化学

189.1ucasF90数论、质数测试

191.fma3dF77有限元碰撞模拟

200.sixtrackF77离子加速器模拟

301.apsiF77大气环境问题

3.6 测试结果的生成

SPEC 2000能够生成多种格式的测试结果报表,包括asc,ps,raw,pdf,html等格式,报表所在目录为/spec2000/result。

整形和浮点性能测试结果分别如表3和表4所示。其中Reference Time表示参考时间,Base Runtime表示实际运行时间,Base Ratio表示比值。其综合得分为206和168分,是各项基准程序得分的几何平均值,计算公式如下:

SPECint/fp = GEOMEAN(reftime/runtime*100)

表3 SPEC 2000整形性能测试结果

基准程序Reference Time /sBaseRuntime /sBaseRatio

164.gzip1 400748187

175.vpr1 400759184

176.gcc1 100495222

181.mcf1 800900200

186.crafty1 000436229

197.parser1 8001069168

252.eon1 300515252

253.perlbmk1 800780231

254.gap1 100552199

255.vortex1 900987192

256.bzip21 500836179

300.twolf3 0001192252

表4 SPEC 2000浮点性能测试结果

基准程序ReferenceTime /sBaseRuntime /sBaseRatio

168.wupwise1 600996161

171.swim3 1001 727180

172.mgrid1 8001 585114

173.applu2 1001 699124

177.mesa1 400491285

178.galgel2 9002 360123

179.art2 6001 215214

183.equake1 300692192

187.facerec1 9001 809105

188.ammp2 2001 192185

189.1ucas2 0001 092183

191.fma3d2 1002 52383.2

200.sixtrack1 100912121

301.apsi2 6001 617161

4 结 语

目前,龙芯处理器有三个系列处于并行研发中。龙芯1号处理器系列主要面向嵌入式应用,龙芯2号超标量处理器系列主要面向桌面应用,龙芯3号多核处理器系列主要面向服务器和高性能机应用。随着龙芯各系列处理器的不断研制和发展,如何客观评价CPU的性能也逐渐将成为重要的研究课题。本文以SPEC 2000为例,介绍了在Linux操作系统下对龙芯2E处理器进行性能测试的一套方法,对于通用CPU性能的评价具有一定的现实意义。

龙芯处理器作为我国自主研发的高性能通用处理器,已渗入到嵌入式领域、桌面应用领域以及高性能服务器领域,必将与Intel、AMD等国际知名CPU生产厂商全面抗衡。因此对CPU性能进行客观、全面的测试不仅可以衡量我国的CPU研制水平,也能够通过测试比较、总结出龙芯的优势和不足。相信随着龙芯平台性能的不断提高和周围软硬件环境的不断完善,龙芯系列处理器的市场竞争力会越来越强,这对于我国形成有自主知识产权的计算机产业具有重要意义。

参考文献

[1]中国科学院计算技术研究所.龙芯2E处理器数据手册[M].北京:中国科学院计算技术研究所,2006.

[2]MIPS Technologies Inc.. MIPS R10000 microprocessor user′s Manual[M].Mountain View, California: MIPS Technologies Inc., 1996.

[3]吴俊峰,齐伟民,戴桂兰,等.Linux桌面操作系统稳定性测试[J].计算机工程,2007(7):50-52.

[4]STALLMAN R M. GNU compiler collection internals[EB/OL]. [2003-06-22]. http://gcc.gnu.org.

[5]STEVENS W Richard. Advanced programming in the unix environment[M/OL]. 2nd ed. [2009-08-17]. .cn/qkpdf/moet/moet201017/moet20101762-1.pdf" style="color:red" target="_blank">原版全文 推荐访问: 处理器 龙芯 测试 程序 分析