What is x86-64-v3? Understanding the x86-64 microarchitecture levels

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
okay so if you've been following the Linux news recently you'd have seen this term pop up occasionally x86 64 V3 the question is what is it why does it matter to Linux and what is all the fuss about so if you want to find out more please let me explain okay let's go back 39 or so years to the Intel 8o 386 the 386 for short it really was a turning point for modern desktop and serice Computing so it was released in 1985 and it was Intel's first 32-bit processor and it included a full memory management unit which means it could run os's that use virtual memory if you want to know more about virtual memory then I do have a video here on this channel what is virtual memory mmu page tables and more I highly recommend of course I do that you check out that video however things didn't stop uh just with the x86 as defined by the Intel 3 386 there's always been more progression things have changed um and as the time has gone past this older chip and its micro architecture and the instructions it had have kind of been dropped so Debian Linux dropped 386 support in 2005 completely removed it in 2007 and the Linux konel itself dropped support in uh 2012 even though Linux was originally actually developed on 38 6 and 486 machines now after the 386 came the 486 the 586 the 686 and so on for naming purposes they got called the Pentium pent for 5 586 and Pentium 2 and so on because you can't copyright a number so that's why that didn't happen uh and each new version added more instructions to the x86 instruction set and introduced new extensions like MMX and SS after a while the common operating system start to drop support for 32bit x86 in total so we moved over into the 64-bit era and so now Windows 11 is 64bit only Ubuntu stopped supporting 32-bit PCS in 2018 Mac OS went fully 64-bit in 2011 and so on so now we're in the 64-bit area that doesn't mean that things have stopped no no sir no no things keep on progressing and so we now have this definition of an XA 86 uh 64 processor and the Baseline is an amd64 x86 64 processor with MMX ssse sse2 which is basically what was in the 2003 AMD K8 processor the first 64-bit x86 processors minus the 3D now parts so that you've basically then got the same compatibility with the first EMT 64t which is Intel's 64-bit processors and yes I do know that amd's processors came out in 64-bit first and they are the ones that Define the X6 64-bit architecture now one step above the Baseline AMD K8 is called and here's where we get this term now x86 64 V2 and it corresponds to the mainline CPU from around 2008 to 2011 and so that's the different processes there from Intel and from AMD for example the AMD bulldozer it includes ss3 3 SS 4.1 and ssse 4.2 as of May 2023 Red Hat dropped uh support for older Baseline x864 processors and now require support from x864 V2 processors open Susi tumble weed also began transitioning to require V2 processors in late 2023 while it currently still targets the Baseline ones the developers are aiming to move to V2 in the future similarly uh Susi Linux Enterprise server recommends V2 for Optimal Performance and may drop support for older processors in the future so what is X 664 V3 which is what all the kind of the noise has been about the fuss has been about recently well it basically adds avx2 and then a couple of more instructions FMA move be uh and some additional bit manipulation instructions avx2 also known as the Haswell instructions it's an expansion to the original AVX uh instruction set that was introduced in Intel's Haswell micro architecture move B instruction is provided for swapping bites on a read from memory or on a right to memory thus providing uh conversion to little Indian and big Indian uh very quickly in Hardware I have videos here on this channel about the difference between little Indian and big Indian if that kind of thing interests you and the fused multiply ad instruction combined multiplication and addition into a single operation that computes the intermediate results with finite precisions very very handy particularly for for gaming for Matrix stuff and of course for neural network stuff so x86 V3 was implemented in the first uh Intel Haswell generation CPUs that's in 2013 AMD implemented it in uh 2015 but uh Intel atom product line only added V3 support with the grace Mount marker architecture however Intel still continue to release atom CPUs without AVX or avx2 uh including the Parker Ridge line uh and some variant in 2023 so this is why V3 has kind of been slowing becoming a baseline because not all Intel processors support it and so therefore mandating it would be a bit problematic however these are atom processes not server processes but anyway uh so you're not guaranteed to have particularly to have a V3 you have to check your particular processor and there is also an x86 64 V4 for completing it's also worth mentioning that adds AVX uh 5112 now if you want to test with your CPU has x86 64 in it then you can use this tool called x86 64 level which uh you can find there in GitHub it's a shell script that basically looks at SL proc CPU info and tells you about your CPU or you can run LD Linux the Linker Dynamic Linker there minus minus help so for example on Ubuntu you'd have to do/ USR lib64 LD Linux x86 64. o.2 help okay and then that will give you a listing and here you can see you know it tells you whether it supports V2 V3 uh and V4 so why is all the fuss about this well Red Hat Linux Enterprise Linux 10 will move to the V3 Baseline Gen 2 is now offering uh V3 packages uh there are experimental builds of Ubuntu server using uh V3 this basically means that when they compile it they use the right compiler Flags to actually make sure that avx2 uh can get used when it needs to if there is a way of doing it that way rather than using you know traditional floating point or or whatever or the FMA instruction or whatever so when the compiler comes across a particular sequence he can say oh I can do that in Hardware using these things but it has to have that Hardware support uh and so that's what's coming out now on what's coming out in these different and I'm sure that lots of other different Linux distributions have various statuses on this on what they are supporting uh NX OS for example is transitioning to V2 in 2024 and subsequently to V3 uh by 20127 now comparing Linux dros compiled with baseline or V2 two to those with V3 show some cases there is a performance boost and in some cases there is a performance decline so the compilers are doing the best they can at the moment try to work out which would be the best route to take which instruction sets to use which extensions to use and sometimes they actually turn out to be faster significantly faster uh and sometimes they're actually a bit slower so this is a maturing technology in terms of the compiler flags and what the code the compiler produces for different use cases however I do want to just underline just because a Dro well-known or otherwise requires a certain microarchitecture level it doesn't mean that Linux itself needs it for example you can still get 32-bit Linux distributions uh even today so that's not a problem uh Linux didn't drop it just that particular dist whether it be Ubuntu or or or whatever so uh you can always find a version of a Linux distribution that suits the particular Hardware you've got particularly if you've got an old PC 32-bit PC you know you can still get them so don't that's not a worry it's about what the Leading Edge and most popular disos are doing if the Linux kernel drop support for a certain microarchitecture level like it did with the 386 that would be a different thing and we're not at that stage yet we're talking about what the dros are doing not the Linux kernel itself and of course this is only about a 64-bit x86 processors from Intel or from AMD does has nothing to do with like for example arm process that you might get for example in a Raspberry Pi or in your smartphone and of course Windows 11 itself talking about Windows rather than Linux has already mandated the use of modern CPUs so You' got eighth generation Intel core or Zen 2 required to officially of course there are work around this but to officially run Windows 11 see my video you probably won't be able to use Windows 11 for more details about that okay that's it my name is Gary Sims this is Gary explains I really hope you enjoyed this video if you did please do give it a thumbs up if you like these kind of videos then why not stick around by subscribing to the channel okay that's it I'll see you in the next [Music] one
Info
Channel: Gary Explains
Views: 58,511
Rating: undefined out of 5
Keywords: Gary Explains, Tech, Explanation, Tutorial, x86-64-v3, x86-64-v2, Linux, AMD64, 64-bit, 64-bits, MMX, SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, AVX-512, FMA, MOVBE, Linux kernel, 32-bit, 32-bits
Id: TnCkYthXUAc
Channel Id: undefined
Length: 10min 26sec (626 seconds)
Published: Tue Feb 06 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.