1 poin oleh GN⁺ 2023-12-26 | 1 komentar | Bagikan ke WhatsApp
  • Membandingkan seberapa jauh Raspberry Pi, perangkat Android, dan PC melampaui Cray 1, superkomputer tahun 1978, dalam benchmark Livermore Loops, Linpack, dan Whetstone
  • Nilai acuannya adalah performa hardware Cray 1 pada 80MHz dengan maksimum 160MFLOPS; untuk perbandingan aktual digunakan rata-rata geometrik Livermore Loops 11,9MFLOPS, Linpack 27MFLOPS, dan estimasi Whetstone 6MFLOPS
  • Raspberry Pi 1 tahun 2012 4,6 kali lebih cepat daripada Cray 1 berdasarkan rata-rata geometrik Livermore Loops, sementara Raspberry Pi 400 tahun 2020 meningkat hingga masing-masing 78,8 kali, 49,5 kali, dan 95,5 kali pada tiga benchmark tersebut
  • CPU Kryo 570 pada ponsel Android kelas menengah tahun 2021 mencatat 123 kali, 74 kali, dan 151 kali pada satu core, sedangkan laptop Core i5 1135G7 mencatat 359 kali, 337 kali, dan 226 kali dengan kompilasi AVX-512
  • Dengan SIMD dan multithreading, selisihnya makin besar, tetapi operasi fused pada AVX-512 dapat menghasilkan angka yang berbeda dari ekspektasi lama pada sebagian benchmark

Benchmark yang menjadi dasar perbandingan dan Cray 1

  • Pusat perbandingan adalah Lawrence Livermore Laboratory program kernels, yaitu Livermore Loops, yang digunakan untuk memvalidasi performa awal Cray 1
    • Hasilnya menggunakan versi yang dikonversi ke kode C pada 1990-an
    • Livermore Loops menghasilkan MFLOPS untuk tiap loop serta nilai minimum, maksimum, dan beberapa jenis rata-rata; rata-rata resminya adalah rata-rata geometrik
  • Untuk perbandingan tambahan digunakan Linpack 100 dan Whetstone
    • Linpack berbasis linpack-pc.c, yang dikonversi untuk PC dan diterima di Netlib
    • Whetstone dikembangkan dalam varian yang diperluas setelah tanggung jawab desainnya diteruskan dari penulis asli Harold Curnow, dan versi yang 100% tervectorisasi awalnya menargetkan sistem Cray 1 pertama yang diperkenalkan di Inggris
  • Nilai acuan utama Cray 1 adalah sebagai berikut
    • Performa hardware maksimum yang mungkin pada Cray 1 80MHz dikenal sebagai 160MFLOPS, dengan linked multiply and add yang menghasilkan dua hasil per clock
    • Hasil Livermore Loops adalah maksimum 82,1MFLOPS, rata-rata geometrik 11,9MFLOPS, dan minimum 1,2MFLOPS
    • Linpack adalah 27MFLOPS, sementara Whetstone diestimasi 6MFLOPS berdasarkan hasil Cray XMP

Titik ketika Raspberry Pi melampaui Cray 1

  • Pada 2013, benchmark PC untuk Linux dijalankan pada Raspberry Pi pertama dengan program yang pada dasarnya sama
  • Kalimat perbandingan saat itu menyebut bahwa Cray 1 tahun 1978 berharga 7 juta dolar, berbobot 10.500 pon, dan memerlukan catu daya 115kW, sedangkan Raspberry Pi berharga sekitar 70 dolar, berbobot beberapa ons, memakai catu daya 5W, dan lebih dari 4,5 kali lebih cepat daripada Cray 1
    • Perbandingan ini didasarkan pada rata-rata geometrik resmi Livermore Loops
  • Tiga pengukuran utama Pi 1 adalah Livermore Loops 55MFLOPS, Linpack 42MFLOPS, dan Whetstone 94MFLOPS
    • MHz CPU dibanding Cray 1 adalah 8,8 kali
    • MFLOPS dibanding Cray 1 masing-masing adalah 4,6 kali, 1,6 kali, dan 15,7 kali
  • Raspberry Pi 400 tahun 2020 pada 1800MHz menghasilkan Livermore Loops 819MFLOPS, Linpack 1147MFLOPS, dan Whetstone 498MFLOPS dalam mode 32-bit
  • Hasil kompilasi SIMD 64-bit Pi 400 dibanding Cray 1 adalah 78,8 kali, 49,5 kali, dan 95,5 kali

