Kuantum bilgisayar dediğin şeyin normal bilgisayardan çok bi farkı yok. Bu kadar yaygara, bu bilgisayarlar eğer yapılırsa, onun üzerinde çalışacağı teorize edilen "kuantum algoritmalar" yüzünden koparılıyor. Ama onlar da şu an saf spekülasyon yani, öyle bişey olup olmadığını bile bilmiyoruz. Ekşi'de yazayım bi ara bununla ilgili en iyisi.
Neyse, asıl söyleyeceğim o değil. Bu "algoritma optimize ama donanımsal limit" yaklaşımı mantıklı değil. Mesela herkes bahsetmiş işte "işlemciye çok transistör koyarsan daha hızlı çalışır" diye ama niye öyle olduğundan bahsetmemişler.
Sebep şu, transistörleri kullanarak matematik işlemi yapıyorsun diyelim. Toplama işlemi yapacaksan sana 5 tane transistör yeter. Ama çarpma işlemi yapayım dersen elinde 2 seçenek var:
1- İşlemci üzerinde tek tek toplama işlemlerini yapacaksın
2- Direkt çarpma işlemini yapabilecek bi işlemci tasarımı yapıp ona göre transistör koyacaksın
Yani bu "daha fazla transistör" mevzuunun altında yatan sebep, işlemcilere aynı anda daha "karmaşık" işlemler yaptırabilmek. Çünkü tek tek yaparsan, sonucu al, memory'e yaz, yeni veriyi işlemciye gönder vs. derken işlemci ile memory arasında çok fazla git-gel yapıyorsun. Bu git-gel dediğin şey de bakır kablodan elektrik geçmesi, o da vakit alıyor. Halbuki tek seferde çok daha fazla veri gönderip daha karmaşık işler yaptırabilirsen işlemciye, o bakır kabloda geçen vakti minimize edeceksin, bu da performans iyileşmesi anlamına geliyor. Çünkü bottleneck burası.
Mesela bu "5 nanometre, 3 nanometre" muhabbetinin temeli de bu. Bu işlemcideki transistörler arasındaki mesafe. Bu mesafeyi niye kısaltıyorlar? Niye daha küçük alana daha çok transistör sıkıştırmaya çalışıyorlar yani? Yayla gibi işlemci yap, sınırsız transistör koy. Olmaz, çünkü asıl sıkıntı o bakır kabloda geçen süre. Fiziksel olarak çok büyük işlemci yapsan bakır kabloda daha fazla vakit geçecek, memory'e ulan uzaklık artacak falan, yine işler yavaşlayacak epey.
Peki şunu düşün, diyelim biz bilgisayarda yapılan bütün işlemleri "toplama işlemi" seviyesine indirebilecek bi algoritma yazabildik. Bize trilyonlarca transistörü olan güçlü işlemciler lazım değil, 5 transistör işimizi görüyor. Çarpma işlemi yaparken, tek işlemciye karmaşık işlemler sığdırmak yerine, bir sürü işlemciye aynı anda toplama işlemlerini gönderip, sonucu da çat diye birleştirsek daha hızlı olmaz mı?
GPU teknolojisi üç aşağı beş yukarı böyle çalışıyor. Ama işte bu fiziksel modelde verimli çalışabilen algoritmalar belli, oyunlar, yapay zeka vs.
Peki bilgisayarda yaptığımız günlük işlemleri kategorize etsek, her işlem tipi için, o işlemde çok verimli çalışacak spesifik işlemciler kullansak ne olur? Grafik için ayrı kart / işlemci kullanıyoruz, e internet için de başka bi çeşit işlemci kullanalım, yazı yazmak için de başka kullanalım vs.
Eskiden mesela vardı böyle şeyler, virgüllü sayılarla işlem yapacaksan ekstra işlemci alıyordun falan. Sonra intel mevcut mimarinin sınırlarını zorlayana kadar bu yönde ilerledik, ama şimdi o mimarinin sonuna geldik. O yüzden üst paragrafta bahsettiğim yolda ilerliyoruz.
Misal apple'ın bu son çıkardığı M serisi işlemcilerin olayı temelde bu. Tek bir işlemci içinde, farklı işlerde özelleşmiş küçük küçük bir sürü işlemci var. Bu sayede intel'in 20-25 milyar transistörle yaptığı işi 15 milyar transistörle yapabiliyor.
Bu birden fazla "çekirdek" işinin de temeli buydu aslında. Yani tek bir çipi büyütmek yerine, oraya bir limit koyup, birden fazla çipte aynı anda işlem yapıp, sonuçları birleştirmek daha iyi bir yöntemdi. Ama o çekirdekler aynıydı ve "general purpose" idi, şimdi onları da özelleştirmeye başladılar.
Yani bilgisayarda yazılan kodun algoritması ne olursa olsun, onun nasıl derlendiği ve işlemcilerde nasıl işleneceği de bir "algoritma", ve baya son 10-15 yıldır işlemci teknolojisi "donanımsal limit"ler üzerinden değil, daha iyi algoritmalar geliştirilmesi sayesinde ilerliyor. Darboğaz buydu çünkü.
Bundan sonrası için asıl atılımın, intel'in 34590384 çekirdekli / transistörlü işlemcilerinden değil, spesifik olarak üretilen ve ona göre kodu yazılan işlemcilerden geleceğini düşünüyorum. Misal şu an "network on a chip" baya popüler bi konu, bir sürü farklı işlemcinin aralarına nasıl verimli konuşabileceğini çözmeye çalışıyorlar. Burada ilerleme olursa baya ilginç şeylerle karşılaşabiliriz.
0