Help - Search - Members - Calendar
Full Version: Hyperthreading troubles
Hydrogenaudio Forums > Misc. > Off-Topic
emtee
While testing the securtity of MD5 hashes, to see how safe my passwords are, i realized my Pentium 4 2.6 GHz with Hyperthreading is not using its full power bruteforcing the hashes.
I'm using mdcrack which is able to hash in a non-HT system about 4000 hashes/sec. In my system, my CPU usage never goes above 50%, resulting in a hash of 2000 hashes/sec. Half the optimal value :|
I've set the process affinity to use both "virtual CPUs", but it seems to me that windows is ignoring this.
I want this process to use 100% CPU Power. How can this be done?

(Disabling hyperthreading in the BIOS results in 1 processor working at 1.3 GHz)

EDIT: This made me think that maybe all my encodes are running at hlaf-speed. Does LAME, FLAC, Wavpack, XviD, and all those codecs around support Hyperthreading?

This is a serious flaw.
emtee
Some CPU Benchmarks made with FreshDiagnose (www.freshdevices.com)

http://www.audiocore.org/benchmarks.png

Terrible results because of Hyperthreading crying.gif
CiTay
QUOTE(emtee @ Apr 15 2004, 01:40 PM)
In my system, my CPU usage never goes above 50%

As you said, with HT, you have two virtual CPUs. Now tell me, what is 2 x 50 ?

QUOTE
Disabling hyperthreading in the BIOS results in 1 processor working at 1.3 GHz


Now that sounds like a serious bug in your BIOS. HT has nothing to do with CPU frequency.

