![]() |
Phenom X4 system not very fast
I have built a Phenom X4 2.5GHz system on an Asus M3A78EMH HDMI motherboard, with 8GB of DDR2/6400 memory, running ubuntu-8.04 from a USB stick.
Running four copies of gnfs-lasieve4I15e on it, sieving 5^421-1, I'm getting times around 0.9 - 1.1 seconds per relation - an Opteron 2.4GHz next door gets 0.6 seconds per relation. /proc/cpuinfo says that all the CPUs are running at the full 2.5GHz. |
Is that a Phenom with the TLB bug? If the BIOS or the OS switched off the TLB, I would not be surprised that memory intensive applications like sieving take a huge hit.
Alex |
[QUOTE=akruppa;141558]Is that a Phenom with the TLB bug? If the BIOS or the OS switched off the TLB, I would not be surprised that memory intensive applications like sieving take a huge hit.
Alex[/QUOTE] The X4 version should be bug-free, and coded as xx50 instead of xx00. I'd check the BIOS: some newer BIOS have an automated phenom-bug correction that lessen performances up to 20%. Try also to recompile the sources using AMD switches. Luigi |
It looks to me like either very nasty memory contention or some kind of thermal problem; when I run only one copy of the siever I get decent performance (0.48s per relation).
I'm trying to distinguish the two explanations, but I'm having trouble driving oprofile: [code] sudo opcontrol -e DATA_CACHE_REFILLS_FROM_SYSTEM:1000 nfsslave3@pig:/sys/devices/system$ sudo opcontrol --status Daemon running: pid 7382 Event 0: DATA_CACHE_REFILLS_FROM_SYSTEM:1000:31:1:1 ... nfsslave3@pig:/sys/devices/system$ sudo opreport | head CPU: AMD64 family10, speed 2500.99 MHz (estimated) Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit mask of 0x00 (No unit mask) count 100000 [/code] IE I have told it to watch data-cache refills, it says that it's watching data-cache refills, but the report indicates that it's counting ticks. And I have an AMD document saying 'temperature is accessible through F3xA4' but not defining what this means. So presently I am at about as low a level as I'm comfortable with, and stalled. |
OK, at least part of this is that I hadn't shut down and purged oprofile since the last use; for further reference,
[code] sudo opcontrol --shutdown sudo opcontrol --reset sudo opcontrol --no-vmlinux -e DATA_CACHE_REFILLS_FROM_SYSTEM:1000 sudo opcontrol --start sudo opreport | head opannotate --assembly gnfs-lasieve4I15e [/code] does give a count of data-cache refills from system. Across the quad, I'm getting 18.9 million of those each second, which seems like a fair number. On a box with an Athlon64 x2 of 2.2GHz I get 3.7 million per second running two copies of the job, so the phenom's cache is being much more missed. |
I think it's probably heat. I have a process which uses no memory (it just adds up N*N for N=0..10^11); it runs in 80 seconds when I run one copy of it and, when I run four, each takes 150 seconds.
What tool do I need under Linux to tell if the Phenom is thermally throttling? |
perhaps cat /proc/cpuinfo would work? I don't know if it would update after a throttle, or if the information is just generated at boot.
|
[QUOTE=KriZp;141962]perhaps cat /proc/cpuinfo would work? I don't know if it would update after a throttle, or if the information is just generated at boot.[/QUOTE]
The figure doesn't change while I'm running the heat-the-CPU job. |
[quote=fivemack;141960]I think it's probably heat. I have a process which uses no memory (it just adds up N*N for N=0..10^11); it runs in 80 seconds when I run one copy of it and, when I run four, each takes 150 seconds.
What tool do I need under Linux to tell if the Phenom is thermally throttling?[/quote] Assuming you're on a GNOME-based distribution, you can add little widgets called "CPU Frequency Scaling Monitors" to your taskbars--just right-click one of the taskbars, click Add to Panel, and drag four copies of the CPU Frequency Scaling Monitor to one of the taskbars. Then right-click on one, click Properties, and set it to CPU 0; the next one, set it to CPU 1; etc. :smile: |
[QUOTE=fivemack;141960]I think it's probably heat. I have a process which uses no memory (it just adds up N*N for N=0..10^11); it runs in 80 seconds when I run one copy of it and, when I run four, each takes 150 seconds.
What tool do I need under Linux to tell if the Phenom is thermally throttling?[/QUOTE] If the motherbopard has temp and fan speed control chips that allow it, the lmsensors package lets you read them. I also use a tiny GUI that reads the output files in /proc and displays things like temp, fan speed and voltages. Note that lmsensors (as of 2004) was very painful to set up; if an online review of my motherboard hadn't provided a config file to use, I don't think I could have figured it out. |
lmsensors seems to be quite well-packaged under debian; at least, I can just run 'sensors' and get a long list of voltages and temperatures. As the full-CPU job runs, the motherboard temperature goes from +37 to +47, and the claimed CPU temperature is steady at +37. 30s after the job finishes the temperature is back to +43.
In principal the phenom has temperature sensors on the CPU itself, but the documentation on the CPU (what I have is the 'BIOS Writer's Guide', which is insanely technical) doesn't make it at all clear how one reads the sensors, and the version of lmsensors that I have says [code] AMD K10 thermal sensors... Success! (driver `to-be-written') [/code] which isn't all that helpful. |
Definitely a thermal problem.
As root, [code] dd if=/sys/devices/pci0000:00/0000:00:18.3/config bs=1 count=256 | od -Ax -tx1 [/code] and the byte at offset 0x64, which is normally 0x25, goes to 0x35 when the processor overheats; similarly, model-specific register C0010071 (which can be read with rdmsr utility downloaded from [url]http://www.kernel.org/pub/linux/utils/cpu/msr-tools/msr-tools-1.1.2.tar.bz2[/url]) has bit 16 change from 0 to 1, indicating overheating, seventeen seconds after I start the job and changes from 1 to 0 six seconds after the job finishes. A piece of cake. Would it really have been too much effort to have a little light on the case light up when it overheats, or maybe a quiet beeping noise? At least the kernel exposes the MSRs and PCI config space nicely, I was afraid I'd have to write a module! What I don't know is whether this is a thermal problem to be solved with an enormous heat-sink, or a thermal problem to be solved by telling the BIOS to use different thresholds for processor overheating. I imagine a script that stops the sievers and waits three seconds when the overheating bit gets set, and turns them back on once it's cleared, would not be a way to ensure optimal processor lifetime. With two sieving processes it overheats after 23 seconds, with one it takes nearly a minute, so given that it'll overheat anyway I might as well run four sievers. If I parse model-specific register C0010065 correctly, it's running at 1250MHz when overheated. |
Have you tried to use a 3rd party, non-factory heatsink and some quality thermal paste?
|
Tom, Try Tuniq Tower, if it is compatible? (goddarn, I couldn't keep up writing with all T's)
I chose it after a few days of reading forums and never got disappointed. Not terribly expensive. --Serge P.S. this is the system for the 5,421- matrix stage, isn't it? you move very fast. |
The Barcelonas have treated me well
Sorry to hear that the Phenom is not whirring along as it should.
As a benchmark, I'm running a motherboard with two quad-core 2.0 GHz 2350 Barcelonas, and I tend to hit just over 0.7 seconds per relation per core on that same job (gnfs-lasieve4I15e on it, sieving 5^421-1). Per-core performance is about 15% slower than my dual-core 2218 Opterons (2.66 GHz). So you should expect around 0.57 seconds per core with the Phenom. Whatever else you can say about AMD, the quad-core processors run nearly independently of one another on these giant sieving jobs. [QUOTE]Have you tried to use a 3rd party, non-factory heatsink and some quality thermal paste?[/QUOTE] This could be critical. I put some monster sinks on the Barcelonas, and the fans blow even when it's cold in the room. For 75W processors, the Barcelonas really put out plenty of heat. Something about being run flat out will do that. |
I replaced the motherboard with a Gigabyte MA78GPM-DS2H, which took about half an hour and left my fingers covered in AMD's finest grey thermal goop. Still using the AMD standard heatsink.
This resolved the problem: [code] total yield: 234496, q=79248229 (0.90472 sec/rel) total yield: 234525, q=79248233 (0.90471 sec/rel) total yield: 234562, q=79248241 (0.90467 sec/rel) total yield: 46, q=79248277 (0.52630 sec/rel) total yield: 65, q=79248311 (0.56108 sec/rel) total yield: 105, q=79248331 (0.46371 sec/rel) [/code] and on a different number [code] total yield: 1092888, q=53223553 (0.18429 sec/rel) total yield: 1092930, q=53223557 (0.18429 sec/rel) total yield: 1092969, q=53223563 (0.18429 sec/rel) total yield: 86, q=53223589 (0.09477 sec/rel) total yield: 178, q=53223629 (0.09118 sec/rel) total yield: 256, q=53223689 (0.09496 sec/rel) total yield: 342, q=53223701 (0.09456 sec/rel) [/code] Happy now, if poorer; now begins the cheery fun process of getting a refund on the other motherboard. |
[QUOTE=fivemack;143057]I replaced the motherboard with a Gigabyte MA78GPM-DS2H[/QUOTE]
Exactly the one I have (with a Phenom X4 9350e). I'm quite happy with the board, the graphics is surprisingly fast for an on-board GPU. My only grief is that the BIOS won't let you set the RAM voltage any lower than 1.95V, and won't let you use only SidePort RAM for the video either - it always takes at least 128MB of main memory. Maybe these will get fixed with a BIOS update. Alex |
| All times are UTC. The time now is 23:31. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.