龙芯2F处理器GCC 4.4编译优化探秘(1)


作为Linux平台下最常用的编译器,GCC提供了强大的编译能力和良好的平台通用性,其重要性不言而喻。编译优化是它的一大特点,除了可以对软件代码进行不同程度的分析优化外,GCC还可以根据处理器的结构特性在编译中对代码进行有针对性的编排组合,以更加高效地运行于目标平台。目前,处在最后测试阶段的GCC 4.4加入了针对龙芯处理器的编译优化支持,配套文档中也给出了详细的操作说明。针对这一改进,我们近日进行了一次特别测试,重点研究GCC 4.4为龙芯平台软件环境带来的性能提升。

测试的软件环境基于3个在龙芯平台上比较常见的操作系统构建,分别是Debian、Gentoo与国产的Linux操作系统“憨牛”。前两者是在世界范围内得到广泛应用的Linux发行版,都拥有独立的软件包管理系统和海量的应用软件。它们的软件包管理模式存在差异,Debian为多种硬件架构提供了编译好的二进制包,为最大程度地保证兼容性,MIPS架构的二进制文件采用最基础的MIPS1指令集架构编译;Gentoo则提倡源代码发行的方式,安装软件时对下载的代码进行本地编译。利用上述特性,我们分别用Debian和Gentoo构建了针对MIPS1和针对龙芯2F、o32模式编译的测试环境。而“憨牛”是国内龙芯爱好者以LFS方式制作的纯64位发行版,我们用它作为龙芯2F、n64模式下的测试环境。这些系统都被安装在硬盘的不同分区中,并将内核统一指定为Server模式的2.6.26.5,编译参数采用“-march=loongson2f -mabi=n64 -O3”。为保证结果的一致性,我们选择截止到测试开始前的最新版本“GCC 4.4 snapshot 20080923”作为统一使用的编译器。如无特别标识,所有测试软件均使用“-O2”参数进行编译。

 

为了让测试结果更具普遍性,本次测试的硬件平台也由开发板换成中科龙梦推出的福珑2F-6003迷你电脑。这款产品虽然只有普通光驱的大小,却内置了龙芯2F 800MHz处理器、DDR2-533 512MB 内存和80GB UltraATA 2.5英寸硬盘。板载的Realtek RTL8110SC网络控制器则提供了一个千兆以太网接口,为网络应用做好准备。这款产品配备了一个输出功率为40W的变压器,但在我们的测试中实测功耗从未超过15W。因为低功耗、低噪音等特性,很多用户都将福珑2F-6003当做不掉电的下载机或SOHO服务器使用。


相关内容