1 puan yazan GN⁺ 2023-12-26 | 1 yorum | WhatsApp'ta paylaş
  • 1978’in süper bilgisayarı Cray 1 temel alınarak, Livermore Loops, Linpack ve Whetstone benchmark’larında Raspberry Pi, Android cihazlar ve PC’lerin ne kadar öne geçtiği karşılaştırılıyor
  • Referans değer, Cray 1’in 80 MHz ve en fazla 160 MFLOPS donanım performansı; gerçek karşılaştırmada ise Livermore Loops geometrik ortalaması 11,9 MFLOPS, Linpack 27 MFLOPS ve Whetstone için tahmini 6 MFLOPS kullanılıyor
  • 2012’deki Raspberry Pi 1, Livermore Loops geometrik ortalamasına göre Cray 1’den 4,6 kat hızlıydı; 2020’deki Raspberry Pi 400 ise üç benchmark’ta sırasıyla 78,8 kat, 49,5 kat ve 95,5 kata çıktı
  • 2021’de orta sınıf bir Android telefonun Kryo 570 CPU’su tek çekirdek bazında 123 kat, 74 kat ve 151 kat değerlerine ulaştı; Core i5 1135G7 dizüstü ise AVX-512 derlemesinde 359 kat, 337 kat ve 226 kat kaydetti
  • SIMD ve çoklu iş parçacığı kullanıldığında fark daha da büyüyor; ancak AVX-512’nin fused işlemleri bazı benchmark’larda geleneksel beklentilerden farklı sayısal sonuçlar üretebiliyor

Karşılaştırmanın temeli olan benchmark’lar ve Cray 1

  • Karşılaştırmanın merkezinde, ilk Cray 1 performans doğrulamasında kullanılan Lawrence Livermore Laboratory program kernels, yani Livermore Loops yer alıyor
    • Sonuçlarda 1990’larda C koduna dönüştürülmüş sürüm kullanılıyor
    • Livermore Loops her döngü için MFLOPS ile minimum, maksimum ve çeşitli ortalamaları hesaplar; resmi ortalama geometrik ortalamadır
  • Yardımcı karşılaştırmada Linpack 100 ve Whetstone kullanılıyor
    • Linpack, PC için dönüştürülüp Netlib’e alınan linpack-pc.c tabanlıdır
    • Whetstone’da, özgün yazar Harold Curnow’dan sonra tasarım sorumluluğu devralınıp genişletilmiş varyantlar üretildi; %100 vektörleştirilmiş sürüm başlangıçta Birleşik Krallık’a getirilen ilk Cray 1 sistemini hedef aldı
  • Cray 1’in başlıca referans değerleri şöyle
    • 80 MHz Cray 1’in mümkün olan en yüksek donanım performansı, linked multiply and add ile saat çevrimi başına iki sonuç veren 160 MFLOPS olarak bilinir
    • Livermore Loops sonucu maksimum 82,1 MFLOPS, geometrik ortalama 11,9 MFLOPS, minimum 1,2 MFLOPS’tur
    • Linpack 27 MFLOPS; Whetstone ise Cray XMP sonuçlarına dayanarak 6 MFLOPS olarak tahmin edilir

Raspberry Pi’nin Cray 1’i geçtiği nokta

  • 2013’te ilk Raspberry Pi üzerinde, Linux için PC benchmark’larıyla esasen aynı programlar çalıştırıldı
  • O dönemki karşılaştırma ifadesi, 1978’de Cray 1’in 7 milyon dolar, 10.500 pound ağırlık ve 115 kW güç kaynağı gerektirdiğini; Raspberry Pi’nin ise yaklaşık 70 dolar, birkaç ons ağırlık ve 5 W güç kaynağı kullandığını ve Cray 1’den 4,5 kattan fazla hızlı olduğunu söylüyordu
    • Bu karşılaştırma Livermore Loops’un resmi geometrik ortalamasına dayanıyordu
  • Pi 1’in üç ana ölçümü Livermore Loops 55 MFLOPS, Linpack 42 MFLOPS, Whetstone 94 MFLOPS’tur
    • Cray 1’e göre CPU MHz değeri 8,8 kattır
    • Cray 1’e göre MFLOPS sırasıyla 4,6 kat, 1,6 kat ve 15,7 kattır
  • 2020’de Raspberry Pi 400, 1800 MHz’de 32 bit bazında Livermore Loops 819 MFLOPS, Linpack 1147 MFLOPS ve Whetstone 498 MFLOPS üretti
  • Pi 400’ün 64 bit SIMD derleme sonuçları Cray 1’e göre 78,8 kat, 49,5 kat ve 95,5 kattır

