Difference between revisions of "To Thumb or Not to Thumb"

From CDOT Wiki
Jump to: navigation, search
(What I need to learn)
(Test results)
Line 47: Line 47:
 
  nonthumb 48576 98132 37900
 
  nonthumb 48576 98132 37900
 
  thumb... 40563 93107 29932
 
  thumb... 40563 93107 29932
 +
 +
 +
nled-2.52
 +
 +
Produced RPM: nled-2.52-6.fc12.armv5tel.rpm
 +
 +
Directories and files: 2 directories, 1 file
 +
 +
Binary File: usr/bin/nled
 +
w/o Thumb
 +
THUMB
 +
THUMB2
 +
THUMB / NON-THUMB
 +
THUMB / THUMB2
 +
 +
RPM
 +
20776
 +
20204
 +
20328
 +
0.9724
 +
0.9939
 +
 +
Directory
 +
50892
 +
43084
 +
42684
 +
0.8465
 +
1.0093
 +
 +
Binary
 +
38604
 +
30796
 +
30396
 +
0.7977
 +
1.0131
 +
 +
wget-1.11.4
 +
 +
Produced RPM: wget-1.11.4-5.fc12.armv5tel.rpm
 +
 +
Directories and files: 86 directories, 48 files
 +
 +
Binary File: usr/bin/wget
 +
w/o Thumb
 +
THUMB
 +
THUMB2
 +
THUMB / NON-THUMB
 +
THUMB / THUMB2
 +
 +
RPM
 +
422360
 +
420788
 +
419852
 +
0.9962
 +
1.0022
 +
 +
Directory
 +
1863679
 +
1811467
 +
1810431
 +
0.9719
 +
1.0006
 +
 +
Binary
 +
226464
 +
174252
 +
173216
 +
0.7694
 +
1.0060
 +
 +
httpd-2.2.13
 +
 +
Produced RPM: httpd-2.2.13-4.fc12.armv5tel.rpm
 +
 +
Directories and files: 37 directories, 334 files
 +
 +
Binary File: usr/sbin/httpd
 +
w/o Thumb
 +
THUMB
 +
THUMB2
 +
THUMB / NON-THUMB
 +
THUMB / THUMB2
 +
 +
RPM
 +
748180
 +
738632
 +
736500
 +
0.9872
 +
1.0029
 +
 +
Directory
 +
2752985
 +
2425373
 +
2408025
 +
0.8810
 +
1.0072
 +
 +
Binary
 +
287988
 +
233660
 +
229712
 +
0.8113
 +
1.0172
 +
 +
gimp-2.6.7
 +
 +
Produced RPM: gimp-2.6.7-2.fc12.armv5tel.rpm
 +
 +
Directories and files: 206 directories, 1204 files
 +
 +
Binary File 1: usr/bin/gimp-2.6
 +
 +
Binary File 2: usr/bin/gimp-console-2.6
 +
w/o Thumb
 +
THUMB
 +
THUMB2
 +
THUMB / NON-THUMB
 +
THUMB / THUMB2
 +
 +
RPM
 +
12423104
 +
12431184
 +
12350600
 +
1.0006
 +
1.0065
 +
 +
Directory
 +
45780103
 +
43891439
 +
43730427
 +
0.9587
 +
1.0037
 +
 +
Binary 1
 +
4284848
 +
3450936
 +
3371440
 +
0.8054
 +
1.0236
 +
 +
Binary 2
 +
2131228
 +
1688860
 +
1656092
 +
0.7924
 +
1.0198
 +
 +
abiword-2.8.1
 +
 +
Produced RPM: libabiword-2.8.1-1.fc12.armv5tel.rpm
 +
 +
Directories and files: 39 directories, 617 files
 +
 +
Binary File: usr/lib/libabiword-2.8
 +
w/o Thumb
 +
THUMB
 +
THUMB2
 +
THUMB / NON-THUMB
 +
THUMB / THUMB2
 +
 +
RPM
 +
5561088
 +
4779800
 +
4742828
 +
0.8595
 +
1.0078
 +
 +
Directory
 +
21295155
 +
17055836
 +
16987340
 +
0.8009
 +
1.0040
 +
 +
Binary
 +
5806908
 +
3450936
 +
3371440
 +
0.5943
 +
1.0236
 +
 +
tar-1.22
 +
 +
Produced RPM: tar-1.22-8.fc12.armv5tel.rpm
 +
 +
