1993 yılında Intel ilk Pentium işlemcisini piyasaya sürdü. Bugünün standartlarına göre ilkeldi. O zamanlar, Macintosh’un Motorola 601 çipiyle tam sayı hesaplama performansı açısından tam olarak eşleşmese de ileriye doğru büyük ve heyecan verici bir atılımı temsil ediyordu.
1990’lar ve 2000’ler genel anlamda CPU endüstrisi için harika bir dönemdi. Her yıl yeni bir şeyler oluyordu. Intel’in MMX’i medya ve oyun uygulamalarında daha iyi performans vaat ediyor. 2003 yılında AMD ve IBM, sırasıyla Athlon 64 ve PowerPC G5 ile 64 bit hesaplamayı geniş kitlelere sundu. Bunu birkaç yıl sonra çok çekirdekli işlemciler izledi.
Her çığır açan buluşu (veya Intel’in gelecek vaat eden ancak felaket getiren Xeon Phi yardımcı işlemcisi gibi neredeyse atılımı) bu giriş bölümünde listelemek imkansız olurdu. Mesele şu ki, CPU’ların her geçen yıl ölçülebilir şekilde geliştiği bir dönemdi. Her donanım yükseltme döngüsü hem tüketiciler hem de işletmeler için yeni olanaklar getirir.
Ve sonra kapalı. Veya hayırsever davranırsak ilerleme yavaşlar. Geliştiriciler için bu ciddi bir ikilem teşkil ediyor. Uzun vadede ihtiyacımız olan performansı sağlaması için artık CPU’ya güvenemeyiz. Yeni nesil yüksek performanslı uygulamalar oluşturmak için donanım hızlandırma noktasından başlamamız gerekiyor.
Sorunun kökü
Yaklaşık 15 yıldır CPU gelişiminin yavaş hızıyla ilgili uyarılar veya şikayetler duyuyoruz. 2010 yılında, MIT Teknoloji İncelemesi ” başlıklı bir yazı yayınladı.CPU’lar neden hızlanmıyor?” durumu bir dizi faktöre bağladı: yetersiz bellek bant genişliği, termal ve güç tüketimi sınırlamaları ve entegre grafiklerin saf CPU gücüne göre önceliği.
Yıllar geçtikçe buna benzer yazılar ortaya çıktı. Tartışmasız en önemli alarm zili 2016 yılında Intel’in resmi olarak duyurduğu zaman geldi. “Tik-Tok Modeli”nden vazgeçildi. neredeyse on yıl boyunca ürün yol haritasını belirledi.
Tik-tak modelinde, bir ürün kategorisinin her yinelemesi yeni bir üretim sürecine (bir işaret) veya altta yatan mikro mimariye (bir işaret) odaklanacaktır. Biri diğerini takip eder ve genellikle 12-18 ay arayla bulunur. Bu model, gelişmiş enerji verimliliği ve termal performans sunan “Ticks” ve yeni yetenekler sunan “Talks” ile sürekli bir iyileştirmeler dizisi üretti.
Her ne kadar Intel, üç aşamalı bir yaklaşım lehine bu modeli kullanımdan kaldırdığını iddia etse de Ürün geliştirme döngüsüne özel bir optimizasyon aşaması eklerŞirketin bu hızda çalışamadığı da doğru. Yarı iletken üretim süreçleri küçüldükçe daha fazla iyileştirme zor ve pahalı hale geliyor.
Bağlamda, Kasım 2000’de piyasaya sürülen ilk Pentium 4 işlemci, 180nm üretim sürecini kullanıyordu. 2006’nın başlarında piyasaya sürülen son Pentium 4, 65nm’lik bir işlem kullanıyordu. Bu yaklaşık üçte ikilik bir azalmayı temsil ediyor. Buna karşılık, dünyanın en büyük yarı iletken imalatçısı olan TSMC’nin 5 nm’den 3 nm’ye çıkması neredeyse üç yıl sürdü.
Yine söylüyorum, CPU gelişiminin yavaşlamasının tek nedeni bu. Aynı derecede önemli olan başka unsurlar da vardır. Örneğin, CPU üreticilerinin yine de güç tüketimini ve güç tüketimini dikkate alması gerekiyor (her ne kadar bu durum çip tasarımı yoluyla bir dereceye kadar azaltılabilse de) ve bu da bir CPU’dan elde edebileceğiniz performansa katı sınırlamalar getiriyor.
Ayrıca CPU performansını düşüren daha küçük faktörler de var. Bunlar üzerinde çok fazla durmayacağım ama zaman zaman CPU düzeyinde güvenlik açığı yaratan sorunlarla karşılaşıyoruz. Erime—öncelikle Intel CPU’ların yanı sıra bazı Power ve ARM yongalarını da etkileyen sorun— bunun iyi bir örneğidir.
Her ne kadar erimeye yol açan temel nedenler gelecekteki yinelemelerde ele alınsa da mevcut çipler düzeltildi %5 ila %30 performans isabeti sonuçları belirli koşullar altında.
Sonuçta bunun nedeni çözüm kadar ilginç değil; iş yükümüzü CPU’lardan GPU’lar gibi donanım hızlandırıcılara kaydırmak.
Moore Yasasının Ötesinde Hesaplama
Doğası gereği yeni değil. Genel amaçlı bilgi işlem görevleri için GPU hızlandırma, bu noktada yirmi yılı aşkın bir süredir mevcuttur ve ilk önemli araştırma 2003 yılında gerçekleştirilmiştir.
Değişen ve bu anı özellikle heyecan verici kılan şey, GPU ile hızlandırılmış yazılım geliştirmenin artan kullanılabilirliği, GPU’ların artan gücü ve GPU’ların benzersiz özelliklerinden yararlanabilecek artan görev yelpazesidir.
Başlangıçta, GPU’lar için genel amaçlı kod yazmak, GPU’ların nasıl çalıştığına dair düşük düzeyde bir anlayış ve bir düzeyde kalıcılık gerektirir. 2000’li yılların başındaki ATI ve Nvidia’nın yanı sıra Matrox ve Silicon Integrated Systems gibi GPU üreticilerinin akıllarında genel amaçlı bilgi işlem yoktu. Oyuncular için kart yapıyorlardı.
Aslında bu şirketlerin asıl amacının üstesinden gelmeniz gerekiyordu. Seni durdurmadılar ama yardım da etmediler. Bu durum 2007’de değişti Nvidia CUDA platformunu yayınladıgeliştiricilere belirli grafik kartları için genel amaçlı kod yazmaları için (nispeten) basit bir yol sağlar. Yıllar geçtikçe CUDA yetenekleri arttı ve Intel ve AMD’nin benzer ürünleriyle (oneAPI ve ROCm gibi) rekabet ediyor.
2003 yılında mevcut olan giriş engelleri artık büyük ölçüde ortadan kalkmıştır. GPU ile hızlandırılmış kod yazmanın daha kolay olduğunu söyleyemesem de, her zamankinden daha erişilebilir.
Bu arada, kartların kendisi de görünüşte katlanarak artan bir oranda daha yetenekli hale geliyor. Bu, hem tüketici odaklı kartlar hem de sunucu/kurumsal ortamlara yönelik kartlar için geçerlidir. Örneğin, Nvidia A100, 80 GB’a kadar yüksek bant genişliğine sahip belleğin yanı sıra 2 TB/s’den fazla bellek bant genişliğine sahiptir. 4.000’den fazla genel amaçlı bilgi işlem çekirdeğine sahiptir. Bu, genellikle 128 çekirdeğe sahip en yetenekli sunucu/iş istasyonu işlemcilerinden bile kat kat fazladır.
Bu özellikler paralelleştirmeden yararlanan görevlere çok uygundur. Temel olarak, eğer bir görev birlikte yürütülebilecek daha küçük parçalara bölünebiliyorsa, bunlar genellikle GPU’da CPU’ya göre daha hızlı tamamlanır. Yapay zeka eğitimi ve çıkarımlardan veri işleme, analitik ve bilimsel hesaplamaya kadar halihazırda gördüğümüz pek çok örnek var.
CPU dışındaki yaşam
GPU’ların ötesinde, görevleri geleneksel bir CPU’dan daha hızlı gerçekleştirebilen, giderek artan sayıda özel donanım ürünleri mevcut ve birçok yapay zeka görevi, özel yapay zeka hızlandırıcı donanımının kullanımından yararlanıyor. Bunlar telefonunuzda ve dizüstü bilgisayarınızda ve ayrıca sunuculardaki ayrı kartlarda mevcuttur ve makine öğrenimi ile yapay zeka iş yüklerini hızlandırmak için özel olarak tasarlanmıştır.
Yapay zeka çipleri oluşturan bulut hiper ölçekleyicilerden (Google’ın TPU’su, Microsoft’un Maia’sı) açık kaynak RISC-V mimarisini uygulayan yeni girişimlere kadar, amaca yönelik olarak tasarlanmış yarı iletkenler etrafında bir faaliyet telaşı görüyoruz.
Bu amaca özel yarı iletkenleri yapmaya çalışırken seçenekler her zaman sınırlıdır; ya uygulamaya özel bir entegre devre (ASIC) oluşturmak gibi inanılmaz derecede pahalı bir süreç gerektirir ya da geliştirme ve telif ücreti ödemek için ARM’e başvurulur.
İdeal durumda her algoritma veya iş yükü için bir ASIC oluştururuz Ne yazık ki, bu maliyet açısından engelleyicidir. Devlete ait bu tür ASIC’lerden yararlanmak, makul bir fiyat noktasına ulaşmak için en son silikon üretim teknolojisi, yarı iletken tasarımı ve ölçek ekonomileri konusunda güncel bilgi sahibi olan bir mühendis ordusunun yazılım geliştirmesini gerektirir.
ARM, çoğu ASIC riskini azaltır, ancak ağır geliştirme ve telif ücretleri ile birlikte gelir.
RISC-V işlemcinin açık kaynaklı talimat seti mimarisi (ISA), açık kaynaklı ve ücretsiz bir mimari aracılığıyla ASIC riskini azaltarak her iki dünyanın da en iyisini sağlar. Bu, çok sayıda şirketin yeni, son teknoloji ürünü işlemciler geliştirmesine olanak sağladı. SiFive gibiGoogle’ın en yeni nesil TPU’ları için RISC-V bileşenlerini geliştiren kişi.
GPU ile hızlandırılmış yazılım geliştirmede olduğu gibi, RISC-V’yi kullanmanın önündeki engeller son on yılda azaldı ve iş yüklerini hızlandırmak isteyen şirketler için RISC-V giderek daha uygun bir seçenek haline geldi. Ve bir CPU’nun sunabileceğinin çok ötesinde bir performans sunabilirler.
Şunu da eklemeliyim ki çekicilikleri sadece hızlı olmaları değil Şimdi. Sadece zamanla daha iyi olacaklar. Donanım hızlandırıcıları, CPU gibi genel amaçlı bir donanım parçasıyla aynı sınırlamalara tabi değildir.
Örneğin Nvidia’nın yeni nesil GPU’larına daha fazla çekirdek eklemesini veya mevcut müşterilerinin ödemeye razı olduklarından katlanarak daha fazla bellek eklemesini engelleyen hiçbir şey yok. Bu cihazlar, sonuçta, tepeden tırnağa, uygun gördükleri şekilde ekleme ve iyileştirme yapabilen yaratıcılarının mülkiyetindedir.
Bu da onları ilgi çekici, uzun vadeli bir çözüm haline getiriyor.
O zaman soru şu oluyor: Geliştiriciler bu fırsattan yararlanmaya hazır mı? CPU gelişiminin durgunluk olmasa da durgunluk noktasına kadar yavaşladığı açıktır. CPU’lar hiçbir zaman GPU’lardan, RISC-V’den ve diğer özel hızlandırıcı donanımlarından gördüğümüz üstel performans artışına sahip olamayacak.
Rotayı değiştirme sorumluluğu artık mühendisler olarak bize düşüyor. Yazılımın geleceği hızlanıyor.