Android ARM CPU sonuçları

  • 2012’de benchmark’lar Android’de yerel ARM kodu olarak çalışacak şekilde dönüştürüldü ve bir Java ön uç programı gerekiyordu
  • İlk Android tabletlerde hızlı kayan nokta hesaplamasını destekleyen donanım veya yazılım eksik olabiliyordu
  • 2012’de ARM Cortex-A9 800 MHz sonucu Livermore Loops 20 MFLOPS, Linpack 11 MFLOPS, Whetstone 22 MFLOPS’tur
    • CPU MHz değeri Cray 1’in 10 katıydı, ancak MFLOPS çarpanları sırasıyla yalnızca 1,7 kat, 0,4 kat ve 3,7 katta kaldı
  • Daha sonra 800 MHz V7-A9, 115 MFLOPS, 101 MFLOPS ve 155 MFLOPS’a yükseldi
    • Cray 1’e göre 9,7 kat, 3,7 kat ve 25,8 kattır
  • 2021’de orta sınıf bir telefonun Kryo 570 CPU’su 2000 MHz’de Livermore Loops 1468 MFLOPS, Linpack 1986 MFLOPS ve Whetstone 905 MFLOPS kaydetti
    • Cray 1’e göre 123 kat, 74 kat ve 151 kat
    • CPU MHz değeri Cray 1’e göre 25 kattır

Windows ve Linux PC’lerde tek çekirdek performansı

  • 1990’lardan itibaren Intel CPU’lar için benchmark’lar DOS, OS/2, Windows ve Linux’a yönelik geliştirildi
  • Ortalama Cray 1 Livermore Loops puanına ilk ulaşan PC, 1994’teki 100 MHz Pentium oldu
    • Livermore Loops 12 MFLOPS, Linpack 12 MFLOPS, Whetstone 16 MFLOPS
    • Cray 1’e göre CPU MHz ve üç MFLOPS karşılaştırması yaklaşık 1,3 kat, 1,0 kat, 0,44 kat ve 2,6 kattır
  • 1995’te Pentium Pro 200 MHz, Livermore Loops 34 MFLOPS, Linpack 49 MFLOPS ve Whetstone 41 MFLOPS üretti
    • Cray 1’e göre 2,9 kat, 1,8 kat ve 6,8 kattır
  • 2007’de Core 2 1820 MHz tek çekirdekte 413 MFLOPS, 998 MFLOPS ve 374 MFLOPS kaydetti
    • Cray 1’e göre 35 kat, 37 kat ve 62 kattır
  • 2021’de Core i5 1135G7 dizüstü 4150 MHz’de 1387 MFLOPS, 3541 MFLOPS ve 802 MFLOPS üretti
    • Cray 1’e göre 117 kat, 131 kat ve 134 kat

