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