Hasil CPU ARM Android

  • Pada 2012, benchmark dikonversi agar berjalan di Android sebagai kode ARM native, dan memerlukan program front-end Java
  • Tablet Android awal kadang tidak memiliki hardware atau software yang mendukung komputasi floating-point cepat
  • Hasil ARM Cortex-A9 800MHz pada 2012 adalah Livermore Loops 20MFLOPS, Linpack 11MFLOPS, dan Whetstone 22MFLOPS
    • MHz CPU memang 10 kali Cray 1, tetapi rasio MFLOPS hanya masing-masing 1,7 kali, 0,4 kali, dan 3,7 kali
  • Setelah itu, V7-A9 800MHz meningkat menjadi 115MFLOPS, 101MFLOPS, dan 155MFLOPS
    • Dibanding Cray 1, ini 9,7 kali, 3,7 kali, dan 25,8 kali
  • CPU Kryo 570 pada ponsel kelas menengah tahun 2021 mencatat Livermore Loops 1468MFLOPS, Linpack 1986MFLOPS, dan Whetstone 905MFLOPS pada 2000MHz
    • Dibanding Cray 1: 123 kali, 74 kali, dan 151 kali
    • MHz CPU adalah 25 kali Cray 1

Performa single-core PC Windows dan Linux

  • Sejak 1990-an, benchmark untuk CPU Intel dikembangkan untuk DOS, OS/2, Windows, dan Linux
  • PC pertama yang mencapai skor rata-rata Livermore Loops Cray 1 adalah Pentium 100MHz pada 1994
    • Livermore Loops 12MFLOPS, Linpack 12MFLOPS, Whetstone 16MFLOPS
    • Perbandingan MHz CPU dan tiga MFLOPS terhadap Cray 1 adalah sekitar 1,3 kali, 1,0 kali, 0,44 kali, dan 2,6 kali
  • Pentium Pro 200MHz tahun 1995 menghasilkan Livermore Loops 34MFLOPS, Linpack 49MFLOPS, dan Whetstone 41MFLOPS
    • Dibanding Cray 1: 2,9 kali, 1,8 kali, dan 6,8 kali
  • Core 2 1820MHz single-core tahun 2007 mencatat 413MFLOPS, 998MFLOPS, dan 374MFLOPS
    • Dibanding Cray 1: 35 kali, 37 kali, dan 62 kali
  • Laptop Core i5 1135G7 tahun 2021 pada 4150MHz menghasilkan 1387MFLOPS, 3541MFLOPS, dan 802MFLOPS
    • Dibanding Cray 1: 117 kali, 131 kali, dan 134 kali

Dampak kompilasi SIMD

  • Hasil kompilasi dengan opsi SIMD SSE, AVX, dan AVX-512 juga dibandingkan
    • SSE menggunakan register vektor 128-bit, AVX 256-bit, dan AVX-512 512-bit
    • Untuk single precision, masing-masing memproses 4, 8, dan 16 angka secara bersamaan; untuk double precision, masing-masing 2, 4, dan 8 angka
  • Jika FMA digunakan, performa maksimum yang diharapkan dapat berlipat dua, tetapi akurasi hasil perhitungan bisa sedikit berbeda
    • Benchmark melaporkan perbedaan seperti ini sebagai error
  • Pada hasil SIMD Windows, Core i5 mencatat 238 kali untuk Livermore Loops, 190 kali untuk Linpack, dan 182 kali untuk Whetstone dibanding Cray 1
  • Hasil kompilasi di Linux dengan gcc 9.3.0 dan lingkungan Ubuntu lebih tinggi
    • Hasil AVX dibanding Cray 1: 300 kali, 259 kali, dan 179 kali
    • Hasil AVX-512: 359 kali, 337 kali, dan 226 kali
  • File executable AVX-512 akan melaporkan kegagalan program jika dijalankan pada CPU lama yang tidak memiliki opsi tersebut

Vector Whetstone dan perbandingan superkomputer lama

  • Vector Whetstone menjalankan fungsi yang sama dengan Whetstone skalar, tetapi terhadap lokasi memori berurutan yang ditentukan oleh parameter panjang vektor
  • Cray 1 mencapai performa maksimum pada panjang vektor 64 word atau lebih dan menunjukkan pola bergerigi
  • Tabel mencakup hasil Whetstone skalar dan vektor dari 13 superkomputer antara 1978 hingga 1991
    • Cray Y-MP disajikan dengan clock dan MFLOPS skalar sekitar 2 kali Cray 1, serta MFLOPS vektor 4 kali
    • Cray Y-MP adalah sistem dengan dua unit vektor
  • Hasil Core i5 AVX-512 pada Vector Whetstone adalah rata-rata 28.303MFLOPS untuk single precision dan rata-rata 20.346MFLOPS untuk double precision
    • Dibanding Cray 1: 602 kali dan 433 kali
    • Kecepatan single precision maksimum adalah 75,1GFLOPS
  • Vector Whetstone Raspberry Pi 400 memiliki rata-rata 2131MFLOPS untuk single precision dan 1184MFLOPS untuk double precision
    • Dibanding Cray 1: 45 kali dan 25 kali

