14 puan yazan xguru 2021-01-18 | 2 yorum | WhatsApp'ta paylaş

Apple Matrix Coprocessor

  • M1 tanıtımında hiç bahsedilmeyen, matrise özel işlemci

  • Matrisler; görüntü işleme, makine öğrenimi, ses/el yazısı tanıma, yüz tanıma, sıkıştırma, ses/video medya işleme gibi alanlarda yaygın olarak kullanılır

  • Bunu Neural Engine işlemiyor mu? Neural Engine'dan farkı ne?

    → GPU veya Neural Engine birer hızlandırıcıdır

    → Hızlandırıcıların kullanacağı bellek alanını doldurmak için CPU'nun çalışması verimsizdir

    → Bu sırada komutları izleyip (spy) bunu coprocessor'un üstlenmesi sağlanır

    → Bunu kullanmak için ayrı bir komut seti tanımlamak gerekir

    → ARM, özel komut eklemeyi uzun süre reddetti ama 2019'dan itibaren mümkün olan genişletmeler sunmaya başladı

    → Muhtemelen AMX komutlarının resmi belgelerde yer almamasının nedeni de bu

  • Peki ARM içindeki SIMD Vector Engine'den farkı ne?

    → SIMD: Single Instruction Multiple Data

    → Birden çok veri üzerinde aynı operation çalıştırılırken yüksek performans sağlayan yöntem

    → Matris işlemleriyle ilişkilidir

    → Ancak SIMD, ALU/FPU gibi CPU'ya gömülüdür; coprocessor ise haricidir

    → Eski Intel 8087 (FPU), 8086'dan bile daha fazla transistöre sahipti; o dönemde bunu birlikte koymak zordu. Transistör sayısı arttıkça ve FPU CPU'ya gömüldükçe bu ayrım ortadan kalktı

  • AMX'in neden Firestorm çekirdeğinin içine konmadığı net değil

    → Muhtemelen ayrı tutularak CPU ile paralel çalışmasının daha kolay olması amaçlandı

    → Apple da ARM standardı dışındaki şeyleri dışarıda tutmak istemiş olabilir

  • O halde AMX neden gizlendi?

    → AMX resmi belgelerde yoksa, bu nasıl öğrenildi?

    → Dougal Johnson bunu reverse engineering ile ortaya çıkardı

    → Apple, matris işlemleri için Accelerate adlı framework üzerinden çeşitli işlevler sunuyor

    ⇨ vImage: yüksek seviyeli görüntü işleme. Format dönüştürme ve görüntü manipülasyonu
    
    ⇨ BLAS: lineer cebir (matris ve vektör işlemleri)
    
    ⇨ BNNS: sinir ağları ve öğrenme
    
    ⇨ vDSP: Fourier dönüşümü gibi dijital sinyal işleme. Görüntü veya ses işleme için matematiksel işlemler
    
    ⇨ LAPACK: yüksek seviyeli lineer cebir fonksiyonları, lineer denklemler vb.
    

    → Bu Accelerate kütüphanesi, hesaplamayı hızlandırmak için AMX'i kullanıyor

    → Komutların kendisi açıklansaydı ARM ekosistemi parçalanabilirdi (bunu ne ARM ne de Apple ister)

    → Apple bunu doğrudan açığa çıkarmak yerine framework olarak sunarak yüksek performans sağlıyor ve aynı zamanda gerektiğinde komut setini değiştirebilmesini koruyor

    ⇨ Bu, Apple'ın donanım ve yazılımı aynı anda kontrol etmesi sayesinde mümkün
    
    ⇨ Geliştiriciler yalnızca Accelerate üzerinden çalışarak ilerideki iyileştirmelerden de yararlanabiliyor
    
  • Apple Matrix Coprocessor'un avantajı ne?

    → Nod Labs'in ARMv8.6'nın standart SIMD komutu olan NEON ile karşılaştırmasına göre AMX 2 kattan daha hızlı

    → Bu, her konuda AMX'in daha iyi olduğu anlamına gelmese de en azından makine öğrenimi veya yüksek başarımlı hesaplama (HPC) alanlarında AMX'in üstünlük sağladığını gösteriyor

2 yorum

 
godrm 2021-01-19

OpenCL ortadan kalktıktan ve Metal hızlandırması dışında Accelerate o kadar vurgulanmamış olsa da

her yıl kütüphaneleri artırıyorlardı; donanım hızlandırması yapan özel bir yardımcı işlemcinin eklenmiş olması şaşırtıcı.

 
xguru 2021-01-18

Bu, aşağıdaki iki yazıyı yazan mühendisin devam yazısıdır. Birlikte okumanızı tavsiye ederim.

→ YouTube'da anlatımı dinleyin: https://youtu.be/71LlixEBK0o

→ YouTube'da anlatımı dinleyin: https://youtu.be/F5sIQZvlJc8