-3

My old desktop PC is not able to run some modern Docker images due to architecture version. That Desktop has an AMD Phenom II x6 1100T BE, and after a really long search on the internet, I found that that processor has an x86_64-v2 architecture.

Also, I know that, MongoDB (un)officially drop support for Raspberry Pi 4 after version 4.4.18, also due to the CPU architecture, in this case ARMv8.0-A.

How could you determine the exact architecture and architecture version?

8
  • 1
    x86 microarchitecture feature levels are unofficial, not part of a vendor spec and aren't an exact description of the features your CPU supports, just a baseline that's lower than it. (e.g. your CPU supports PCLMULQDQ which afaict isn't required for any feature level). en.opensuse.org/X86-64_microarchitecture_levels lists CPU families that support v2, but strangely not other levels. In contrast, ARMv8.0-A is an official vendor thing that is described in the vendor's architecture manuals, so not exactly comparable. Commented Nov 24 at 4:51
  • 1
    I don't expect there's any cross-platform way to get architecture version in the way you're talking about, not with the recent x86 microarch feature-level thing on x86-64 and official ISA version numbers on other ISAs, or RISC-V ISA profile strings like GCC/Clang use with -march=rv32gc+Zbb+whatever (gcc.gnu.org/onlinedocs/gcc/RISC-V-Options.html#index-march-13). Or maybe a tool exists which can do that. But for x86-64, simplifying to a feature level would be weird vs. reporting exact features for RV32 / RV64. Commented Nov 24 at 4:55
  • 1
    On Linux, /proc/cpuinfo has a complete list of CPU features your CPU supports, including sse4_2 and lower SSE levels, which are most of what x86-64-v2 implies. According to techpowerup.com/cpu-specs/phenom-ii-x6-1100t-be.c698, your CPU only has up to SSE3, not SSSE3 or SSE4.1/4.2, so it's actually only x86-64-v1 / baseline. (It also has SSE4A, which is an AMD extension that's totally separate from Intel's SSE4.1 or 4.2. And 3dNow, another AMD extension. Yours is one of the newest CPUs to not support x86-64-v2, unfortunately. Also not PCLMUL, I was wrong earlier.) Commented Nov 24 at 4:58
  • Since I mentioned PCLMUL, I think all CPUs with x86-64-v2 features also support it, unless one of the Via or Zhaoxin CPUs don't, but gcc -march=x86-64-v2 doesn't enable it. (godbolt.org/z/7Mc78dz46) Commented Nov 24 at 5:11
  • @PeterCordes Ok, I do get what you are saying, but still I don't know how to differentiate this effectively, I work with really old systems, and this exact problem is starting to appear often. When I install Linux on these systems, sometimes there are errors from GLIBC indicating that the CPU Arch is not compatible, even though I downloaded a compatible architecture image. I want to be able to programmatically differentiate all kind of processor (x86, x86_64, ARM, PowerPC, etc.), so I cant prevent, and maybe correct, this behaviour. Commented Nov 24 at 17:49

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.