Whetstone multithread dan MP MFLOPS

  • MP Whetstone menjalankan beberapa kode Whetstone standar dalam satu program dengan 1, 2, 4, dan 8 thread
    • Ini digunakan untuk menunjukkan throughput multicore dibandingkan satu core CPU
  • Performance Monitor menunjukkan laptop Core i5 berjalan sekitar 4150MHz pada 1 dan 2 thread, serta sekitar 3800MHz pada 4 dan 8 thread
  • Hasil MP Whetstone 8 thread adalah sebagai berikut
    • Laptop Core i5 AVX-512: 1521 kali Cray 1
    • Ponsel Android Kryo 570: 757 kali
    • Raspberry Pi 400: 400 kali
  • MP MFLOPS adalah benchmark yang menjalankan kombinasi perkalian dan penjumlahan floating-point agar menunjukkan performa yang hampir maksimum
    • Menjalankan 2, 8, dan 32 floating point operations per data word
    • Default-nya 8 thread, tetapi hingga 64 thread dapat ditentukan dengan parameter saat menjalankan program
  • Hasil tertinggi MP MFLOPS pada laptop Core i5 adalah sebagai berikut
    • Single precision 325.915MFLOPS, 2671 kali Cray 1
    • Double precision 160.641MFLOPS, 1317 kali Cray 1
    • Single precision ponsel Android 35.686MFLOPS, 293 kali Cray 1
    • Single precision Raspberry Pi 400 30.150MFLOPS, 247 kali Cray 1

Akurasi numerik dan hasil yang lebih cepat dari perkiraan

  • Pada Livermore Loops yang menggunakan AVX-512, ada kasus ketika akurasi sebagian checksum turun dari 15–16 digit menjadi 12–13 digit
    • Operasi fused tampaknya hanya melakukan pembulatan sekali, alih-alih membulatkan pada tiap instruksi terpisah
  • Pada Linpack AVX-512 dan Whetstone SSE, laptop Core i5 juga mencatat sumcheck nonstandar atau perbedaan hasil
  • Sebagian hasil SSE dan AVX lebih tinggi daripada MFLOPS/MHz maksimum yang diperkirakan di dokumen
    • Contoh SSE pada Core i5 untuk Livermore Loops adalah 3,56MFLOPS/MHz, level yang dianggap tidak mungkin tanpa FMA
    • Contoh AVX adalah 4,86MFLOPS/MHz, 21,5% lebih tinggi dari maksimum yang diperkirakan
  • Pemeriksaan kode hasil disassembly menunjukkan bahwa contoh SSE dan AVX tersebut tidak memiliki instruksi fused multiply and add
  • Kode disassembly MP MFLOPS AVX-512 mencakup instruksi fused multiply/add/subtract
    • Ada 21 instruksi vektor aritmetika, dan jumlah instruksi minimum untuk bentuk FMA penuh adalah 16, sehingga kecepatan yang dapat dicapai dihitung 76,19% dari FMA penuh
    • Dengan penyesuaian ini, estimasi kecepatan maksimum Cray 1 saat menjalankan fungsi tersebut turun dari 160MFLOPS menjadi 122MFLOPS

Selisih yang berubah tergantung jenis pekerjaan

  • Rasio representatif terhadap Cray 1 untuk Core i5 AVX-512, ponsel Android, dan Raspberry Pi 400 sangat berbeda tergantung jenis pekerjaan
  • Dalam perbandingan single-core, Core i5 AVX-512 mencatat rata-rata Livermore Loops 359 kali, Linpack 337 kali, dan Whetstone 226 kali
  • Ponsel Android mencatat rata-rata Livermore Loops 123 kali, Linpack 74 kali, dan Whetstone 151 kali
  • Raspberry Pi 400 berada di kisaran rata-rata Livermore Loops 79 kali, Linpack 50 kali, dan Whetstone 96 kali
  • Pada pekerjaan yang memanfaatkan multiprogram, multithreading, dan SIMD, selisihnya jauh lebih besar daripada perbandingan single-core sederhana; karena jumlah core, penurunan clock, dan konfigurasi big/LITTLE pada CPU modern, performa multicore juga menjadi lebih sulit diprediksi

