Difference between revisions of "Supporting Architectures above armv5tel"
Mjeamiguel (talk | contribs) (→Project Details) |
Mjeamiguel (talk | contribs) (→Project Plan) |
||
Line 67: | Line 67: | ||
The goal of this release is to run a benchmark software named [http://en.wikipedia.org/wiki/Dhrystone Dhrystone] on <code>cdot-beagleXM-0-3</code> and record the results. Three (3) runs are required: '''No optimization''', '''Optimized for armv5tel''', and '''Optimized for armv7'''. Dhrystone is chosen as the benchmark software mainly, to test the general system performance of <code>cdot-beagleXM-0-3</code> and to test how much performance gain can be expected from optimizing a program. Other reasons include: | The goal of this release is to run a benchmark software named [http://en.wikipedia.org/wiki/Dhrystone Dhrystone] on <code>cdot-beagleXM-0-3</code> and record the results. Three (3) runs are required: '''No optimization''', '''Optimized for armv5tel''', and '''Optimized for armv7'''. Dhrystone is chosen as the benchmark software mainly, to test the general system performance of <code>cdot-beagleXM-0-3</code> and to test how much performance gain can be expected from optimizing a program. Other reasons include: | ||
− | + | <blockquote> | |
<b><font style="font-size:100%">Reasons for using Dhrystone</font></b> | <b><font style="font-size:100%">Reasons for using Dhrystone</font></b> | ||
*ARM® recognizes the program and uses it as a performance attribute of their processors. | *ARM® recognizes the program and uses it as a performance attribute of their processors. | ||
Line 73: | Line 73: | ||
*Dhrystone numbers reflect the performance of the C compiler and libraries more so than the performance of the processor itself. (considered as a weakness of the program) | *Dhrystone numbers reflect the performance of the C compiler and libraries more so than the performance of the processor itself. (considered as a weakness of the program) | ||
*Check if armv7 optimization options and armv5tel optimization options differ significantly in system performance boost | *Check if armv7 optimization options and armv5tel optimization options differ significantly in system performance boost | ||
− | + | </blockquote> | |
'''Test Result:''' | '''Test Result:''' |
Revision as of 22:59, 13 December 2010
Contents
Project Name
Supporting Architectures Above armv5tel
Project Description
The armv5tel architecture version is supported by some common devices such as the Marvell Feroceon processors used in most plug computers. However, later versions of the architecture support advanced features, and using armv5tel code on those processors may result in suboptimal performance.
This project will research ways that Fedora-ARM could support higher processor versions effectively without recompiling the entire Fedora package universe -- for example, by providing an armv7 + hardfp glibc and kernel. This involves performance testing across multiple devices.
Initial contacts: ctyler, PaulW
Project Leader(s)
Project Contributor(s)
IRC:
#ubuntu-arm (persia)
#gentoo-embedded (solar and steev_)
Project Details
This project aims to test the significance of technologies that exist in ARMv7 architecture by conducting different benchmark techniques and compiler optimisation. This project covers performance comparison between ARMv5 and ARMv7. Results can help the Fedora-ARM community decide on how to go about with the compilation of the fedora universe on ARMv7 devices.
ARMv7 Technologies:
There are currently 2 ARMv7 (beagleboard & beagleboard XM) builders in the Fedora ARM farm. These builders are running builds on ARMv5tel architecture which means optimum performance is not achieved.
cdot-beagleboardXM-0-3 SPECIFICATIONS
beagleboardXM specific
beagleboardXM hardware page
cat /proc/version
Linux version 2.6.32 (ubuntu@ip-10-204-115-71) (gcc version 4.3.3 (GCC) ) #3 PREEMPT Wed Aug 18 15:53:03 UTC 2010
cat /proc/cpuinfo
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 515.72
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc08
CPU revision : 2
Hardware : OMAP3 Beagle Board
Revision : 0020
Serial : 0000000000000000
cat /proc/meminfo
MemTotal: 498716 kB
Project Plan
Goals for each release:
0.1 Optimize and run a benchmark program specifically designed to make use of glibc
Any packages compiled for the beagleboards can be installed without optimization. So far, in the case of cdot-beagleXM-0-3
packages are compiled without it. Without optimizations, software installed in a system can only run on optimal performance. In order to make use of ARMv7 architecture features, editing the CFLAGS
to use arm
optimization options will let the compiler attempt to improve the performance and/or code size of the program; resulting in a more efficient/faster system.
The goal of this release is to run a benchmark software named Dhrystone on cdot-beagleXM-0-3
and record the results. Three (3) runs are required: No optimization, Optimized for armv5tel, and Optimized for armv7. Dhrystone is chosen as the benchmark software mainly, to test the general system performance of cdot-beagleXM-0-3
and to test how much performance gain can be expected from optimizing a program. Other reasons include:
Reasons for using Dhrystone
- ARM® recognizes the program and uses it as a performance attribute of their processors.
- Dhrystone provides a more meaningful MIPS (Million Instructions Per Second) because results are compared to a reference machine.
- Dhrystone numbers reflect the performance of the C compiler and libraries more so than the performance of the processor itself. (considered as a weakness of the program)
- Check if armv7 optimization options and armv5tel optimization options differ significantly in system performance boost
Test Result:
Legend:
- Normal = 758.869322709 DMIPS
- Optimized for armv5tel = 1034.82179852 DMIPS
- Optimized for armv7 = 1034.82179852 DMIPS
The benchmark graph shows that optimization increased the overall performance of cdot-beagleXM-0-3 by 36%. The results for both armv5tel and armv7 optimizations are the same. (It's safe to assume that the armv5tel glibc impacts the performance of C library dependent programs such as Dhrystone). The data gathered can be used as a reference for conducting 0.2 project release.
0.2 Install an armv7 glibc and re-run the benchmark using dhrystone
- 0.3
Things to learn
-Ways of benchmarking ARM processors
-gcc install options
-Compiling kernel and glibc
-Familiarization with ARM hardware
Project News
December 9th, 2010 - Project page update (0.1 Release)
November 22nd, 2010 - Release 0.1 test results posted
November 4th, 2010 - Compiler optimization options ready for testing, project page updated
October 19th, 2010 - Chris Tyler explained more about the project, including goal 0.1
October 15th, 2010 - Project page updated (Things to learn)