Intel and AMD's new ACE CPU extensions bring an efficient AI-oriented instruction set to x86 — a new design makes matrix multiplication more power- and density-efficient

CPU silicon
(Image credit: Getty Images)

Most all you hear about "running an AI model" involves a GPU of some sort, but not every AI task is suited to that hardware. Smaller models or single-user latency-sensitive operations can benefit from running on the CPU instead, as it avoids the overhead of shuffling data to and from the GPU. There are also many situations where there is no GPU available to begin with, or it's a meek integrated affair with limited capabilities. Intel and AMD have recently released the full specification for the ACE CPU extensions that make it easier and more power-efficient to run the aforementioned AI tasks on x86 processors.

ACE comes in by offering a technical standard that leverages the existing AVX10 registers but adds silicon dedicated to matrix multiplication. This brings multiple benefits, but the key advantages are better power efficiency, easier development and optimization, and leveraging AVX's 512-bit inputs. The latter makes for easy integration with existing designs by eschewing the need for ACE-specific inputs.

Matrix multiplication is the cornerstone of AI workloads: take a table of numbers, and run a multiplication-addition loop over the whole thing. This has always been possible with most any CPU, though at limited speed. Even today, running these loops uses a lot of power, even when leveraging x86's AVX10 multiply-accumulate instructions — something that's technically a hack, as AVX wasn't designed with 2D matrix operations multiplication in mind.

Latest Videos From

For the same number of input vectors, ACE can perform 16x as many operations, compared to AVX10. Note this doesn't necessarily mean a 16x speedup, as that will depend on each individual implementation, but it's reasonable to expect that Intel and AMD will dedicate more silicon to this task in future designs to improve performance. Plus, as each ACE instruction performs more work than its equivalent AVX10 loop, there's less CPU instruction overhead and potentially better RAM bandwidth usage right off the bat.

The benefits go far beyond just using fewer instructions for the same thing. ACE is intended to be implementation-agnostic, meaning that ML frameworks and their underlying libraries (PyTorch, TensorFlow) can just write one code path instead of having multiple variations depending on the underlying hardware and its degree of AVX support.

ACE native supports most every data type used in ML operations (including but not limited to INT8, INT32, FP8, FP16, FP32, BF16), but it also can use Open Compute Project's MX block-scaled formats natively, something that AVX10 does not provide. Developers will also be able to move some NPU-specific workloads back to CPU when they need something done now and fast. In those situations, not having to deal with the fact that each NPU is different is a huge boon, too, as ACE offers a consistent target across x86 hardware.

Google Preferred Source

Follow Tom's Hardware on Google News, or add us as a preferred source, to get our latest news, analysis, & reviews in your feeds.

TOPICS
Bruno Ferreira
Contributor