Directories and files: 79 directories, 49 files
 +
 +
Binary File: bin/tar
 +
w/o Thumb
 +
THUMB
 +
THUMB2
 +
THUMB / NON-THUMB
 +
THUMB / THUMB2
 +
 +
RPM
 +
744340
 +
742784
 +
742180
 +
0.9979
 +
1.0008
 +
 +
Directory
 +
2737195
 +
2681159
 +
2675975
 +
0.9795
 +
1.0019
 +
 +
Binary
 +
251844
 +
195808
 +
190624
 +
0.7775
 +
1.0272
 +
 +
cpio-2.10
 +
 +
Produced RPM: cpio-2.10-5.fc12.armv5tel.rpm
 +
 +
Directories and files: 49 directories, 30 files
 +
 +
Binary File: bin/cpio
 +
w/o Thumb
 +
THUMB
 +
THUMB / NON-THUMB
 +
 +
RPM
 +
189908
 +
189276
 +
0.9967
 +
 +
Directory
 +
842194
 +
816194
 +
0.9691
 +
 +
Binary
 +
117064
 +
91064
 +
0.7779
 +
 +
gzip-1.3.12
 +
 +
Produced RPM: gzip-1.3.12-15.fc12.armv5tel.rpm
 +
 +
Directories and files: 9 directories, 33 files
 +
 +
Binary File: bin/gzip
 +
w/o Thumb
 +
THUMB
 +
THUMB / NON-THUMB
 +
 +
RPM
 +
116560
 +
115736
 +
0.9929
 +
 +
Directory
 +
263922
 +
252086
 +
0.9551
 +
 +
Binary
 +
61708
 +
49872
 +
0.8082
 +
 +
bzip2-1.0.5
 +
 +
Produced RPM: bzip2-1.0.5-6.fc12.armv5tel.rpm
 +
 +
Directories and files: 7 directories, 21 files
 +
 +
Binary File: /usr/bin/bzip2
 +
w/o Thumb
 +
THUMB
 +
THUMB / NON-THUMB
 +
 +
RPM
 +
49476
 +
49232
 +
0.9951
 +
 +
Directory
 +
109233
 +
103449
 +
0.9470
 +
 +
Binary
 +
33024
 +
28076
 +
0.8502
 +
 +
In average, THUMB reduced the sizes about
 +
 +
2.24% for *.rpm files,
 +
 +
7.67% for extracted directories, and
 +
 +
22.16% for executables, compared to NON-THUMB.
 +
 +
While  it might save some disk space for executable files, it doesn't make a  big different for rpm packages since rpm has it's own compressing  mechanism.
 +
In average, THUMB produced files that are about
 +
0.24% for *.rpm files,
 +
 +
0.45% for extracted directories, and
 +
 +
1.86% for executables, greater than THUMB2.
 +
 +
I noticed that THUMB produces files that are almost as small as THUMB2's products.
  
 
== Project Details ==
 
== Project Details ==

Revision as of 18:32, 14 December 2010

Project Name

To Thumb? or Not to Thumb?

Project Description

Fedora-ARM does not use thumb. The purpose of this project is to discover whether thumb provides any significant savings in terms of code size, whether programs compiled to thumb execute more quickly or more slowly than non-thumb programs on common ARM processors, whether a thumb compilation takes more or less time than non-thumb, and whether there are any other factors that would influence the decision to support thumb. Ultimately, this project should make a recommendation on the use of the thumb instruction set for the Fedora-ARM secondary architecture.

Project Leader(s)

I will be working alone for this project.

My name is Tae Hee (Tyler) Lee and I'm taking SBR600 course in 2010 Winter Semester.

Blog @ [[1]]

thlee3 @ FAS2

thlee3 @ irc://irc.mozilla.org/seneca

Tyler.lee @ Open Source Seneca Wiki

thlee3@learn.senecac.on.ca

What I need to learn

- rpmbuild
- /usr/lib/rpm/redhat/rpmrc
- /usr/lib/rpm/redhat/macros
- time
- screen
- yumdownloader
- rpm2cpio

Project Plan

Goals for each release:

  • 0.1 Determine whether THUMB gives advantage in file size compared to NON-THUMB.
  • 0.2 Compare and contrast file sizes between NON-THUMB, THUMB and THUMB2.
  • 0.3 Compare the performance of software compiled with THUMB and NON-THUMB

Test results

From a test performed on 2011-11-12 by CTyler:

