Kurang dari dua tahun yang lalu, kami menjelajahi server Arm SoC pertama, yang secara teoritis dapat bersaing dengan Intel Xeon E5s - Cavium ThunderX. Server SoC menunjukkan semua yang diumumkan, karena kinerja single-threaded yang rendah dan kesulitan dalam mengoptimalkan karakteristik energi, SoC 48-core ditugaskan untuk ceruk pasar. Akibatnya, server Cavium SoC pertama tidak pernah mampu bersaing dengan Intel Xeon.

Tapi Cavium tidak menyerah karena alasan yang jelas: saat ini, pasar server menjadi lebih menarik dari sebelumnya. Pusat data raksasa global Intel mendatangkan pendapatan sekitar 20 miliar dolar AS (!) Per tahun. Selain itu, profitabilitas adalah 50%. Dalam hal laba dan perputaran uang, pasar server jauh lebih besar daripada pasar peralatan lainnya. Jadi, setelah meluncurkan ThunderX, Cavium berjanji untuk merilis iterasi kedua: peningkatan manajemen daya, peningkatan kinerja single-threaded, dan bahkan lebih banyak core (54).
Apa yang tidak bermain di tangan Cavium adalah bahwa jika pengguna membutuhkan server, ia hanya dapat mengambil mesin Intel yang terpercaya dan andal. Memang, janji-janji keras dari Arm, Calxeda, Broadcom, AppliedMicro selama 5 tahun terakhir tetap janji, menyebabkan gelombang serius skeptisisme dan ketidakpercayaan dan munculnya Server Arm SoCs baru.
Namun demikian, ciptaan baru orang luar Cavium patut mendapat perhatian. Sejumlah perubahan dilakukan, tidak hanya penambahan nomor "2" untuk nama: Cavium membeli desain Vulcan Avago. Vulcan adalah desain prosesor yang agak ambisius, awalnya dikembangkan oleh tim server Arm SoC Broadcom, dan memiliki warisan yang jauh lebih besar daripada ThunderX asli. Selain itu, berdasarkan pengalamannya dengan ThunderX, Cavium mampu memperkenalkan beberapa perbaikan mikroarsitektur ke desain Vulcan, meningkatkan kinerja dan kekuatannya.
Alhasil, ThunderX2 “ternyata” menjadi inti yang lebih rumit dari generasi sebelumnya. Inti ThunderX memiliki pipa yang sangat pendek dan tidak mungkin tahan dua instruksi per siklus, tetapi inti Vulcan dirancang untuk 8 pengambilan dan mengeksekusi hingga 4 instruksi per siklus. Dan bahkan lebih lagi: semua 4 stream (SMT4) dapat aktif pada saat yang sama, memberikan pemuatan back-end yang konstan. ThunderX2 SoC32 yang baru memiliki 32 core dengan frekuensi hingga 2,5 GHz.

Dengan hingga 128 utas dan setidaknya delapan pengontrol DDR4, CPU ini harus berkinerja baik di semua beban server. Dengan kata lain, tidak seperti ThunderX (1), ThunderX2 adalah prosesor server Arm pertama dan memiliki setiap kesempatan untuk mengguncang keseimbangan di pasar server.
Siapa yang memiliki lebih banyak: spesifikasi
Tiga puluh dua core IPC tinggi dalam satu paket tampaknya menjanjikan. Tetapi seperti apa tampilan ThunderX2 baru dibandingkan dengan produk AMD, Qualcomm dan Intel? Pada tabel di bawah, kami membandingkan spesifikasi beberapa SKU server top-end.

Pembaca yang berpengetahuan luas akan segera melihat bahwa bagian atas jalur prosesor Intel adalah Xeon Platinum 8180. Namun, SKU ini dengan 205 W TDP dan harga yang lebih tinggi dari $ 10.000 umumnya tidak dapat dibandingkan dengan prosesor mana pun dalam daftar. Kami sudah hampir melewati garis alasan, termasuk 8176, yang, menurut kami, masuk dalam daftar ini sesuai dengan parameter SKU maksimum dari blok kernel / thread. Faktanya, Cavium memposisikan Cavium 9980 sebagai "sebanding" dengan Xeon Platinum 8164 (dan Intel memainkan peran ini 8176), tetapi dengan frekuensi yang sedikit lebih rendah.
Namun, dalam hal kinerja untuk dolar, Cavium membandingkan 9999 andalannya dengan Intel Xeon Gold 6148, dan dalam hal ini, harga prosesor Cavium terlihat cukup menggiurkan. Menurut hasil tes, ThunderX2 tercepat adalah 30-40% di depan Xeon 6148, sedangkan penawaran dari Cavium adalah $ 1.300 lebih murah. Penetapan harga yang agresif menjelaskan rumor bahwa Qualcomm tidak akan memasuki pasar server.
Data dalam tabel di atas menunjukkan perbedaan penting antara para pesaing. Intel tampaknya memiliki topologi inti paling canggih dan kecepatan turbo tertinggi. Qualcomm, sementara itu, terlihat lebih menarik ketika datang ke kinerja per watt.