Bruno Ferreira is a contributing writer for Tom's Hardware. He has decades of experience with PC hardware and assorted sundries, alongside a career as a developer. He's obsessed with detail and has a tendency to ramble on the topics he loves. When not doing that, he's usually playing games, or at live music shows and festivals.

  • usertests
    What is the point? Does it make sense to do this on the CPU from a TOPS/mm^2 or TOPS/Watt perspective instead of a GPU or NPU? Is it meant to squeeze out a little more performance by enlisting any unused CPU cores? Or is it complementary in another way that isn't obvious?

    I guess if they pull it off, they can kill off the dedicated NPUs and add more regular CPU cores instead. If that isn't power efficient enough, maybe they can create ACE-optimized cores that are at least vendor-agnostic.
    Reply
  • Tech0000
    How does ACE extensions relate to the already established AMX extension standard? I see a lot of overlap. Why create a new standard instead of building on and extend AMX and add more capabilities to it. Is ACE just a way to include AMX capabilities in the AVX 10.x standard road map? Also, the article misses to mention that the very important FP4 and FP6 formats are also included in the ACE extension - that makes this even more useful and more complete.
    Reply
  • usertests
    Tech0000 said:
    Also, the article misses to mention that the very important FP4 and FP6 formats are also included in the ACE extension - that makes this even more useful and more complete.
    I was wondering about FP4 when I read the list.
    Reply
  • JRStern
    Tech0000 said:
    How does ACE extensions relate to the already established AMX extension standard? I see a lot of overlap. Why create a new standard instead of building on and extend AMX and add more capabilities to it. Is ACE just a way to include AMX capabilities in the AVX 10.x standard road map? Also, the article misses to mention that the very important FP4 and FP6 formats are also included in the ACE extension - that makes this even more useful and more complete.
    FP6? OK then!
    Still waiting on FP3 and FP2, not so sure about FP1, lol.
    Reply
  • sygreenblum
    usertests said:
    What is the point? Does it make sense to do this on the CPU from a TOPS/mm^2 or TOPS/Watt perspective instead of a GPU or NPU? Is it meant to squeeze out a little more performance by enlisting any unused CPU cores? Or is it complementary in another way that isn't obvious?

    I guess if they pull it off, they can kill off the dedicated NPUs and add more regular CPU cores instead. If that isn't power efficient enough, maybe they can create ACE-optimized cores that are at least vendor-agnostic.
    I guess it depends on how its utilized. High end tasks will likely not be the main usage for this tech but maintaining and running low intensity applications would benefit from this.

    I run a local AI for real-time voicing on a language learning app I created(to avoid crazy high 11 labs or Narekeet fees). It's not super intensive so running off the CPU and using local memory would likely reduce power consumption by a not insignificant amount compared to using the GPU.
    Reply
  • usertests
    sygreenblum said:
    I run a local AI for real-time voicing on a language learning app I created(to avoid crazy high 11 labs or Narekeet fees). It's not super intensive so running off the CPU and using local memory would likely reduce power consumption by a not insignificant amount compared to using the GPU.
    If we take the GPU off the table, then we're left with CPU vs. NPU. With >50 TOPS (INT8) NPUs expected to be in most of the x86 mobile chips, as well as Zen 6 and Nova Lake desktop CPUs. I think ACE extensions will land in Zen 7 cores, not sure.

    If the NPUs aren't more area/power efficient than using slightly enlarged CPU cores supporting ACE, and using the spare area for more CPU cores, then they may disappear after a couple of generations.
    Reply
  • thestryker
    Tech0000 said:
    How does ACE extensions relate to the already established AMX extension standard? I see a lot of overlap. Why create a new standard instead of building on and extend AMX and add more capabilities to it. Is ACE just a way to include AMX capabilities in the AVX 10.x standard road map? Also, the article misses to mention that the very important FP4 and FP6 formats are also included in the ACE extension - that makes this even more useful and more complete.
    I believe the intent is for ACE to supplant AMX as ACE was jointly developed by AMD and Intel. It sounds like AMD may have done most of the ground work and then Intel stepped in for implementation.
    Reply
  • palladin9479
    This just allows models to run on both CPU and GPU at the same time instead of the CPU being nearly useless for the majority of the process.
    Reply
  • usertests
    palladin9479 said:
    This just allows models to run on both CPU and GPU at the same time instead of the CPU being nearly useless for the majority of the process.
    Intel and AMD have already advertised theoretical maximum "platform TOPS" values combining the CPU, GPU, and NPU. For Arrow Lake-S/HX, it's up to 8 TOPs from the iGPU, 13 TOPS from the NPU, and 15 TOPS from the CPU. I think that's INT8 and an absolute best case scenario for the CPU. ACE should greatly expand the performance and supported data types that the CPU cores can run.

    Is ACE going to lead to Intel or AMD getting rid of dedicated NPUs? That's the real question. We're going to see mobile APUs with over 16 CPU cores and ACE, plenty to spare for running AI models.

    If NPUs are still more area/power efficient, I guess they'll stick around, but your total TOPS will go up.
    Reply
  • thestryker
    usertests said:
    Is ACE going to lead to Intel or AMD getting rid of dedicated NPUs? That's the real question.
    Given how gigantic they are I really hope this is the goal. The one on LNL was absolutely massive and took up more space than 2 P-cores including cache would have. They did a big shrink with PTL but it's still taking up as much space as an E-core cluster + cache.
    Reply