Hi!
I have a processor with the next brand string: "Intel Core i7 CPU M 620 @ 2.67GHz"
I have read that i7 CPU-s supports AVX technology. I wrote a program that detects cpu features by cpuid instructon. The program says that this processor DOESN'T supports AVX. When I check the result of cat /proc/cpuinfo in linux, avx is missing from the flags. What is the problem?
Thank You for Your help!
I have a processor with the next brand string: "Intel Core i7 CPU M 620 @ 2.67GHz"
I have read that i7 CPU-s supports AVX technology. I wrote a program that detects cpu features by cpuid instructon. The program says that this processor DOESN'T supports AVX. When I check the result of cat /proc/cpuinfo in linux, avx is missing from the flags. What is the problem?
Thank You for Your help!
链接已复制
5 回复数
I beleive this is a generation before Sandy Bridge. It does not support AVX. Processor with AVX support are mainly launched in 2011.
http://ark.intel.com/products/family/59143
http://ark.intel.com/products/family/59143
You can use this C code to detect AVX and other features on the processor:
[cpp]
#define OSXSAVEFlag (1UL<<27)
#define AVXFlag ((1UL<<28)|OSXSAVEFlag)
#define FMAFlag ((1UL<<12)|AVXFlag|OSXSAVEFlag)
#define CLMULFlag ((1UL<< 1)|AVXFlag|OSXSAVEFlag)
#define VAESFlag ((1UL<<25)|AVXFlag|OSXSAVEFlag)
inline bool SimdDetectFeature(U32 idFeature)
{
int EAX, EBX, ECX, EDX;
cpuid(0, EAX, EBX, ECX, EDX);
if((ECX & idFeature) != idFeature)
return false;
return true;
}
[/cpp]
