Pada tren perkembangan arsitektur prosesor, atau mengapa saya percaya pada keberhasilan Huawei di pasar server

Kita hidup di masa yang menarik. Sepertinya saya bahwa 2-3 tahun ke depan akan menentukan ke mana perkembangan arsitektur akan pergi untuk dekade berikutnya. Sekarang di pasar prosesor server ada beberapa pemain yang mewakili pendekatan teknologi yang sama sekali berbeda. Dan ini sangat keren (saya bahkan merasa sulit untuk mengatakan suku kata mana yang ditekankan pada kata terakhir jatuh :))
.
Tetapi bahkan 5-6 tahun yang lalu sepertinya waktu membeku dan pengembangan berhenti. Beristirahatlah pada berbagai jenis pembatasan (dinding daya, dinding skalabilitas, dll.). Saya berbicara sedikit tentang itu di sini. Hukum Moore dipertanyakan dan ahli teori yang sangat bersemangat menyarankan untuk memasukkan koreksi logaritmik ke dalamnya :) Dominasi Intel di pasar prosesor server nampaknya tak tergoyahkan saat itu. AMD tidak menunjukkan persaingan yang serius, NVidia GPGPUs tampak seperti produk niche murni, dan upaya ARM untuk masuk ke pasar server tidak berhasil.

Semuanya telah berubah dengan perkembangan segmen seperti Machine Learning dan kecerdasan buatan. GPGPU ternyata jauh lebih baik "disesuaikan" dengan operasi konvolusi dan multiplikasi matriks (terutama dengan sedikit akurasi) daripada CPU. Selain itu, NVidia mampu menunjukkan peningkatan jumlah transistor, bahkan di atas hukum Moore. Ini telah menyebabkan dunia arsitektur server menjadi bipolar. Di satu sisi adalah x86 CPU, mesin latensi disesuaikan untuk menyembunyikan latensi dari mesin pesanan. Keuntungannya yang tidak dapat dipungkiri adalah kinerjanya yang sangat baik pada aplikasi single-threaded (kinerja single-thread). Kerugiannya adalah wilayah yang sangat luas dan jumlah transistor. Di ujung lain GPGPU adalah mesin Throughput, sejumlah besar elemen komputasi yang tidak rumit (UE). Di sini, kebalikannya benar - ukuran satu elemen kecil,yang memungkinkan Anda untuk menempatkan sejumlah besar dari mereka dalam satu chip. Di sisi lain, kinerja aplikasi single-threaded menyisakan banyak yang diinginkan ...

Sayangnya, upaya untuk menggabungkan CPU dan GPU berdaya tinggi dalam satu paket belum berhasil sejauh ini. Setidaknya dengan alasan bahwa chip seperti itu akan mengkonsumsi dan membuang terlalu banyak energi. Oleh karena itu, solusi diskrit kini sedang tren. Saya tidak benar-benar percaya pada mereka karena dua alasan. Pertama, arsitektur menjadi lebih kompleks dan lelucon tambahan muncul di dalamnya dalam bentuk bus yang menghubungkan CPU dan GPU, dan struktur memori yang heterogen. Kesulitan kedua sebagian terkait dengan yang pertama, dan terdiri dari kenyataan bahwa solusi seperti itu jauh lebih sulit untuk diprogram. Masing-masing model pemrograman akselerator yang ada (CUDA dari NVidia, DPC ++ dari Intel, OpenCL atau OpenMP) memiliki kelebihan dan kekurangannya sendiri. Pada saat yang sama, tidak satu pun dari mereka yang universal atau dominan.

Tampak bagi saya bahwa dari sudut pandang pengembangan arsitektur, langkah yang tepat diambil oleh AMD, yang memperkenalkan prosesor Roma. Karena kekompakan inti (dibandingkan dengan Intel), lebih banyak inti yang dapat ditempatkan dalam satu kasing. Namun, ini saja tidak cukup - agar solusi untuk skala dalam kinerja, perlu untuk menjaga komunikasi yang benar antara kernel (uncore) dan kualitas runtime paralel. Insinyur AMD berhasil menyelesaikan kedua masalah dan mendapatkan hasil yang sangat kompetitif di salah satu tolok ukur industri yang paling penting - SPEC CPU. Solusi AMD adalah antara kutub yang disediakan oleh Nvidia dan Intel. Tapi itu jauh lebih dekat ke yang terakhir. Ini masih merupakan "inti besar" yang sama. Rerata emas antara pendekatan kutub, menurut saya, membutuhkan core yang lebih kompak.Dan dari arsitektur yang ada, ARM memiliki peluang terbaik untuk menempati ceruk ini.
gambar
Jadi mengapa ARM sebenarnya dari Huawei? Saya menemukan jawaban ini untuk diri saya sendiri: dengan peningkatan jumlah core pada sebuah chip, signifikansi kinerja satu core berkurang (tetapi sampai batas tertentu), dan pentingnya komunikasi antara core dan dengan peningkatan memori. Dan komunikasi adalah area di mana Huawei adalah pemimpin dunia. Desain uncore (dan bukan hanya inti bahkan tidak) yang akan menentukan kinerja sistem. Dan di sini, saya pikir, kita memiliki peluang bagus.

Namun, arsitektur ideal hanya ada dalam ruang hampa. Pada kenyataannya, selalu perlu untuk berkorelasi dengan kuantitas dan struktur perangkat lunak yang ada di pasar server. Dan itu telah ditulis dan dioptimalkan untuk X86 selama bertahun-tahun. Dibutuhkan banyak waktu dan upaya untuk membuatnya lebih "ramah" dengan arsitektur ARM. Pekerjaan besar ada di depan, baik di bidang alat perangkat lunak (kompiler, perpustakaan, runtime) dan di bidang adaptasi aplikasi (rekayasa aplikasi). Tetapi saya percaya bahwa jalan akan dikuasai oleh orang yang berjalan.

All Articles