I was hoping that hyperthreading would speed up simultaneously running
an FPGA compiler and an MS-DOS math program that I use for simulation
of the FPGA outputs. When I run both programs, a compilation takes up
to four times longer than when I run only the compiler, 24 minutes
versus 6 minutes. 6 minutes is slow but 24 minutes is intolerable. A
computer at work with dual-core CPU and dual-channel memory runs the
compiler in the same time (2.5 minutes) regardless of the MS-DOS
program. A faster computer at home is impractical right now.
The 3.06GHz CPU now runs stable and cool but without hyperthreading,
according to Belarc Advisor and Windows XP Task Manager. I have not
found anything in the BIOS setup about controlling hyperthreading.
How can I enable hyperthreading?
Well, I am embarased. The control is there in the Advanced section of
the BIOS setup, I just didn't see it. I enabled hyperthreading there
and booted. New hardware was found and I rebooted. Voila -
hyperthreading was enabled!
Nice catch :) And how's the performance treating you?
Another utility you can use, is Intel PIU (Processor Identification Utility).
There may be a page in there, listing "features".
http://www.intel.com/support/processors/tools/piu/sb/CS-014921.htm?wapkw=(piu)
There are a few settings and things to check -
1) Enough Vcore power rating. Proof of that, is finding the processor in
the CPU Support list. I see an entry here that might be yours, so that
looks OK. With HT on, the processor might draw 10 watts more under load.
http://www.gigabyte.com/support-downloads/cpu-support-popup.aspx?pid=1300
2) The BIOS may have an entry to enable or disable Hyperthreading. It may
also pass an ACPI table entry to the OS, with some information to that
effect ("two cores"). Boot the system with a Linux LiveCD and see if
"two penguins" appear on the screen, early in the boot sequence. An example
of such a CD would be one from Ubuntu.com . This is only worthwhile at
the moment, if you happen to have such a CD. It's a rather large download,
just to get to see an icon.
3) The BIOS may not place a line on the screen, enabling or disabling
Hyperthreading, if the processor doesn't have Hyperthreading. So when
your 2.4GHz processor was in there, it may not even be possible to verify
that the BIOS is ready for it. The Hyperthreading control may only be
evident, when an HT processor is in there.
4) In addition to a "HyperThreading" [Enable/Disable], check that ACPI
is enabled in the BIOS. I can't see an entry in the manual for that
(just the suspend type of S1 or S3, where S3 is Suspend to RAM). Some
BIOS have an option to select ACPI 1.0 support or ACPI 2.0 support.
I generally crank that one up, for no particular reason.
5) Some boards have a "MP 1.1 versus MP 1.4" setting, which has to do
with multiprocessor support. Intel invented the APIC, which is an
advanced interrupt controller. On multiprocessor systems, an IOAPIC
is part of the solution that allows steering interrupts to one
processing core or the other. The "MP" standard had something to do
with signalling that IOAPIC and multiple processors were present.
When a motherboard doesn't seen to be enabling all the cores, try
toggling that setting.
6) Next comes your OS. This is probably the step you're missing. Windows 98
only supports one core, so HT wouldn't help there. You would need Windows 2000
or later, to support more (I don't know about Win ME and what choices it
offered). First, fire up Device Manager (devmgmt.msc), using one of the
many methods of getting there. Look for a Computer entry near the top.
(The Device Manager display is mode dependent - try View:Devices by Type.)
If you click the (+) next to the Computer entry, there will be a sub-entry
underneath. Mine says "ACPI Multiprocessor PC". That entry is called the
HAL entry (hardware abstraction layer). If it says "ACPI Uniprocessor PC",
then your OS is only using one core, because that HAL doesn't support more.
Doing a "driver change" sequence, can get you "ACPI Multiprocessor PC".
After a reboot, when you go into Task Manager (control-alt-delete or
from task bar), you can verify there are two CPU graphs. If you don't
see two graphs, verify you've selected this in the Task Manager
options at the top - View : CPU History : One Graph Per CPU. Also,
if you right-click a process in Task Manager, there may be an "affinity"
setting, and you can force a running process to stay on one core or the
other. By default, a launched process has both boxes ticked under affinity,
allowing the OS Scheduler to bounce the task from one core to the other
at its leisure. The presence of two affinity boxes is also proof HT is
enabled and working.
HTH,
Paul
It's definitely better.
FPGA compile time without MS-DOS program running: 5 min 24 sec, about
1 minute faster than before.
FPGA compile time with MS-DOS program running: 7 min 6 sec, still not
good but a whole lot faster than before.
I also wanted to be able to play 720p X264 MKV video files without
stuttering. Previously stuttering was common. I had tried replacing my
64MB Radeon 9000 fanless video board with a 512MB ASUS AH3650 Silent
HDMI video board. It made no difference, probably because of the
motherboard's AGP 4X interface. The 3.06GHz CPU seems to have cured
the problem even while using the old Radeon 9000 video board.
Russ
I got hyperthreating enabled and working. I had simply missed seeing
it in the BIOS Setup.
The 3.06GHz CPU is on the support list. It seems to be working well.
The 3.06GHz processor actually runs 2-4 degrees C cooler than the
2.4GHz CPU did prior to replacing it. Part of that is probably because
I vacuumed out 8.5 years accumulation of dust on the stock Intel fan
and heat sink, and used SIIG Diamond thermal grease instead of
Wakefield silicon grease. Maximum temperature I have seen on the GWUM
Hardware Health utility is 48 degrees C.
Russ