Yapay zeka modellerini çalıştırmak denince akla genellikle ekran kartları (GPU) gelse de, her yapay zeka görevi bu donanımlar için uygun olmayabilir. Daha küçük modeller veya tek kullanıcılı, gecikmeye duyarlı işlemler, veriyi GPU'ya gidip gelirken oluşan ek yükten kaçınmak için işlemcilerde (CPU) çalıştırıldığında daha verimli olabilir. Ayrıca, hiç GPU'nun bulunmadığı veya sadece sınırlı yeteneklere sahip entegre bir GPU'nun olduğu durumlar da mevcuttur. Intel ve AMD, bu gibi yapay zeka görevlerini x86 işlemcilerde daha kolay ve daha enerji verimli hale getiren ACE (Advanced Matrix Extensions) işlemci genişletmelerinin tam teknik dokümanını yayınladı.
ACE, mevcut AVX10 (Advanced Vector Extensions 10) kayıtlarını kullanan ancak matris çarpımı için özel donanım ekleyen bir teknik standart sunarak devreye giriyor. Bu durum, daha iyi enerji verimliliği, daha kolay geliştirme ve optimizasyon ile AVX'in 512-bit girişlerinden yararlanma gibi birden çok fayda sağlıyor. Sonuncusu, ACE'ye özel girişlere olan ihtiyacı ortadan kaldırarak mevcut tasarımlarla kolay entegrasyon sağlıyor.
Matris çarpımı, yapay zeka iş yüklerinin temelini oluşturur: bir sayı tablosu alır ve tüm üzerinde bir çarpma-toplama döngüsü çalıştırılır. Bu, en basit CPU'larla bile mümkün olmuştur, ancak sınırlı hızda. Hatta bugün bile, bu döngüleri çalıştırmak, x86'nın AVX10 çarpma-biriktirme komutlarını kullansa bile çok fazla güç tüketir – teknik olarak bir hile olan bu durum, AVX'in 2 boyutlu matris işlemleri çarpımı düşünülerek tasarlanmadığı için böyledir.
Aynı sayıda giriş vektörü için ACE, AVX10'a kıyasla 16 kat daha fazla işlem gerçekleştirebilir. Bu, her bireysel uygulamaya bağlı olacağından her zaman 16 kat hız artışı anlamına gelmez, ancak Intel ve AMD'nin gelecekteki tasarımlarında performansı artırmak için bu göreve daha fazla silikon ayıracağını düşünmek mantıklıdır. Dahası, her ACE komutu aynı işi AVX10 döngüsüne göre daha fazla yaptığı için, işlemci komut yükü daha azdır ve en baştan potansiyel olarak daha iyi RAM bant genişliği kullanımı söz konusudur.
Faydalar, aynı iş için daha az komut kullanmanın ötesine geçiyor. ACE, uygulama bağımsız olacak şekilde tasarlanmıştır; bu da makine öğrenmesi (ML) çerçevelerinin ve altta yatan kütüphanelerinin (PyTorch, TensorFlow gibi) altta yatan donanıma ve AVX desteğinin derecesine bağlı olarak birden çok farklı kod yolu yerine yalnızca tek bir kod yolu yazabileceği anlamına gelir.
ACE, ML işlemlerinde kullanılan hemen hemen her veri türünü (INT8, INT32, FP8, FP16, FP32, BF16 ve diğerleri dahil ancak bunlarla sınırlı olmamak üzere) yerel olarak destekler. Ayrıca, AVX10'un sağlamadığı Open Compute Project'in MX blok ölçekli biçimlerini de yerel olarak kullanabilir. Geliştiriciler, acil ve hızlı bir şekilde yapılması gereken işler için bazı NPU (Neural Processing Unit) özel iş yüklerini CPU'ya geri taşıyabileceklerdir. Bu durumlarda, her NPU'nun farklı olması gerçeğiyle uğraşmak zorunda kalmamak da büyük bir avantajdır, çünkü ACE x86 donanımında tutarlı bir hedef sunar.