The December 2003 issue of SOS contained a feature of mine about installing a new PC motherboard, and since I wrote it I've discovered something else that may well be useful if you do this with your PC at some time. It's a way of cleaning up the Windows XP Registry (and those of Windows NT and 2000, for that matter) after the motherboard change-over, to remove references to hardware that no longer exists. Even if you're not considering a new motherboard, this same procedure will help you clean out references to hardware that's been unplugged, such as old soundcards, graphics cards, hard drives, monitors and so on, plus any installed USB devices that aren't currently plugged into any USB ports.
You won't normally spot these references in Device Manager, or even when performing the Safe Mode Cleanup that I described in PC Notes June 2000, and although your PC may be working well despite these invalid references, there's still a chance that at some stage you may try to install a new hardware item that has similar properties. The old driver files could then spring into action and cause problems. So, for the cleanest and most reliable PC, it's safest to remove them all. Here's how.
Normally, Device Manager only shows devices that are currently connected, even if you use its 'Show hidden devices' option. What we're going to do is to force the redundant devices to appear inside Device Manager, so we can delete them once and for all.
After a major hardware change, such as upgrading a motherboard, or after removing various PCI and AGP expansion cards, it's best to clear out the hidden entries in Device Manager.
|
First, start the Windows Command Line Prompt, by selecting the Run option in the Start menu, entering 'cmd.exe' into the text dialogue and pressing return. This will launch a DOS window into which you type the following commands, pressing return at the end of each line (see screen, bottom of page):
set devmgr_show_nonpresent_devices=1
start devmgmt.msc
Device Manager will automatically appear after the second command, and now if you go into its View menu and select 'Show hidden devices' you should see quite a few greyed-out items referring to missing hardware. After a motherboard upgrade these will usually include the old processor type (in my case, a Pentium III that was replaced by a Pentium 4), as well as the motherboard chipset, IDE controllers, USB Host Controller, IEEE1394 host controller, network adaptor, and so on. You could well also have duplicate entries for your various hard drives, optical drives and display adaptors. It's probably just as well to uninstall any 'Unknown devices' too, as well as any greyed-out items titled 'Generic volume' in the Storage volumes section. The latter are likely to be due to partition changes after using utilities such as Partition Magic.
However, you should leave any devices in the section labelled 'Non-Plug and Play Drivers' and any Microsoft filters in the 'Sound, video, and game controllers' section. Windows also treats each USB port individually, so for a system with six ports you may see a valid attached device and up to five ghost devices (one for each of the ports), which you can also ignore. Don't delete any greyed-out USB device that you're still using but isn't currently plugged in; if you do, you'll need to re-install its drivers the next time you want to use it. Otherwise you can uninstall each item in turn that refers to a known piece of hardware that's no longer connected, and when you next reboot you'll have a cleaner machine.
Back in PC Notes August 2003 I explained the ins and outs of Intel's Hyperthreading technology, which lets Xeon and Pentium 4C processors appear to Windows XP Home and Professional or Linux 2.4x as two 'virtual' processors instead of one physical one. They each share the various internal 'sub-units', including the all-important floating-point unit, but can run two separate processing 'threads' simultaneously. I've had HT disabled on my own Pentium 4C 2.8GHz machine until now, partly because I still run Windows 98SE partitions alongside my XP ones. Since 98SE doesn't recognise HT technology it may cause problems to leave it enabled in the BIOS. In addition, as I reported in PC Notes January 2004, GigaStudio 2.53, which I use, won't run with HT enabled either.
I recently had a Dual Xeon PC from Red Submarine to review for SOS. Since this has true multiple processors, I was interested to see how the virtual processors of an HT-enabled machine compared to it. I used my own Pentium 4C 2.8GHz PC, with Hyperthreading enabled, as the test bench and began my tests by running Waves plug-ins, inside Wavelab 4.01a, on this PC. The plug-ins included the Renaissance and Trueverb reverbs, C1 compressor/gate, C4 multiband parametric processor, and Renaissance EQ running six bands. For each one I made measurements with and without Hyperthreading enabled, and apart from experimental error the results were identical.
This confirmed what I had expected. Hyperthreading makes no difference to single apps that are not aware of it, nor those that run a single stereo audio stream rather than multiple audio tracks, each with their own complement of plug-ins or soft synths. (In the latter case multi-processing is more likely to be of benefit). However, you may well notice performance improvements when running several such applications simultaneously.
Next, I ran Steinberg's 'Five Towers' Performance Test, the 'Five Towers' version 2.0 test, which has higher CPU overheads, and Steinberg's Cubase SX 2.0.1 'Heaven And Hell' demo. This provided more interesting results, because SX 2 relies on running multiple 'threads' and has been optimised for HT.
I measured all three songs in 'Stop' (only plug-ins running) and 'Play' (with soft synths as well), at both 23ms latency and 3ms latency, to isolate the effects of interrupt overheads. To explain this a little further, as you drop latency below 23ms CPU overhead rises, simply due to the massive number of interrupts per second. Within the bounds of experimental error, most results for each of the three songs were almost identical, except for the 3ms 'Play' values, which showed a significant improvement of between 10 and 12 percent.
Although these figures aren't as high as some I've seen, they're still not to be sneezed at and they demonstrate that Hyperthreading works best with Cubase SX 2 just where musicians already need a helping hand — running soft synths with low latency.
Cakewalk's Sonar 3.1 also has a new multi-threaded engine that works with Hyperthreading as well as true multi-processor PCs. Cakewalk's Ron Kuper has recently published a 'White Paper' on its performance, and while it provides significant improvements with a true dual-processor PC (see my review of Red Sub's Dual Xeon PC starting on page 90 for more details), it doesn't do so well with Hyperthreading.
Cakewalk themselves measured a six to seven percent improvement on a Pentium 4 3.2GHz HT system when they switched on the new engine, and I measured a similar four to five percent improvement on my own P4 2.8GHz machine. However, after disabling Hyperthreading altogether in the BIOS and measuring Sonar 3.1 overhead again, the results were less than two percent better than those with HT on and Sonar's new engine enabled. So overall Sonar 3.1 doesn't seem to noticeably benefit from HT being enabled.
Unfortunately, there are further stings in the tail. Despite HT having been available since 2002, there are still audio applications that disagree with it, and if you're currently running one of these you won't be able to activate HT in your BIOS until an update appears. As previously mentioned, for me the most serious is GigaStudio, but this should be solved when version 3.0 is released in June.
More seriously, Digidesign state specifically on their web site that HT must be disabled if you're running any of their hardware under Windows XP. I've come across other users who have problems with NI's Kontakt, and Cakewalk have recently posted a warning on their web site that some Pace-protected software can cause a crash or complete lock-up with HT enabled. Antares plugins are specifically mentioned. Waves plug-ins are apparently happy with HT, which fits in with my own experience. ![]()