SIMD derlemesinin etkisi

  • SSE, AVX ve AVX-512 SIMD seçenekleriyle derlenen sonuçlar da karşılaştırılıyor
    • SSE 128 bit, AVX 256 bit, AVX-512 ise 512 bit vektör yazmaçları kullanır
    • Tek duyarlıkta sırasıyla 4, 8 ve 16; çift duyarlıkta ise 2, 4 ve 8 sayıyı aynı anda işler
  • FMA kullanıldığında beklenen en yüksek performans iki katına çıkabilir, ancak hesaplama sonuçlarının doğruluğu biraz farklılaşabilir
    • Benchmark bu tür farkları hata olarak raporlar
  • Windows SIMD sonuçlarında Core i5, Cray 1’e göre Livermore Loops’ta 238 kat, Linpack’ta 190 kat, Whetstone’da 182 kat kaydetti
  • Linux’ta gcc 9.3.0 ve Ubuntu ortamıyla derlenen sonuçlar daha yüksekti
    • AVX sonuçları Cray 1’e göre 300 kat, 259 kat ve 179 kat
    • AVX-512 sonuçları 359 kat, 337 kat ve 226 kat
  • AVX-512 çalıştırılabilir dosyası, bu seçeneğe sahip olmayan eski CPU’larda çalıştırıldığında program hatası raporu oluşur

Vector Whetstone ve eski süper bilgisayar karşılaştırması

  • Vector Whetstone, skaler Whetstone ile aynı işlevleri çalıştırır; ancak vektör uzunluğu parametresiyle belirlenen ardışık bellek konumlarını hedef alır
  • Cray 1, 64 kelime ve üzeri vektör uzunluğunda maksimum performansa ulaşıyor ve testere dişi biçimli bir desen gösteriyordu
  • Tabloda 1978’den 1991’e kadar 13 süper bilgisayarın skaler ve vektör Whetstone sonuçları yer alıyor
    • Cray Y-MP, Cray 1’e göre saat hızı ve skaler MFLOPS’ta yaklaşık 2 kat, vektör MFLOPS’ta 4 kat olarak sunuluyor
    • Cray Y-MP, iki vektör ünitesine sahip bir sistemdir
  • Core i5 AVX-512 sonucu Vector Whetstone’da tek duyarlık ortalaması 28.303 MFLOPS, çift duyarlık ortalaması 20.346 MFLOPS’tur
    • Cray 1’e göre 602 kat ve 433 kat
    • En yüksek tek duyarlık hızı 75,1 GFLOPS’tur
  • Raspberry Pi 400’ün Vector Whetstone sonucu tek duyarlık ortalaması 2131 MFLOPS, çift duyarlık ortalaması 1184 MFLOPS’tur
    • Cray 1’e göre 45 kat ve 25 kattır

Çok iş parçacıklı Whetstone ve MP MFLOPS

  • MP Whetstone, standart Whetstone kodunun birden fazla kopyasını tek bir program içinde 1, 2, 4 ve 8 iş parçacığıyla çalıştırır
    • Tek bir CPU çekirdeğine kıyasla çok çekirdekli iş hacmini göstermek için kullanılır
  • Core i5 dizüstünün Performance Monitor’da 1 ve 2 iş parçacığında yaklaşık 4150 MHz, 4 ve 8 iş parçacığında yaklaşık 3800 MHz’de çalıştığı gösterildi
  • MP Whetstone 8 iş parçacığı sonuçları şöyle
    • Core i5 dizüstü AVX-512, Cray 1’e göre 1521 kat
    • Android Kryo 570 telefon 757 kat
    • Raspberry Pi 400 400 kat
  • MP MFLOPS, neredeyse maksimum performansı gösterecek şekilde kayan nokta çarpma ve toplama kombinasyonları çalıştıran bir benchmark’tır
    • Her veri kelimesi başına 2, 8 ve 32 floating point operations çalıştırır
    • Varsayılan 8 iş parçacığıdır, ancak çalıştırma sırasında parametreyle 64 iş parçacığına kadar belirtilebilir
  • Core i5 dizüstünün en yüksek MP MFLOPS sonuçları şöyle
    • Tek duyarlık 325.915 MFLOPS, Cray 1’e göre 2671 kat
    • Çift duyarlık 160.641 MFLOPS, Cray 1’e göre 1317 kat
    • Android telefon tek duyarlık 35.686 MFLOPS, Cray 1’e göre 293 kat
    • Raspberry Pi 400 tek duyarlık 30.150 MFLOPS, Cray 1’e göre 247 kat