Comparing two P4 CPUs (one 2.53 without HT and one 2.6 with HT), i can assure you that audio encoding doesn't run at half speed. It shows exactly the expected speed increase. Maybe you should update your BIOS, drivers, OS...
sthayashi
I bet that mdcrack is singlethreaded rather than multithreaded. Only multithreaded programs take advantage of hyperthreading. The other advantage of hyperthreading is that you can run another program without cutting into the performance of the first program (in theory. I don't know how well that statement holds up).

Your poor performance suggests something else is the problem. Do you know what your CPU temperatures are like? If a Pentium 4 gets too hot, it will cut performance to maintain stability.

Use a program like Motherboard Monitor to tell you.
emtee
QUOTE(CiTay @ Apr 15 2004, 03:15 PM)
QUOTE(emtee @ Apr 15 2004, 01:40 PM)
In my system, my CPU usage never goes above 50%

As you said, with HT, you have two virtual CPUs. Now tell me, what is 2 x 50 ?

According to my calculations, 2*50 = 100. I might be wrong, though huh.gif Seriously, i thought the CPU usage shown was the GLOBAL usage, not individual processor usages.

QUOTE(CiTay @ Apr 15 2004, 03:15 PM)
QUOTE
Disabling hyperthreading in the BIOS results in 1 processor working at 1.3 GHz


Now that sounds like a serious bug in your BIOS. HT has nothing to do with CPU frequency.


My BIOS (Asus Motherboard P4G8X Deluxe with an intel chipset) actually sees 2 CPUs, each one of them running at 1.3 Ghz (1.3*2 = 2.6, CiTay cool.gif ). If i disable hyperthreading, it'll only see 1, still running at 1.3 GHz...

QUOTE(sthayashi @ Apr 15 2004, 09:02 PM)
I bet that mdcrack is singlethreaded rather than multithreaded.  Only multithreaded programs take advantage of hyperthreading. 

Even if it isn't, this kind of behaviour isn't acceptable for singlethreaded applications... running at half speed because they don't support HT?

QUOTE(sthayashi @ Apr 15 2004, 09:02 PM)
Your poor performance suggests something else is the problem.  Do you know what your CPU temperatures are like?  If a Pentium 4 gets too hot, it will cut performance to maintain stability.


My temperatures are normal, my motherboard has a "monitoring tool" that updates in real time this kind of stuff... fan speed, cpu temperature, etc. Besides, my system has 6 fans, so i think it is being properly cooled.

I'm really lost here... I read somewhere in this forum Windows XP has some troubles with Hyperthreading. Will a change of OS fix this problem?

thanks for the replies
Audible!
Strange.
Have you tried Updating the BIOS?
Or Windows Update?
QuantumKnot
QUOTE(sthayashi @ Apr 16 2004, 07:02 AM)
The other advantage of hyperthreading is that you can run another program without cutting into the performance of the first program (in theory.  I don't know how well that statement holds up).

I think it is dependent on either whether resources the other program is using are the same or the process scheduler. I compiled an SMP 2.6.4 linux kernel to run on an HT-enabled PC and it detected two CPUs so all was fine. But while I was running a simulation and tried starting another program, the simulation slowed down while both used 50% (according to top). I suspect the SMP scheduler isn't that well tuned for HT yet. *shrugs*
emtee
QUOTE(Audible! @ Apr 15 2004, 11:43 PM)
Strange.
  Have you tried  Updating the BIOS?
   Or Windows Update?


Yes Audible!, both of them today.
I was already running the latest BIOS firmware for my board, and there are no updates left in windows update.

I find it hard to believe my processor is defective, but i see no other reason for this behavior...
askoff
QUOTE(emtee @ Apr 15 2004, 03:14 PM)
My BIOS (Asus Motherboard P4G8X Deluxe with an intel chipset) actually sees 2 CPUs, each one of them running at 1.3 Ghz (1.3*2 = 2.6, CiTay  cool.gif ). If i disable hyperthreading, it'll only see 1, still running at 1.3 GHz...

This is weard. Tell me what is your CPU exact type and FSB? I'm not aware P4 CPU with 533 or 400MHz FSB that has HT (exept 3.06GHz model). I have same motherboard as you have and it Doesn't support 800MHz FSB what all those HT included CPU models use. Perhaps you have 2600MHz model with 800MHz FSB and you are usin it with 400MHz FSB and thats why your computer is dislpaying 1.3GHz, because it's actualy working with half clock speed afterall. Could you download CPU-Z software somewhere and tell us what FSB and CPU clock speed does it show?
Audible!
That's an interesting point askoff.
The PIV 2.6C with HyperThreading is an 800MHz bus part and the 2.6B doesn't feature HT as I remember it.

Try checking the FSB speed in BIOS, emtee. You should be able to force it to 533MHz, if it's not at that frequency already. This will increase the processor clock speed by 33% though it will still be underclocked presuming it's a 2.6C.

edit: I'd imagine the P4G8X has overclocking options that would allow you to push the bus up further than the stock 533FSB max of the board, but I don't recall whether the 7205 chipset features PCI/AGP bus locking (meaning overclocking above 533 without the lock will increase the PCI bus speed, which is potentially hazardous). If it does, I'd push it as far as it will go wink.gif
emtee
Sure askoff, thanks for the great suggestion.
Here's the HTML CPU-Z generated:

http://www.audiocore.org/cpuz.htm

Hope you guys understand it more than i do... Is there something wrong?
sthayashi
THAAAAAAT'S your problem.

Your Front Side Bus (FSB) should be operating at 200MHz, not 100MHz. Everything is based on that including your Bus Speed and Processor clock. The processor gets its clock by multiplying the FSB by a certain multiplier value, 13x in your case. Your bus speed is your FSB multiplied by 4. Thus the 800MHz bus speed.

You should be able to set your Front Side Bus frequency in the BIOS to 200MHz. That should fix your problems. If you CAN'T set it in the Bios, then you can either use jumpers on your motherboard (find your motherboard manual), or you have a really old motherboard.
sthayashi
Also, your CPU usage will NEVER exceed 50% when running a single threaded program. Because Task Manager reports the usage of BOTH processors as one. I have a dual processor system and that's always the case with single-threaded programs.
Andavari
QUOTE(emtee @ Apr 15 2004, 05:14 PM)
My BIOS (Asus Motherboard P4G8X Deluxe with an intel chipset) actually sees 2 CPUs, each one of them running at 1.3 Ghz (1.3*2 = 2.6, CiTay  cool.gif ). If i disable hyperthreading, it'll only see 1, still running at 1.3 GHz...

That's different than what my system shows, who knows which one is correct. On my system I have a 3.20Ghz P4 w/HT and shows as two 3.20Ghz processors. If I disable HT it shows as one 3.20Ghz processor.
Audible!
QUOTE
Your Front Side Bus (FSB) should be operating at 200MHz, not 100MHz. Everything is based on that including your Bus Speed and Processor clock. The processor gets its clock by multiplying the FSB by a certain multiplier value, 13x in your case. Your bus speed is your FSB multiplied by 4. Thus the 800MHz bus speed.


It IS his problem, but his motherboard and his chipset do not officially support a front side bus frequency greater than 533MHz.

emtee:
Go into BIOS on boot (delete key) and change the Front side bus to "133" or "533" depending on whether it is currently at "100" or "400".

That (533) is the maximum frequency front side bus supported by your motherboard. Since it is an Asus model, it should support increasing the frequency above that level, but the chipset is not designed for such high frequencies.

Nonetheless, were it my board I would try to increase it to at least "667" (166) and run the memory asynchronously. That would be overclocking however.

If you wish to run that chip with the highest frequency officially supported by the motherboard, you should run it at "533" (133) with the memory set to run synchronously.

Looking over the features of the motherboard, Asus states it supports overclocking the processor up to an 800MHz FSB, which is what you want. However, you must run your RAM asynchronously (i.e. at a ratio that keeps the RAM running on a 133MHz FSB) at this FSB frequency (assuming it is PC2100 or PC2700 and not PC3200), and this FSB is not supported by the chipset officially so may be unstable.

It also appears that the AGP/PCI frequency is locked with this motherboard, which means you don't have to worry about your peripheral cards and graphics card if overclocking.
askoff
E7205 chipset is quite good altho it is officialy designed to 533MHz FSB. If you like to try overclokin your motherboard, feel free to do so. I can promise that your motherboard will work at 166MHz (667MHz) FSB easily and propably even more. Remember that your RAM's almost have to support 400MHz (or at least 333Mhz) clock speed if you want to overclock(, I cant remember what divider the chipset has for memory bus). PCI and AGP buses can be locked to 33/66 MHz in that motherboard.
I've seen same board runing over 180MHz FSB, but I don't remember if it was modified by anyway (Voltage mods for chipset).

One verry safe way to have your CPU working at full speed is to sell your motherboard and buy ASUS P4P800 (Deluxe) for and example. That way you can have full 800MHz FSB speed and your CPU works it rated speed then.
emtee
You were absolutely corrrect. The FSB at 100 MHz was the problem.
The CPU Speed in my BIOS was set to Auto (1300 MHz). Changing this value to "Manual" and the CPU External Frequency from 100 to 200 resulted in a speed increase from 1300 MHz to 2600 MHz.
There are no settings to tweak the memory in the BIOS, although i'm pretty sure my DDR supports 400 MHz.
So, let me get this straight, my problem is that my motherboard does not nativelly supports a 800 MHz FSB Speed, and what i'm doing here, by changing the CPU External Frequency is overclocking it?
If that's the case, i'll try to explain my situation to the hardware vendor, to see if i can get this board replaced by another one (ASUS P4P800 Deluxe ?). I don't feel confortable overclocking components, and my system has already crashed once since the CPU External Frequency change.

btw: my cpu frequency is now set to 166MHz and everything seems ok. Is this safe value?
CiTay
QUOTE(emtee @ Apr 16 2004, 11:53 AM)
So, let me get this straight, my problem is that my motherboard does not nativelly supports a 800 MHz FSB Speed, and what i'm doing here, by changing the CPU External Frequency is overclocking it?

You're not overclocking the CPU, since you have the 2.6C (800 MHz "quad-pumped" FSB + HT). You're only overclocking the motherboard and probably the RAM, while the CPU is running at spec speed. The Intel E7205 was the first Dual-Channel chipset IIRC, but it didn't support DDR400 (800 MHz FSB) yet, see http://www.intel.com/design/chipsets/e7205/. That was only introduced later with the i865/i875 chipsets.

QUOTE
If that's the case, i'll try to explain my situation to the hardware vendor, to see if i can get this board replaced by another one (ASUS P4P800 Deluxe ?). I don't feel confortable overclocking components, and my system has already crashed once since the CPU External Frequency change.

Wait a second, are you saying that guy sold you this configuration, with an FSB533 mobo and an FSB800 CPU? He should definitely replace the board and apologize.

QUOTE
btw: my cpu frequency is now set to 166MHz and everything seems ok. Is this safe value?

Yes, but you're still not getting what you paid for.
CiTay
Ok, since you have a locked CPU multiplier of 13x, let's look at the possible speeds.

100 MHz FSB / 1.30 GHz CPU / DDR200 (Double Data Rate, 100*2), PC1600 / 400 MHz quad-pumped FSB

133 MHz FSB / 1.73 GHz CPU / DDR266 (Double Data Rate, 133*2), PC2100 / 533 MHz quad-pumped FSB

166 MHz FSB / 2.16 GHz CPU / DDR333 (Double Data Rate, 166*2), PC2700 / 667 MHz quad-pumped FSB

200 MHz FSB / 2.60 GHz CPU / DDR400 (Double Data Rate, 200*2), PC3200 / 800 MHz quad-pumped FSB

You see that everything below spec speed means a serious degradation in CPU speed and RAM thruput. So i'd definitely try to get an i865/i875-based motherboard that can handle FSB800, and make sure you have DDR400 / PC3200 RAM.
ddrawley
The ASUS P4P800 Deluxe with 865PE chipset rates well on several review sites. I am drooling over one of these myself.

Edit:

I agree with Citay above. The link above shows MOSEL DDR-SDRAM PC3200 - 512 MBytes, so your RAM is fine.

Intel lists Windows XP as the only OS that 'fully supports' Hyperthreading. I won't debate what you may be able to achieve in a 'non Intel recommended' configuration.

Intel says this about your motherboard chipset:

QUOTE
Features that Maximize Performance and Balance the Platform

IntelŪ PentiumŪ 4 processor with 512KB L2 cache and a 533 MHz system bus provides up to 4.3 GB/s of bandwidth between the processor and the chipset.
Dual DDR266 memory channels provide up to 4.3 GB/s of memory bandwidth, which exactly matches the system bus bandwidth.
The direct attach AGP 8X port provides 2.1 GB/s of graphics bandwidth directly out of the MCH.
The ICH4 provides advanced features, including Hi-Speed USB 2.0.



Your motherboard is not suited for the CPU you have. It is running the CPU well below it's potential.
Audible!
I would demand either a replacement CPU of greater frequency that has a stock 533 MHz FSB or a replacement motherboard using the 865PE or 875 chipsets, the former being somewhat less expensive but almost exactly as good as the latter.
Both the 865PE and the 875 support the 800MHz FSB of your CPU natively with dual channel PC3200 (DDR400).
askoff
QUOTE(Audible! @ Apr 16 2004, 12:16 PM)
I would demand either a replacement CPU of greater frequency that has a stock 533 MHz FSB or a replacement motherboard using the 865PE or 875 chipsets, the former being somewhat less expensive but almost exactly as good as the latter.
Both the 865PE and the 875 support the 800MHz FSB of your CPU natively with dual channel PC3200 (DDR400).

I'm quite sure that this P4 2.6C CPU is much faster in right motherboard than P4 2.6B (533MHz FSB) in this E7205 motherboard.
emtee
Thanks a lot for all the clarifications and replies, guys. Next week i'm going to tell the hardware vendor exactly what you told me and try to replace this board by another one that fully supports my CPU.
I'll post the "negotiations" results here later, in case anyone's interested.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.