cpuid wrapper

Frits van Bommel fvbommel at REMwOVExCAPSs.nl
Tue Oct 24 15:22:55 PDT 2006


Tomas Lindquist Olsen wrote:
> Hi all,
> I've written a simple class that encapsulates the cpuid instruction. It 
> could probably be improved and polished, but I'm fairly happy with it.
> 
> One thing I'm considering is if a static only class would be better, 
> it's not like the info can change dynamically...

Maybe even just a module with some functions? (with recommendation to 
use static import)

> Get it here: http://famolsen.dk/d/cpuid.zip
> 
> The zip contains the cpuid module and a simple test app. Running the 
> test app I get personally get this:
> 
> Vendor string:    AuthenticAMD
> Processor string: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
> Features:         MMX SSE SSE2 SSE3 3DNow! 3DNow!+ MMX+ AMD64 HTT
> Multithreading:   2 threads / 2 cores
> 
> The threading info should work on both Intel and AMD cpus, but I have no 
> way to test the Intel path. Any feedback would be much appreciated.

After a small patch:
	char[12] vendorStr = ' ';
	char[48] processorStr = ' ';
(Otherwise it crashes with an "invalid UTF string" exception)

it returned this:
   Vendor string:    GenuineIntel
   Processor string:
   Features:         MMX SSE
   Multithreading:   1 threads / 1 cores
on my laptop, which looks about right. Guess my laptop is so old it 
doesn't have a processor string.
Well, either that or your code's buggy :P. (It's a Celeron according to 
the sticker, and about 750 MHz IIRC)

Other computer:
   Vendor string:    AuthenticAMD
   Processor string: AMD Sempron(tm) 2600+
   Features:         MMX SSE 3DNow! 3DNow!+ MMX+
   Multithreading:   1 threads / 1 cores
also looks right.

 > Also, I'm considering creating a library with sse/2/3 optimised batch
 > operations for vector operations normalisation etc. Would such a library
 > be of interest to the D community?

Not useful to me personally but the more D code is out there, the better :).



More information about the Digitalmars-d-announce mailing list