Sayısal doğruluk ve beklenenden hızlı sonuçlar

  • AVX-512 kullanılan Livermore Loops’ta bazı checksum doğruluklarının mevcut 15~16 basamaktan 12~13 basamağa düştüğü örnekler var
    • Fused işlemler, her ayrı komutta yuvarlamak yerine yalnızca bir kez yuvarlıyor gibi görünüyor
  • Linpack AVX-512 ve Whetstone SSE’de de Core i5 dizüstünde standart dışı sumcheck veya sonuç farkları kaydedildi
  • Bazı SSE ve AVX sonuçları, belgelerdeki beklenen maksimum MFLOPS/MHz değerinden yüksek çıktı
    • Core i5 SSE için Livermore Loops örneği 3,56 MFLOPS/MHz; FMA olmadan mümkün olmadığı düşünülen bir seviye
    • AVX örneği 4,86 MFLOPS/MHz; beklenen maksimumdan %21,5 yüksek
  • Ayrıştırılmış kodun incelenmesi sonucunda, söz konusu SSE ve AVX örneklerinde fused multiply and add biçiminde komut bulunmadı
  • AVX-512 MP MFLOPS ayrıştırılmış kodu, fused multiply/add/subtract komutları içeriyor
    • Aritmetik vektör komutu sayısı 21; tam FMA biçimindeki minimum komut sayısı 16 olduğu için ulaşılabilir hızın tam FMA’ya göre %76,19 olduğu hesaplanıyor
    • Bu düzeltmeyle, ilgili fonksiyon çalıştırılırken Cray 1 maksimum hız tahmini 160 MFLOPS’tan 122 MFLOPS’a düşüyor

Fark, iş türüne göre değişiyor

  • Core i5 AVX-512, Android telefon ve Raspberry Pi 400’ün Cray 1’e göre temsilî çarpanları iş türüne göre büyük ölçüde değişiyor
  • Tek çekirdek serisi karşılaştırmada Core i5 AVX-512, Livermore Loops ortalamasında 359 kat, Linpack’ta 337 kat, Whetstone’da 226 kattır
  • Android telefon Livermore Loops ortalamasında 123 kat, Linpack’ta 74 kat, Whetstone’da 151 kat kaydetti
  • Raspberry Pi 400, Livermore Loops ortalamasında 79 kat, Linpack’ta 50 kat, Whetstone’da 96 kat seviyesindedir
  • Çoklu program, çoklu iş parçacığı ve SIMD’den yararlanan işlerde fark basit tek çekirdek karşılaştırmasından çok daha büyür; modern CPU’ların çekirdek sayısı, saat hızı düşüşleri ve big/LITTLE yapılandırmaları nedeniyle çok çekirdek performansını öngörmek daha da zorlaşır

