Intel’s latest generations of consumer CPUs have lost the ability to run AVX-512 instructions. Because they run a mix of powerful cores and low-power ‘Efficiency’ cores that don’t support AVX-512, the instruction have been disabled in the P-cores to prevent any problems with software that expects all cores to have the same instructions available. This is an irritation for someone who would like to have the convenience of running AVX-512 code on your own PC. The advanced SIMD intructuions are disabled on both the 12th gen and 13th gen Intel mobile and desktop processors, also known as Alder Lake and Raptor Lake.
Why am I after AVX-512 support in my personal machine? I would like to write data engineering code that makes use of these instructions to get peak efficiency on large data sets. There are still unsolved problems in this space. I thought I’d do some product research to see what’s available.
What will Intel do about the mixed P and E core problem? Perhaps software support will catch up, or perhaps the E-cores will support a minimal AVX-512 functionality, however the register array sizes expected can’t really faked. Perhaps AVX-512 support will be abandoned on consumer machines in the near future in favour of a more scalable instruction set similar to ARM’s Scalable Vector Extension (SVE). I feel like Intel can get away with not having this support on consumer processors, as high-performance processing can be done in the cloud, whereas personal computers these days more likely to be laptops and the battery life is more a consideration there.
The quickest way to use an avx-512 machine is to log into a vps such as amazon or vultr. (with vultr, you would want to select a plan that uses latest generation intel processors. “Regular Performance” don’t have avx-512). That can be had on Vultr from $6 a month. I use vultr, (here’s my referral link with $100 credit ). Cloud providers use server models of processor, if you have a Skylake or IceLake server proc, it should support AVX-512 unless the provider has disabled access to it.
To check if your cloud VM supports it, run
cat /proc/cpuinfo at the linux command line and the string ‘avx512f’ should be present if it’s supported.
Scraping some data with Python
I thought it would be interesting to find out which recent processors support AVX-512 by doing some scraping of wikipedia and intel’s ark cpu database. I’m looking at getting a new laptop or desktop to last me a few years, and I would like to tinker with AVX-512 code with the new machine. However Intel’s latest generations (12th and 13th) processors have mixed types of cpu cores (P and E cores) disabled AVX-512 on the P-cores, so that software wouldn’t crash if it moved from a P core to an E core which don’t support the modern large simd instructions.
I did some scraping, writing the following python code, which is not structured “professionally”, but it did the job. It checks the “Instruction Set Extensions” section of the intel ark page for each processor, for the string “512”.
From the data files you can see that there’s a bunch of server and workstation processors on those lists. I’m looking for a mobile one at the moment, and the Mobile processor families that support those AVX instructions I’m looking for are Ice Lake and Tiger Lake, which are 10th gen and 11th gen Intel processors. Note that there are some processors in that family that do NOT support it, such as the i7-11850H found in the 2nd-from base model Lenovo X1 Extreme. The base model has an i7-11800H, which does support AVX-512, your guess is as good as mine as to why the more expensive one doesn’t have that support.
Rocket Lake Desktop
Rocket Lake is the Desktop version of the 11th gen processors, and it supports our special SIMD instructions, e.g. the i5-11500. It’s still possible to buy them new, and if you’re after high performance, a desktop or a high-power mobile processor (e.g. i5-11500H). For benchmarking, a desktop-class processor is better than a laptop, because it’s easy to run into thermal throttling on a laptop, or probably even a NUC. This is because benchmarks run intensive processing for long periods of time and cause the temperatures to go up.
Skylake X-series desktops
The 9th-gen X-series desktops, such as the i7-9800X support our fancy vector instructions. Most desktop processors don’t have this support, only the more expensive X labelled ones.
Intel Core i3-8121U “Cannon Lake”
This was the first mainstream CPU to add AVX-512 support. There was only one cpu model made available as intel struggled with getting the 10nm process working at that time. Lenovo released the Ideapad 330 Laptop with the i3-8121U in 2018. Intel produced mini-PCs, the NUC8i3CYSM and the NUC8i3CYSN with this processor. In theory you could purchase one of these to work on AVX-512 coding, although there are newer IdeaPads with 11th Gen intel processors, such as the IdeaPad 3i for $399
Tiger Lake Mobile
There’s a few options here. Read on.
ThinkPad L14 Gen 2
This is a more affordable part of Lenovo’s high-quality ThinkPad range than their T14 and X1 Thinkpads. I personally like thinkpads for their keyboard layout (I don’t use the trackpoint knob). I prefer to be able to have separate Home, End, PgDn and PgUp buttons on the keyboard. I had a Dell XPS-13 for a while and found it too frustrating to try to select text with the keyboard without those separate buttons. For example to select to the end of a line, you have to press Shift-Function-RightArrow. If you’re making a mass edit and have to move the cursor and then select text repeatedly, having to press and unpress different 3-key combinations becomes really error-prone. I’m really sore that Apple’s keyboard design got copied in Intel’s ultrabook standard years ago, and most laptop keyboards have been gimped since then.
There is a similar ThinkPad called the E14, but I would prefer the L14 because it has dual-channel memory, so the integrated GPU will operate at its full potential. The L14 also has more ports than the E14. The L14 is also preferable because you can upgrade the RAM to 64GB if needed, using two 32GB SODIMMs. Apparently using Dual-Channel memory only makes about a 10% difference in cpu performance, the larger difference is the GPU performance. In this video someone measures the difference between single channel and dual channel ram performance in the 3D Mark Time Spy benchmark with two nearly identical i7-1165G7 laptops, and he gets a score of 1141 vs 1441, or 26% higher graphics score for Dual-channel memory. However, he ran the benchmark on battery and the slower machine had 10% lower charge. That might be enough for windows to throttle the cpu more conservatively on the machine with lower charge and make the difference in performance greater. Benchmarking is a fiddly thing to get right. You really need to have laptops plugged in and fully charged while benchmarking.
X1 Carbon 9th Gen
The Lenovo X1 Carbon 9th Gen, makes use of Tiger Lake processors such as the i5-1135G7 which support these modern intructions. I’m interested in getting one of these myself, as my current machine is a 6th gen X1 Carbon, and I like the portability and durability of these machines. They aren’t cheap of course. I find that there aren’t options to configure these on Lenovos website, so I’d have to get one 2nd hand if I want to up the specs of the RAM. Link to an Amazon search for the X1 Carbon.
Tiger Lake NUCs
There are a few mini-pcs that have Tiger-Lake-H processor models in them. You’d have to look at the i3,i5 and i7 lines, the Pentium 11th gen doesn’t support AVX-512. Here is an example of a Beelink Mini PC with an i5-11320H processor for $409 and Windows 11 Pro, which is pretty cheap if you have no need for a laptop and don’t want to fit a graphics card in your pc.
MacBook Air 2020
The discontinued Intel Macbook Air 2020 has processors that support AVX-512, for example the I3-1000NG4 in the base model. A 2nd hand one of these might be the cheapest way to get into AVX-512 if you are on a budget and strongly prefer Macs. However I’d recommend the 16GB RAM models as C++ and rust compilers can use a lot of RAM to compile larger projects. There’s only a couple of used 2020 Intel Macbook Airs available on Amazon as I type this.
MacBook Pro 13"
Apple’s discontinued 2020 Intel 13 inch Macbook Pro has a 10th gen Intel processor (Icelake) if you buy the model with 16GB of RAM or more. See everymac.com for more information about this particular model.. For example the I5-1038NG7 processor is a 10th gen IceLake Microarchitecture that supports AVX-512. You might be able to get one of these second hand on Amazon for example. However The 16" Intel Macbook Pro does NOT have any models with a 10th gen cpu in them, only 9th gen. 2nd-hand 13-inch 16gb macbook pros are available on Amazon , but they’re used or reconditioned. I wouldn’t particularly recommend the Intel Macbooks at this stage, though, because they use 10th gen processors with the Ice Lake architecture, which is a step behind in performance of the 11th Gen Tiger Lake processors you can get with non-apple brands.
I have enjoyed looking through the lists of processors and researching which models had the AVX-512 support I’m after. The mobile processors I’m looking at are superseded, but are recent enough that they still have decent performance, especially with the fast ssds that are available these days.
Please note that I have included some Amazon affiliate links in this content. By using these links, you can support this website and contribute to the creation of more helpful content.