Linux and the Desktop Pentium M: Uncommon Performance
by Kristopher Kubicki on December 24, 2004 12:00 PM EST- Posted in
- Linux
The Test
The goal today is to benchmark our newest Pentium M Dothans of both the 400MHz and 533MHz front side bus. We would like to see how these processors compare to the better-performing Athlon 64 and Pentium 4 processors available today, particularly for the same price category. We will also look at how the higher clocked front side bus speed, different memory speeds and different compilers affect our benchmark results.Performance Test Configuration | |
Processor(s): | AMD Athlon FX-53 (130nm, 2.4GHz, 1MB L2 Cache, Socket 939) AMD Athlon 64 3800+ (130nm, 2.4GHz, 512KB L2 Cache) AMD Athlon 64 3500+ (130nm, 2.2GHz, 512KB L2 Cache) AMD Athlon 64 3200+ (90nm, 2.0GHz, 512KB L2 Cache) Intel Pentium 4 Extreme Edition 3.4GHz (130nm, 512KB L2 Cache, 2MB L3 Cache) Intel Pentium 4 560 3.6GHz (90nm, 1MB L2 Cache) Intel Pentium M 765 2.1GHz (90nm, 2MB L2 Cache, 533FSB) Intel Pentium M 755 2.0GHz (90nm, 2MB L2 Cache, 400FSB) |
RAM: | 2 x 512MB Mushkin PC-3200 CL2 (400MHz) 2 x 512MB Corsair PC2-5400 CL3 (475MHz) |
Motherboards: | DFI LanParty 915P-T12 (Socket 775) MSI K8T Neo2 (Socket 939) DFI 855GME-MFG |
Memory Timings: | Default |
Operating System(s): | SuSE 9.1 Professional Kernel 2.6.5-7.108 |
Compiler: | dave:~ # gcc - v Reading specs from /opt/gcc-mainline/lib/gcc/i586-suse-linux/3.4.1/specs Configured with: ../configure - enable-threads=posix - prefix=/opt/gcc-mainline - with-local-prefix=/usr/local - infodir=/opt/gcc-mainline/share/info - mandir=/opt/gcc-mainline/share/man - libdir=/opt/gcc-mainline/lib - libexecdir=/opt/gcc-mainline/lib - enable-languages=c,c++,f77,objc,java,ada - enable-checking - enable-libgcj - with-gxx-include-dir=/opt/gcc-mainline/include/g++ --with-slibdir=/lib - with-system-zlib - enable-shared --enable-__cxa_atexit i586-suse-linux Thread model: posix gcc version 3.4.1 20040508 (prerelease) (SuSE Linux) |
Intel Compiler: | dave:/opt/intel_cc_80/bin # ./icc -v Version 8.1 |
As you will see from the specifications above, we are recycling most of our benchmarks from the last Linux CPU roundup that we published a few months ago. The two newcomers to the benchmark are the 2.1GHz 533FSB Dothan Pentium M and the 2.0GHz 400FSB Dothan Pentium M. Both processors use the desktop configuration, Socket 479. Socket 479 processors are somewhat difficult to find right now, although they similarly reflect the performance of their Socket 478 counterparts. Unfortunately, the Dothan/Banias Socket 478 pinout is different electrically than the typical desktop Socket 478, and thus you will need to use a Socket 479 board with a Socket 479 Dothan if you plan on using any of these Pentium M's in your desktop anytime soon.
Looking at the CPU proc information we can discern the following:
dave:~/bench/gcc/linux-2.6.4 # cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Pentium(R) M processor 2.10GHz stepping : 6 cpu MHz : 2104.892 cache size : 64 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe tm2 est bogomips : 4177.92The bogomips score seems fairly accurate; the 3.6GHz Nocona reports about 7200BMIPS per physical processor. However, note that there are no SSE3 enhancements, HyperThreading or EM64T addressing capability. All desktop Pentium M processors today are derived from the blade server market and their feature sets reflects that - blade servers are designed to be small, fast and cool; putting 8GB of memory in a blade would not make a lot of sense.
As you can also see from the information above, our Dothan 2.1GHz is in the 6th stepping, "F". The processor utilizes 64K of L1 cache and 2MB of L2 cache. The DFI motherboard that we use in this analysis keeps our Dothan bus at 100MHz while pushing the clock multiplier up to 21X; thus, effectively running it at 2.1GHz with 400MHz FSB. During the test, we also clock the bus at 133MHz and run the multiplier at 16X, which effectively runs our CPU at 2133MHz with the full 533FSB. This also skews our memory clock a bit - in the first 400MHz configuration, we are running DDR333 (100MHz with a 5:3 ratio). In the second configuration, we use 133MHz at a 4:3 ratio. This is perfectly normal behavior, although keep in mind that the default configuration with our set up runs at DDR200 with the 400MHz FSB. Keep in mind also that we anticipate these lower memory clocks to pinch the Dothan's performance in the long run.
47 Comments
View All Comments
- Saturday, October 24, 2009 - link
http://www.goph3r.com/mh">http://www.goph3r.com/mh(air jordan, air max, shox tn, rift, puma, dunk sb, adidas) nike jordan shoes 1-24 $32
lv, coach, chane bag $35
COOGI(jeans, tshirts, hoody, jacket) $30
christian audigier(jeans, tshirts, hoody) $13
edhardy(shoes, tshirts, jeans, caps, watche, handbag) $25
Armani(jeans, tshirts,) $24
AF(jeans, coat, hoody, sweater, tshirts)Abercrombie & Fitch $31
http://www.goph3r.com/mh">http://www.goph3r.com/mh
BullCreek - Thursday, January 13, 2005 - link
Does anyone know where I can buy socket479 dothan core pentium Ms online? Newegg and various other places stock the socket 478 variety, but I haven't found anyone that has the socket 479 type.vl - Thursday, December 30, 2004 - link
If you are using an IDE drive make sure DMA was enabled. To check you can use the hdparm command.Lynx516 - Tuesday, December 28, 2004 - link
Something is disasterously wrong with your setup. Have you tried using a live CD and try compiling with that?What command are you using to compile the kernel? Are you sure you have GCC installed correctly? What do you get if you type gcc-config -l?
Are you sure nothing else is running (well major tasks)?
Have you tried running it as root?
KristopherKubicki - Tuesday, December 28, 2004 - link
Correct they are "user". Here are the results with GCC 3.4.3 on the same system on the second run.real 20m42.192s
user 16m39.148s
sys 1m21.287s
dave:~/bench/gcc/linux-2.6.4 # cat /proc/cpuinfo | grep MHz
cpu MHz : 2105.068
... Not sure what is the problem here. The CPU clock is correct. If anyone else has any ideas as to why only the GCC benchmark would be affected I am all ears.
Kristopher
Yozza - Tuesday, December 28, 2004 - link
Results with gcc version 3.4.3 20041125 on the Banias 1.7GHz (DDR266/400FSB).run 1:
real 4m40.758s
user 3m58.039s
sys 0m20.060s
run 2: (after "make clean")
real 4m24.759s
user 3m58.409s
sys 0m19.978s
run 3: (again, after "make clean")
real 4m27.728s
user 3m58.233s
sys 0m20.161s
Of course, this is with gcc 3.4.3. I'd rather not install 3.4.1 on this system only to rollback to 3.4.3 straight after.
I assume the kernel compile times you showed in the article were from "user" (or user + sys), rather than "real", as the latter is affected by other things happening on the system whereas the former gives the actual CPU time taken by the process.
The results are impressive to say the least. It's certainly extremely puzzling that your results with Dothan were so disparate. One would expect it to do very well indeed based on my results with 1.7GHz Banias + DDR266.
For comparison, my 3GHz NW P4:
run 1:
real 4m50.687s
user 4m19.365s
sys 0m25.261s
run 2:
real 4m46.675s
user 4m23.775s
sys 0m24.567s
KristopherKubicki - Tuesday, December 28, 2004 - link
Yozzo, Can you please do kernel 2.6.4 like we did in the benchmark?Kristopher
Yozza - Tuesday, December 28, 2004 - link
Development on the 3.4 gcc branch has only recently stabilised, and the pentium-m cflag was indeed quite buggy/broken in earlier releases, hence why I stated that gcc 3.4.1 is "pretty old". Not in the absolute sense, but rather in terms of the amount of development work that has gone into the 3.4 branch since.Some quick benchmarks with gcc version 3.3.4 20040623:
System was P-M Banias 1.7GHz, 768MB DDR266, i855PM; on a Dell D600.
# time make
...
real 9m36.940s
user 8m40.395s
sys 0m39.643s
2nd run:
real 9m35.056s
user 8m40.515s
sys 0m39.664s
For comparison, my 3GHz NW P4, 1.5GB DDR400, i875P:
1st run:
real 10m0.508s
user 9m0.929s
sys 0m46.210s
2nd run:
real 9m58.564s
user 9m3.107s
sys 0m45.658s
Kernel was 2.6.10-ck1-nitro1, with custom .config (http://homepage.ntlworld.com/yaoyaoliu/.config).
I didn't have gcc 3.4.3 available on my laptop to test, but gcc 3.3.4 clearly shows the expected performance and hence that there is nothing inherently wrong with the P-M architecture that makes it slow at compiling -- indeed, the 1.7GHz Banias P-M (DDR266, 400FSB) is slightly faster than my 3GHz Northwood P4 (dual DDR400, 800FSB).
I was also interested to see how much faster gcc 3.4.3 was compared to 3.3.4, and so decided to do a compile on my 3GHz P4 desktop machine (same kernel):
real 6m34.443s
user 5m52.910s
sys 0m33.019s
Interesting results indeed.
KristopherKubicki - Monday, December 27, 2004 - link
The GCC we used is the same GCC bundled with SUSE 9.1, our test platform. I don't think 6 months is too old for a processor architecture that has been available for close to 2 years. However, we will get a chance to revist these numbers in the very near future, and i will redo the tests with GCC 3.4.3 and GCC 3.4.1Hope that helps,
Kristopher
vaystrem - Monday, December 27, 2004 - link
Fromhttp://gcc.gnu.org
The GCC Homepage:
3.4.1 released July 2004
3.4.3 released November 2004
If you look at the changelist there have been a lot of improvements even between these few releases.