1 yorum

 
GN⁺ 2023-12-26
Hacker News görüşleri
  • Böyle karşılaştırmaları görünce, benchmarklardan önce, o dönemde Cray-1 üzerinde çalıştırılmış olabilecek en “kahramanca” gerçek hesaplamanın ne olduğu ve bunun bugün Raspberry Pi gibi bir cihazda nasıl yeniden üretilebileceği aklıma geliyor
    Hava durumu/iklim modeli olabilir, radyasyon-hidrodinamiği olabilir. Modern sonlu eleman analizi yazılımlarıyla karşılaştırıldığında hassasiyetin neredeyse kesin olarak çok düşük olacağı açık, ama denemenin kendisi eğlenceli olurdu

    • Muhtemelen nükleer silah simülasyonlarıydı
      İlk makine Los Alamos'a gitmişti
      https://www.theatlantic.com/technology/archive/2014/01/these...
    • İlk müşterilerden biri European Centre for Medium-Range Weather Forecasts olduğuna göre, muhtemelen orta vadeli hava tahmininde kullanılmıştır
    • Cray-1 değil ama birkaç yıl sonra donanma, Cray 90 ile gemi gövdesi etrafındaki akışı modelleyen hesaplamalı akışkanlar dinamiği hesapları yaptı ve kod Fortran ile yazılmıştı
      O zaman yazılan koda yeniden erişebilmek güzel olurdu. Cray'de dakikalar ya da saatler süren işler bugün Raspberry Pi'de birkaç saniyede çalışabilir
    • Spec ‘06'dan başlayabilirsin. İçinde böyle “kahramanca” iş yüklerinin mikro çekirdekleri var
    • 1979 civarında Boulder'daki NCAR tesisini gezmiştim ve oradaki Cray-1'in koltuğuna oturmuştum
      Yani evet, hava durumu ve iklim hesaplarında kullanılıyordu
  • Kendi Cray-1 süperbilgisayarı olan bir ulusal araştırma laboratuvarında çalışan birini tanıyordum; makine, ziyaretçilerin görebilmesi için büyük bir gözlem penceresi olan makine odasına yerleştirilmişti
    Tanıdığı bir VIP büyük tur grubu gelmeden hemen önce Cray-1'in içine saklanıp beklemiş; tur grubu gelince kot pantolonunun fermuarını çekerken rahatlamış gibi mahcup bir ifadeyle Cray-1'in içinden çıkmış, camın arkasından kendisine boş boş bakan tur grubunu görünce şaşırmış numarası yapıp hızla ortadan kaybolmuş

  • Benchmarklar dışında, ona gerçekten bu kadar hızlı hissettirecek bir yazılım olup olmadığını merak ediyorum
    Şu an kullandığımız GUI, IDE, derleyici, ofis gibi yazılımlar bana 386'da çalışanların daha gelişmiş sürümleri gibi geliyor. Bugün Met'te kullanılan yazılımlar yüz milyonlarca kat daha hızlı bilgisayarlar varsayılarak tasarlanmış olabilir ama o dönemde Cray gerektiren yazılımlar da bir yerlerde olmalı gibi duruyor

    • Yok. Cray-1 toplu iş çalıştırıyordu ve bunların çoğu saatler ya da günler süren bilimsel simülasyonlardı
      Terminal arayüzü vardı ve gerçek zamanlı etkileşimli uygulamalar için kullanılmıyordu
    • Eski Fortran fizik kodları en olası aday gibi görünüyor
      Örneğin matris elemanlarından saçılma kesiti hesaplamak ya da çok sayıda vektörleştirilebilir lineer cebir içeren işler
    • O zaman saatler süren birçok iş bugün 1 saniyeden kısa sürebilir
      Makine mühendisliğini düşünürsek, o zamanlar bir otomobilin çarpışmada nasıl deforme olacağını simüle etmiş olabilirlerdi. Bugün benzer bir simülasyonu video oyunlarında eğlence amaçlı gerçek zamanlı yapabiliyoruz. Oyunlarda fiziksel olarak doğru modelin gerçekten gerekmediğini, bu yüzden pek yapılmadığını biliyorum ama mümkün
      Render tarafında da aynı durum var. O zaman Toy Story'nin her karesi saatlerce render ediliyordu, bugün ise tartışmalı olsa da daha iyi grafikleri gerçek zamanlı üretebiliyoruz
  • Jeff Geerling'in Raspberry Pi'yi Cray-1 kasasının içine koyduğu devam videosunu bekliyorum

    • Cray-1 şeklinde bir PC kasası çıksa harika olurdu
      Raspberry Pi için daha küçük bir versiyon da güzel olurdu
    • Ya da ağ üzerinden bağlayıp içine mümkün olduğunca çok sayıda yerleştirmek de iyi olurdu
  • Vektör 1.0 destekleyen RISC-V ile karşılaştırmak daha anlamlı olur
    Çünkü Cray-1 bir vektör makinesiydi

    • Donanımsal vektör desteği olan bir RISC-V CPU gerçekten çip olarak çıktı mı?
    • Ya da GPU ya da TPU ile de karşılaştırılabilir
  • Raspberry Pi, Cray-1'in aksine oturmak için pek alan sunmuyor

    • Birisi Cray temalı bir Pi Zero kümesi yapmıştı; eğer fareyseniz şartları karşılayabilir: https://www.clustered-pi.com/blog/clustered-pi-zero.html
    • Bir Cray fiyatına, enflasyonu hesaba katmasanız bile işe yarar sayıda sandalye alınabilir
      Elektrik faturasındaki tasarrufu da düşününce daha da öyle
    • Evet, Pi kasaları hayal kırıklığıydı
      Düzgün soğutan neredeyse hiç ürün yok. flirc iyi, fanlı olanlarsa sadece sinir bozucu
      Üstünde entegre breadboard olan bir Pi kasası olsa iyi olurdu
      Ya da rahat oturulabilecek bir kasa da olurdu
    • Minimal tasarım açısından da Cray-1 kadar havalı değil
  • 2013'te o zamanki en yeni ve en pahalı Intel x86 CPU'yu alıp yeni bir PC topladım
    Eşim ofise girdi, ekrandaki grafiğe baktı ve “Çalışıyor gibi görünmüyorsun ama ne yaptığını da pek anlayamıyorum?” dedi
    “PC'min ne zaman Dünya üzerindeki en hızlı bilgisayar olacağını hesaplıyorum. Görünüşe göre 1992'de bir odayı tamamen dolduran Savunma Bakanlığı'na ait 90 milyon dolarlık en yeni süperbilgisayardan daha fazla hesap yapabiliyormuş, buna inanabiliyor musun?” diye cevap verdim
    “Güzel. Peki bu kredi kartı borcumuzu ödememize nasıl yardım edecek?” diye karşılık verdi
    Şakayı bir yana bırakırsak, böyle hesaplamalar için kullanılabilecek epey veri var. Mesela burada: https://en.wikipedia.org/wiki/TOP500
    Geçmişe doğru ekstrapolasyon yapınca ya da eski verileri bulunca, benim hesabıma göre bu PC'yi 1981'e götürseniz Dünya'daki tüm bilgisayarların toplamından daha hızlı olurdu gibi saçma bir sonuca çıkıyordum

    • Top500'de en sevdiğim sistemlerden biri SystemX
      https://www.top500.org/system/173736/
      2004'te devreye alındığında Apple PowerPC 970 sistemlerinden oluşan 1100 düğümlü bu düzenek listede 7. en güçlü bilgisayardı
      Linpack performansı 12,250.00 GFlop/s idi
    • Bir diğer eğlenceli şey de telefonumun Top500 listesinin alt sıralarına girebileceği en son yılı bulmak
  • Cray-1'in kanepesi çok daha iyi

    • Cray-1'in yastıklı oturma yeri güç kaynağını kapatıyor
      Mountain View'daki Computer Museum'daki Cray-1'in, lobideki etkinlikler için catering malzemesi deposu olarak kullanıldığını görmek üzücüydü
    • Bilgisayar oturma yerlerini geri getirmeliyiz
  • Özetle, 10 yıl önce Raspberry Pi ve Android telefonlar birkaç kat daha hızlıydı, şimdi ise yaklaşık 100 kat daha hızlılar
    Cebe sığmaları düşünülünce oldukça etkileyici

    • Modern işletim sistemleri olduğu için yavaşlatabiliyorlar, neyse ki /s
  • Birkaç yıl önce SPARCstation 20 Model 60 ile Raspberry Pi'deki Raspbian'ı karşılaştırmıştım. Bu SPARCstation, BYTE UNIX Benchmark'ın referans aldığı sistem: https://news.ycombinator.com/item?id=10795324
    Benchmarklara göre orijinal Raspberry Pi, SPARCstation 20'nin performansının 6-7 katıydı