........ -O2.. -g... -g stripped
nonthumb 48576 98132 37900
thumb... 40563 93107 29932


nled-2.52

Produced RPM: nled-2.52-6.fc12.armv5tel.rpm

Directories and files: 2 directories, 1 file

Binary File: usr/bin/nled w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2

RPM 20776 20204 20328 0.9724 0.9939

Directory 50892 43084 42684 0.8465 1.0093

Binary 38604 30796 30396 0.7977 1.0131

wget-1.11.4

Produced RPM: wget-1.11.4-5.fc12.armv5tel.rpm

Directories and files: 86 directories, 48 files

Binary File: usr/bin/wget w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2

RPM 422360 420788 419852 0.9962 1.0022

Directory 1863679 1811467 1810431 0.9719 1.0006

Binary 226464 174252 173216 0.7694 1.0060

httpd-2.2.13

Produced RPM: httpd-2.2.13-4.fc12.armv5tel.rpm

Directories and files: 37 directories, 334 files

Binary File: usr/sbin/httpd w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2

RPM 748180 738632 736500 0.9872 1.0029

Directory 2752985 2425373 2408025 0.8810 1.0072

Binary 287988 233660 229712 0.8113 1.0172

gimp-2.6.7

Produced RPM: gimp-2.6.7-2.fc12.armv5tel.rpm

Directories and files: 206 directories, 1204 files

Binary File 1: usr/bin/gimp-2.6

Binary File 2: usr/bin/gimp-console-2.6 w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2

RPM 12423104 12431184 12350600 1.0006 1.0065

Directory 45780103 43891439 43730427 0.9587 1.0037

Binary 1 4284848 3450936 3371440 0.8054 1.0236

Binary 2 2131228 1688860 1656092 0.7924 1.0198

abiword-2.8.1

Produced RPM: libabiword-2.8.1-1.fc12.armv5tel.rpm

Directories and files: 39 directories, 617 files

Binary File: usr/lib/libabiword-2.8 w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2

RPM 5561088 4779800 4742828 0.8595 1.0078

Directory 21295155 17055836 16987340 0.8009 1.0040

Binary 5806908 3450936 3371440 0.5943 1.0236

tar-1.22

Produced RPM: tar-1.22-8.fc12.armv5tel.rpm

Directories and files: 79 directories, 49 files

Binary File: bin/tar w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2

RPM 744340 742784 742180 0.9979 1.0008

Directory 2737195 2681159 2675975 0.9795 1.0019

Binary 251844 195808 190624 0.7775 1.0272

cpio-2.10

Produced RPM: cpio-2.10-5.fc12.armv5tel.rpm

Directories and files: 49 directories, 30 files

Binary File: bin/cpio w/o Thumb THUMB THUMB / NON-THUMB

RPM 189908 189276 0.9967

Directory 842194 816194 0.9691

Binary 117064 91064 0.7779

gzip-1.3.12

Produced RPM: gzip-1.3.12-15.fc12.armv5tel.rpm

Directories and files: 9 directories, 33 files

Binary File: bin/gzip w/o Thumb THUMB THUMB / NON-THUMB

RPM 116560 115736 0.9929

Directory 263922 252086 0.9551

Binary 61708 49872 0.8082

bzip2-1.0.5

Produced RPM: bzip2-1.0.5-6.fc12.armv5tel.rpm

Directories and files: 7 directories, 21 files

Binary File: /usr/bin/bzip2 w/o Thumb THUMB THUMB / NON-THUMB

RPM 49476 49232 0.9951

Directory 109233 103449 0.9470

Binary 33024 28076 0.8502

In average, THUMB reduced the sizes about

2.24% for *.rpm files,

7.67% for extracted directories, and

22.16% for executables, compared to NON-THUMB.

While it might save some disk space for executable files, it doesn't make a big different for rpm packages since rpm has it's own compressing mechanism. In average, THUMB produced files that are about 0.24% for *.rpm files,

0.45% for extracted directories, and

1.86% for executables, greater than THUMB2.

I noticed that THUMB produces files that are almost as small as THUMB2's products.

Project Details

To be added.

Project News

October 8th, 2010 - Project started

October 14th, 2010 - Major project page update with more information.

Resources

ARM Architecture - http://en.wikipedia.org/wiki/ARM_architecture#Thumb

Introduction to ARM thumb - http://www.eetimes.com/discussion/other/4024632/Introduction-to-ARM-thumb