Seperti EPYC AMD, Cavium's ThunderX2 kemungkinan akan bersinar di pasar komputasi kinerja tinggi (throughput 33% lebih tinggi, core / utas lebih tinggi). Seperti halnya desain AMD, cache EPYC L3 lambat jika Anda membutuhkan data yang tidak ada dalam slot cache 8 MB lokal. ThunderX2 jauh lebih kompleks - dengan arsitektur cincin ganda mirip dengan arsitektur cincin Xeon v4 (Broadwell-EP). Menurut informasi dari Cavium, arsitektur ring non-blocking mereka mampu menyediakan throughput hingga 6 TB / s.
Arsitektur cincin ini terhubung ke Cavium's Coherent Processor Interconnect (CCPI2 - di bagian atas gambar), yang beroperasi pada kecepatan 600 Gbit / dtk. Koneksi ini menghubungkan dua node socket / NUMA. 56 jalur PCIe 3.0 SoC terhubung ke ring, yang telah ditempatkan Cavium di antara 14 pengontrol PCIe. 14 pengendali ini dapat, pada gilirannya, bercabang ke x4 atau x1, seperti yang ditunjukkan di bawah ini.

Plus itu mendukung SR-IOV, yang sangat penting untuk virtualisasi I / O (Xen dan KVM).
ThunderX: Dari Mudah ke Kompleks
Briefing singkat. ThunderX asli adalah versi yang ditingkatkan dari Octeon III: CPU dengan kemampuan untuk secara bersamaan menjalankan dua instruksi (dual-core core) dengan dua jalur pipa pendek.

Keuntungan dari desain ThunderX asli adalah efisiensi energinya yang tinggi, terutama untuk beban kerja dengan ILP rendah (paralelisme level instruksi). Tentu saja, konveyor pendek semacam itu menimbulkan batasan serius untuk meningkatkan frekuensi clock, dan desain desain yang sederhana menjamin kinerja single-threaded yang rendah pada beban ILP menengah dan tinggi, sementara prosesor out-of-order yang lebih maju dapat mengekstraksi sebanyak mungkin "paralelisme tersembunyi". ".
Inti "baru" dari Cavium: Vulcan

Dibandingkan dengan ThunderX asli, inti dari Vulcan ThunderX2 adalah binatang yang sama sekali berbeda. Diumumkan pada tahun 2014 oleh Broadcom, Vulcan adalah inti yang relatif besar yang mengendalikan 4 utas simultan (SMT4). Akibatnya, ujung belakang harus dimuat dengan baik bahkan ketika bekerja dengan beban server dengan ILP rendah.
Untuk memastikan stabilitas 4 stream SMT, ThunderX2 front-end dapat mengekstraksi hingga 64 byte dari cache instruksi 8-arah 32 KB, yang dilengkapi dengan prefetcher “baris berikutnya” yang sederhana. Namun, pilihan 8 perintah hanya mungkin jika tidak ada percabangan dalam 64 byte ini. Kalau tidak, seleksi akan terputus di persimpangan.
Ini berarti bahwa dalam kode percabangan yang intensif (database, AI ...), fetcher menerima rata-rata ± 5 instruksi per siklus, karena salah satu dari 5 instruksi adalah cabang. Instruksi yang dipilih kemudian dikirim ke buffer smoothing - buffer di mana instruksi yang disimpan disimpan untuk decoding.