1 komentar

 
GN⁺ 2023-12-26
Komentar Hacker News
  • Melihat perbandingan seperti ini, sebelum benchmark saya jadi penasaran apa komputasi nyata paling “heroik” yang kemungkinan dijalankan di Cray-1 saat itu, dan bagaimana hal itu bisa direproduksi sekarang di perangkat seperti Raspberry Pi
    Mungkin model cuaca·iklim, atau radiasi-hidrodinamika. Dibandingkan perangkat lunak analisis elemen hingga modern, presisinya hampir pasti akan jauh lebih rendah, tetapi percobaannya sendiri tampak menarik

    • Kemungkinan besar itu simulasi senjata nuklir
      Mesin pertamanya dikirim ke Los Alamos
      https://www.theatlantic.com/technology/archive/2014/01/these...
    • Salah satu pelanggan awalnya adalah European Centre for Medium-Range Weather Forecasts, jadi kemungkinan dipakai untuk prakiraan cuaca jangka menengah
    • Bukan Cray-1, tetapi beberapa tahun kemudian angkatan laut menjalankan komputasi dinamika fluida komputasional di Cray 90 untuk memodelkan aliran di sekitar lambung kapal, dan kodenya ditulis dalam Fortran
      Akan menarik kalau kode yang ditulis saat itu bisa diakses lagi. Pekerjaan yang dulu butuh beberapa menit atau beberapa jam di Cray kemungkinan sekarang bisa berjalan dalam hitungan detik di Raspberry Pi
    • Bisa mulai dari Spec ‘06. Di sana ada mikro-kernel dari beban kerja “heroik” semacam itu
    • Sekitar 1979 saya pernah mengunjungi fasilitas NCAR di Boulder, dan sempat duduk di kursi Cray-1 di sana
      Jadi ya, mesin itu memang dipakai untuk komputasi cuaca dan iklim
  • Saya kenal seseorang yang bekerja di laboratorium nasional yang memiliki superkomputer Cray-1 sendiri, dan mesin itu ditempatkan di ruang mesin dengan jendela observasi besar agar para pengunjung bisa melihatnya
    Tepat sebelum rombongan tur VIP besar yang dia ketahui datang, dia bersembunyi di dalam Cray-1, lalu saat rombongan tiba dia berjalan keluar dari dalam Cray-1 sambil menaikkan resleting jeans, memasang ekspresi canggung yang seolah lega, kemudian pura-pura terkejut melihat rombongan tur yang melongo menatapnya dari balik kaca, lalu buru-buru menghilang

  • Selain benchmark, saya penasaran apakah ada perangkat lunak yang bisa membuatnya terasa secepat itu
    Perangkat lunak yang saya pakai sekarang seperti GUI, IDE, compiler, dan office terasa seperti versi yang lebih berkembang dari yang dulu berjalan di 386. Perangkat lunak yang dipakai sekarang di Met mungkin dirancang dengan asumsi komputer jutaan kali lebih cepat, tetapi rasanya perangkat lunak yang dulu membutuhkan Cray pasti ada di suatu tempat

    • Tidak ada. Cray-1 menjalankan pekerjaan batch, kebanyakan simulasi ilmiah yang memakan waktu berjam-jam atau berhari-hari
      Ada antarmuka terminal, dan mesin itu tidak digunakan untuk aplikasi interaktif real-time
    • Kode fisika Fortran lama tampaknya paling mungkin
      Misalnya menghitung penampang hamburan dari elemen matriks, atau pekerjaan dengan banyak aljabar linear yang bisa divektorisasi
    • Banyak pekerjaan yang dulu memakan waktu berjam-jam sekarang mungkin selesai dalam waktu kurang dari 1 detik
      Kalau memikirkan teknik mesin, saat itu mungkin orang mensimulasikan bagaimana mobil berubah bentuk dalam tabrakan. Sekarang simulasi serupa bisa dilakukan secara real-time untuk bersenang-senang di video game. Setahu saya game hampir tidak melakukannya karena tidak benar-benar membutuhkan model yang akurat secara fisika, tetapi secara teknis itu memungkinkan
      Hal yang sama berlaku untuk rendering. Dulu setiap frame Toy Story dirender selama berjam-jam, tetapi sekarang, meskipun masih bisa diperdebatkan, grafis yang lebih baik dapat dihasilkan secara real-time
  • Saya menunggu video lanjutan Jeff Geerling yang menaruh Raspberry Pi ke dalam casing Cray-1

    • Akan sangat keren jika ada casing PC berbentuk Cray-1
      Versi yang lebih kecil untuk Raspberry Pi juga akan menarik
    • Atau sambungkan lewat jaringan dan isi sebanyak mungkin juga bagus
  • Lebih masuk akal membandingkannya dengan RISC-V yang mendukung vector 1.0
    Karena Cray-1 adalah mesin vektor

    • Apakah pernah ada CPU RISC-V dengan dukungan vektor perangkat keras yang benar-benar dirilis sebagai chip nyata?
    • Atau bisa juga dibandingkan dengan GPU atau TPU
  • Tidak seperti Cray-1, Raspberry Pi tidak menyediakan banyak ruang untuk duduk

    • Seseorang pernah membuat klaster Pi Zero bertema Cray, yang mungkin memenuhi syarat jika yang duduk itu tikus: https://www.clustered-pi.com/blog/clustered-pi-zero.html
    • Dengan harga sebuah Cray, bahkan tanpa menyesuaikan inflasi pun Anda bisa membeli cukup banyak kursi yang layak
      Apalagi jika memperhitungkan penghematan tagihan listrik
    • Benar, casing Pi memang mengecewakan
      Hampir tidak ada yang mendinginkan dengan baik. flirc bagus, dan yang memakai kipas cuma mengganggu
      Akan menyenangkan jika ada casing Pi dengan breadboard bawaan
      Atau casing yang nyaman untuk diduduki juga boleh
    • Dalam desain yang minimalis, tidak ada kerennya seperti Cray-1
  • Pada 2013 saya membeli CPU Intel x86 terbaru dan termahal saat itu lalu merakit PC baru
    Istri saya masuk ke kantor, melihat grafik di layar, dan berkata, “Sepertinya kamu tidak sedang bekerja, tapi aku juga tidak begitu paham sedang apa yang kamu lakukan?”
    Saya menjawab, “Aku sedang menghitung kapan PC-ku kira-kira akan menjadi komputer tercepat di bumi. Sepertinya pada 1992, komputer ini akan menghitung lebih baik daripada superkomputer terbaru Departemen Pertahanan seharga 90 juta dolar yang memenuhi satu ruangan, bisa dipercaya?”
    Dia menjawab, “Bagus. Terus itu membantu kita melunasi tagihan kartu bagaimana?”
    Di luar bercanda, ada cukup banyak data untuk perhitungan seperti ini. Misalnya di sini: https://en.wikipedia.org/wiki/TOP500
    Dengan mengekstrapolasi ke masa lalu atau mencari data lama, perhitungan saya menghasilkan kesimpulan absurd seperti bahwa jika PC ini dibawa ke tahun 1981, ia akan lebih cepat daripada gabungan semua komputer di bumi

    • Salah satu mesin favorit saya di Top500 adalah SystemX
      https://www.top500.org/system/173736/
      Saat diperkenalkan pada 2004, susunan 1100 sistem Apple PowerPC 970 ini adalah komputer terkuat ke-7 dalam daftar
      Performa Linpack-nya adalah 12,250.00 GFlop/s
    • Hal menarik lainnya adalah mencari tahun paling akhir ketika ponsel saya masih bisa masuk ke peringkat bawah daftar Top500
  • Cray-1 punya sofa yang jauh lebih bagus

    • Kursi empuk Cray-1 menutupi catu daya
      Saya sedih melihat Cray-1 di Computer Museum, Mountain View, dipakai sebagai tempat menyimpan perlengkapan katering untuk acara lobi
    • Kursi komputer harus dihidupkan kembali
  • Singkatnya, 10 tahun lalu Raspberry Pi dan ponsel Android beberapa kali lebih cepat, dan sekarang kira-kira 100 kali lebih cepat
    Cukup mengesankan mengingat perangkat itu muat di saku

    • Untung ada sistem operasi modern yang memperlambatnya /s
  • Beberapa tahun lalu saya pernah membandingkan SPARCstation 20 Model 60 dengan Raspberry Pi yang menjalankan Raspbian. SPARCstation ini adalah sistem acuan untuk BYTE UNIX Benchmark: https://news.ycombinator.com/item?id=10795324
    Berdasarkan benchmark, Raspberry Pi asli memiliki performa 6~7 kali SPARCstation 20