|
Note: Only tested on XP/32 - compiled in VC6/C++
#include <intrin.h>
CString CPU_Name()
{
int CPUInfo[4] = {-1};
__cpuid(CPUInfo, 0x80000000);
unsigned int nExIds = CPUInfo[0];
char CPUBrandString[0x40] = { 0 };
for( unsigned int i=0x80000000; i<=nExIds; ++i)
{
__cpuid(CPUInfo, i);
if (i == 0x80000002)
{
memcpy( CPUBrandString,
CPUInfo,
sizeof(CPUInfo));
}
else if( i == 0x80000003 )
{
memcpy( CPUBrandString + 16,
CPUInfo,
sizeof(CPUInfo));
}
else if( i == 0x80000004 )
{
memcpy(CPUBrandString + 32, CPUInfo, sizeof(CPUInfo));
}
}
CString s = CPUBrandString;
s.TrimLeft(); s.TrimRight();
return s;
}
|
|
|
|
|
|
I really enjoied (sp??) your library , but there is a problem
in the identification code, i have a quad core and it doesn't detect
it, the name is unknown and it doesn't detect the cache on board.
Also misses some features i know i ahve mounted on the chip.
Is there any chance to see the windows version ?
in the download is present only the linux version
|
|
|
|
|
Hi all,
Can any body tell me whether the camel identification tool is available for 64-bit windows.
|
|
|
|
|
Hi, Iain!
I would like to use your code on a commercial software, which won't be licenced under GPL. So, is there any possibility to use your code under some other licence? (Some authors sell also commercial licences for GPL code, i.e. http://www.artpol-software.com/Purchase.aspx[^] )
Thanks for answer!
Regards,
Jaakko
|
|
|
|
|
Hello,
I have code like what you have shown in Camel, using the CPUID instruction, to detect the type of CPU the program is running on (under Win32 and Linux). But I have not been able to find out how to detect the number of physical and / or logical CPUs present in the system. Could you provide any hints on how you can do this?
Thanks in advance and best regards.
Gonzalo Diethelm
|
|
|
|
|
First of all, thanks for sharing such an important code for managing
cpuid informations.
I've been using your code in these two small projects
http://forum.doom9.org/showthread.php?t=121182
http://forum.doom9.org/showthread.php?t=121066
My apologizes if I had to ask for permission before, I picked from
and old avisynth code. It was when I tryied to update this code for newer machines
I realized that I had to ask permission before using it.
I have looked for days in the net and couldn't find any newer the one is in avisynth project
page.
Are you still working in this project, where can I find an update version?
Thanks in advance
Enrique Ardanaz (ardanaz@excite.com)
|
|
|
|
|
hi,
i am working on a project wherein i need to retrieve the cpu power management information.
Can I use your code?
Also if you could help me by telling is there any way to retrieve CPU temp by using your code, it will be really wonderful.
Please help.
Thanks,
Manasi
|
|
|
|
|
Hi!
How is it possible to identify different cores on dual or quad core cpus?
thx.
juergen
|
|
|
|
|
Hi!
I want to write a small program (commandline-tool) to get the count of cpus, cores, HT,...
may I do it?
thx.
juergen
|
|
|
|
|
Hi,
I'm working on a library that uses opengl to create GUI-s based on text files and I need to detect the cpu features so I can write my assembly code.
For the moment is in alpha stage so the only link I can provide you is this http://sourceforge.net/projects/celui
So I need to use parts of your code probably that is why I'm asking for the permission.
all the best.
dacian
nothing is new only rediscovered
|
|
|
|
|
hi
i am doing project in my final semester. and i want to use this program to have the information.please send me code at rakeshsemilo@yahoo.com
|
|
|
|
|
I tried creating a VC6 project for Camel. Did "New Win32 App" (NOT console) and added all files to the respective folders ("Header Files", "Source Files", "Resource Files"). Then changed the "C Code generation" option: for Debug, set it to "Debug Multithreaded DLL"; for Release, set it to "Multithreaded DLL". Saved the project and hit "Rebuild All" with the default configuration, which is Debug; everything works and I end up with an executable that can be run without any problems.
If I now quit MSVC, restart it, reload my newly created project and hit "Rebuild All", everything compiles but the linker complains (the error code is LNK2001) that it cannot find "WinMain@16". What the hell? I have made ZERO changes to the source files or the project files!
Any hints are more than welcome. Thanks and best regards.
|
|
|
|
|
Ok so, I imported the code into VS2005 and compiled it into a DLL, but I can't seem to be able to use it in VB.NET... I add a reference to the DLL and I can declare a new variable with the type of CPUInfo, but it has no methods, only a few array methods... Apparently it is a structure not a class... still, that doesn't explain why it doesn't work :S
Any help would be appreciated
-- modified at 15:26 Sunday 22nd January, 2006
|
|
|
|
|
Time to learn real language.
|
|
|
|
|
On some machines the CPU name comes back Pentium® III (0.13 µm) With 256 Or 512 KB On-Die L2 Cache. Some are Pentium® III (0.18 µm). Seems to be only a Pentium III problem.
Is there a way to convert it to a processor speed?
We're using it for customer bug reports. Some of our customers have very old machines.
Everything else is working great. Nice work, Ian.
Matt
|
|
|
|
|
Version.dwMajorVersion == 5 && Version.dwMinorVersion == 2 is Windows 2003
|
|
|
|
|
Hi
I'm wirting on at free application detection system information, but I have ran into som problems with the Level XX cache, my routines does not always detect ti correct, but youers does whork where mine do not.
I've got support for some more CPU stuff than you if interested, please send me an email
Jens Borrisholt
|
|
|
|
|
Iain,
I am doing a project for school, and I would like to use your cpu_info source. I'm writing a multi-track audio recording application, and I require having a delay in part of the applicaiton in order to synchronize sound playback & recording, and it looks like I'll need to adjust the delay based on computer speed. Your source would help.
Eric
|
|
|
|
|
Dear Iain,
Im doing a personal project which gets the system information. Will you please give me permission to use your CPU Identifier class in my Project ?
Regards,
Jijo.
________________________________
Yesterday is history,
Tomorrow is a mystery,
But today is a present.
|
|
|
|
|
Hello,
I am trying to detect if my Xeron SMT processor has L3 cache. My OS is Red Hed linux. Where can I get a version of camel for Linux?
Thanks
|
|
|
|
|
Hello
Congratulations. Your code is designed to find each processor with hyperthreading like 2 processors ?
I'm running it in a dual Xeon server (with hyperthreading) and Camel says that I have four processors. It do not would say that I have two processors with hyperthreading enabled in both ?
Thanks
|
|
|
|
|
Hi,
Is there a way to find out the data and/or instruction cache line lengths and associativity? This can be very helpful when optimizing code, e.g. loop unrolling.
WCPUID can show it so it must be in there somewhere.
Thanks a lot,
Adi
|
|
|
|
|
I have Celeron 333 and, al least for Debug Build, your software identifies it as Generic Pentium 2 333 or 585 or 266. What is the problem?
|
|
|
|
|
I am so sorry that I can't get the CPU ID number. How to get it?
===========================
Nothing to say, Just do it!
|
|
|
|