Kemudian dekoder bekerja dengan paket 4 instruksi. Antara dekoder dan fase penggantian nama, setiap aliran memiliki "slip buffer", yang terdiri dari 8 paket. Dengan 4 utas, hingga 32 paket (128 instruksi) dapat disangga kapan saja.
4 instruksi ini - paket - bergerak sepanjang pipa sampai antrian pesan tunggal tercapai untuk penjadwal. Seperti Intel Loop Stream Detector (berfungsi seperti cache kecil), ia juga memiliki buffer loop dan prediktor. Buffer loop ini menghilangkan prediksi cabang yang salah dan mengandung μops yang didekodekan yang “mempersingkat” pipa dan mengurangi energi yang digunakan untuk decoding.
Hingga 6 instruksi dapat dieksekusi sekaligus. Implementasinya mencakup 2 slot ALU / FP / NEON, 1 slot ALU / tap, 2 slot load / store (16 byte), dan 1 slot penyimpanan bersih yang mengirim 16 byte ke cache D. Ada yang kecil (Kavium tidak akan mengungkapkan berapa) L1 TLB untuk beralih dengan nol penundaan dari alamat virtual ke fisik. Tidak ada prefetcher perangkat keras untuk cache L1 D1, tetapi cache L2 memiliki prefetcher perangkat keras yang cukup canggih yang dapat mengenali pola (dapat bekerja langkah demi langkah atau mengambil baris berikutnya).
Ini cukup untuk "memberi makan" ujung belakang, yang dapat mendukung 4 instruksi per siklus dari 4 utas berbeda.
Perbedaan dalam mikroarsitektur
Cavium telah menerbitkan sejumlah informasi terbatas tentang inti ThunderX2. Beberapa fitur utama dari berbagai arsitektur prosesor dirangkum di bawah ini.

Analisis terperinci berada di luar cakupan artikel ini. Tetapi Anda dapat membaca analisis Johan De Gelas pada arsitektur Falkor, Skylake, dan Zen di AnandTech. Kami membatasi diri pada perbedaan yang paling jelas.
Sangat jelas bahwa kinerja single-threaded Intel tetap tak tertandingi: inti Skylake adalah inti yang menjalankan sebagian besar instruksi dengan cepat, dan yang paling penting, berjalan pada kecepatan clock yang lebih tinggi. Inti dari ThunderX2 berbeda dalam hal ini mengekstrak maksimal instruksi per siklus, yang mampu secara konstan mendukung 4 utas. Pengambil akan menangkap 8 tim dari satu utas, lalu 8 dari utas kedua, dan akan terus berputar di antara utas. Ini berarti bahwa prediksi yang buruk dapat secara signifikan mengurangi kinerja utas tunggal.
SKU ThunderX2: 16 hingga 32 core
SKU yang digunakan untuk pengujian adalah ThunderX2 CN9980 2.2. Ini adalah SKU top-end, mengandung 32 core pada frekuensi 2,2 GHz dengan kemampuan untuk meningkatkan hingga 2,5 GHz.

Jika Anda yakin dengan rencana Cavium, dalam beberapa bulan mendatang akan ada lebih banyak SKU. Cavium mengklaim CN9980 akan segera tersedia dengan frekuensi 2,5 GHz, dan turbo hingga 3 GHz.
Cavium mendaftar semua SKU yang direncanakan bersama dengan SKU Intel yang sebanding. Menurut definisi Cavium, SKU Intel yang sebanding adalah chip yang mencapai SPECInRate (2017) yang sama di bawah gcc seperti SKU Cavium.

Cavium percaya bahwa CN9880 2.2 yang kami dapatkan sebanding dengan 8164 yang jauh lebih mahal. Untuk pengujian kami, kami membandingkannya dengan 8176 (SKU Intel tersedia untuk kami). Tidak masalah: 8176 hanya memiliki kecepatan clock 3% lebih tinggi dan 2 core tambahan (+ 7%) dibandingkan 8164. Namun, perlu diketahui bahwa meskipun ThunderX2 Cavium benar-benar dapat bersaing dengan SKU Intel yang ditunjukkan, mereka menawarkan kinerja yang sama untuk sepertiga dari biaya SKU Intel.
Di bagian selanjutnya:
- Konfigurasi Tes dan Metodologi
- Subsistem Memori: Bandwidth
- Performa berulir tunggal: SPEC CPU2006
- SPEC CPU2006 Cont: kinerja berbasis inti dengan SMT
Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikannya kepada teman-teman Anda,
diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami temukan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).
Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV dari $ 249 di Belanda dan Amerika Serikat! Baca tentang
Cara Membangun Infrastruktur Bldg. kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?