Rumah  >  Artikel  >  Peranti teknologi  >  Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?

Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?

WBOY
WBOYke hadapan
2023-04-08 13:51:031318semak imbas


Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?

Kami telah menyebut bertahun-tahun yang lalu bahawa melatih beban kerja AI menggunakan rangkaian neural konvolusi dengan data yang mencukupi menjadi Arus Perdana, dan HPC utama (tinggi -performance computing) di seluruh dunia telah menyerahkan beban ini kepada pemprosesan GPU NVIDIA selama bertahun-tahun. Untuk tugasan seperti simulasi dan pemodelan, prestasi GPU agak cemerlang. Pada dasarnya, simulasi/pemodelan HPC dan latihan AI sebenarnya adalah sejenis penumpuan harmonik, dan GPU, sebagai pemproses selari secara besar-besaran, amat baik dalam melaksanakan jenis kerja ini.

Tetapi sejak 2012, revolusi AI secara rasmi meletus, dan perisian pengecaman imej meningkatkan ketepatan ke tahap melebihi manusia buat kali pertama. Jadi kami sangat ingin tahu tentang berapa lama kesamaan pemprosesan cekap HPC dan AI pada GPU yang serupa boleh bertahan. Jadi pada musim panas 2019, melalui penghalusan dan lelaran model, kami cuba menggunakan unit matematik ketepatan campuran untuk mencapai keputusan yang sama seperti pengiraan FP64 dalam penanda aras Linpack. Sebelum NVIDIA melancarkan GPU GA100 "Ampere" pada tahun berikutnya, kami sekali lagi cuba menguji prestasi pemprosesan HPC dan AI. Pada masa itu, Nvidia belum lagi melancarkan GPU A100 "Ampere", jadi syarikat gergasi kad grafik itu belum secara rasmi condong ke arah melatih model AI pada teras tensor ketepatan campuran. Jawapannya sudah tentu sekarang jelas. Beban kerja HPC pada unit vektor FP64 memerlukan beberapa pelarasan seni bina untuk memanfaatkan prestasi GPU. Tetapi pada masa itu, semuanya masih boleh dilakukan.

Dengan pelancaran GPU GH100 "Hopper" Nvidia awal tahun ini, terdapat jurang yang lebih luas dalam peningkatan prestasi antara generasi antara AI dan HPC. Bukan itu sahaja, pada persidangan GTC 2022 musim luruh baru-baru ini, pengasas bersama NVIDIA dan CET Huang Jensen berkata bahawa beban kerja AI itu sendiri juga telah menjadi berbeza, memaksa NVIDIA untuk mula meneroka perniagaan CPU-atau, lebih tepat, ia sepatutnya dipanggil pengawal memori lanjutan Dioptimumkan berorientasikan GPU.

Kami akan membincangkan isu ini secara terperinci kemudian.

Dua bunga mekar, satu di setiap sisi

Mari kita mulakan dengan pertimbangan yang paling jelas. Jika Nvidia mahu GPUnya mempunyai prestasi FP64 yang lebih kukuh untuk menyokong aplikasi HPC titik terapung 64-bit seperti pemodelan cuaca, pengiraan dinamik bendalir, analisis unsur terhingga, kromodinamik kuantum dan simulasi matematik intensiti tinggi yang lain, maka pemecut Idea reka bentuk haruslah seperti ini: cipta produk yang tidak mempunyai sebarang teras tensor atau teras FP32 CUDA (terutamanya digunakan sebagai pelorek grafik dalam seni bina CUDA).

Tetapi saya khuatir hanya beberapa ratus pelanggan sahaja yang sanggup membeli produk sedemikian, jadi harga satu cip mungkin berpuluh ribu malah ratusan ribu ringgit Hanya dengan cara ini kos reka bentuk dan pembuatan ditanggung. Untuk membina perniagaan yang lebih besar dan lebih menguntungkan, Nvidia mesti mereka bentuk seni bina yang lebih umum yang keupayaan matematik vektornya lebih kuat daripada CPU.

Jadi sejak NVIDIA memutuskan untuk mereka bentuk produk secara serius untuk aplikasi HPC 15 tahun lalu, mereka telah memfokuskan pada senario HPC menggunakan operasi matematik titik terapung FP32 - termasuk penggunaan dalam pemprosesan seismik, pemprosesan isyarat dan beban kerja genomik. data ketepatan dan tugas pemprosesan, dan secara beransur-ansur meningkatkan keupayaan FP64 GPU.

Pemecut K10 yang dilancarkan pada Julai 2012 dilengkapi dengan dua GPU "Kepler" GK104, iaitu GPU yang sama persis digunakan dalam kad grafik permainan. Ia mempunyai 1536 teras CUDA FP32 dan tidak menggunakan sebarang teras FP64 khusus. Sokongan FP64nya dilakukan semata-mata dalam perisian, jadi tiada peningkatan prestasi yang ketara: GPU dwi GK104 dilakukan pada 4.58 teraflops pada tugasan FP32 dan 190 gigaflops pada FP64, nisbah 24 berbanding 1. K20X, yang dikeluarkan pada Persidangan Pengkomputeran Super SC12 pada penghujung 2012, menggunakan GPU GK110, dengan prestasi FP32 sebanyak 3.95 teraflops dan prestasi FP64 sebanyak 1.31 teraflops, nisbah meningkat kepada 3 berbanding 1. Pada masa ini, produk mempunyai ketersediaan awal untuk aplikasi HPC dan pengguna melatih model AI dalam ruang pengkomputeran akademik/hiperskala. Kad pemecut GPU K80 menggunakan dua GPU GK110B Ini kerana NVIDIA tidak menambah sokongan FP64 pada GPU "Maxwell" paling tinggi pada masa itu, jadi GK110 B menjadi pilihan yang paling popular dan kos efektif pada masa itu. Prestasi FP32 K80 ialah 8.74 teraflops dan prestasi FP64 ialah 2.91 teraflops, masih mengekalkan nisbah 3 berbanding 1.

Sehingga kepada GPU GP100 "Pascal", jurang antara HPC dan AI telah semakin melebar dengan pengenalan penunjuk ketepatan campuran FP16, tetapi nisbah vektor FP32 kepada vektor FP64 telah terus ditukar kepada 2:1 , dan dalam "Volta" Ia telah dikekalkan dalam GPU yang lebih baharu seperti "Ampere" GA100 dan "Hopper" GH100 selepas GV100. Dalam seni bina Volta, NVIDIA memperkenalkan buat pertama kalinya unit matematik matriks Tensor Core dengan matriks tetap Lei, yang meningkatkan keupayaan pengkomputeran titik terapung (dan integer) dengan ketara dan terus mengekalkan unit vektor dalam seni bina.

Teras tensor ini digunakan untuk memproses matriks yang lebih besar dan lebih besar, tetapi ketepatan operasi khusus semakin rendah, jadi jenis peralatan ini telah mencapai daya pemprosesan beban AI yang sangat berlebihan. Ini sudah tentu tidak dapat dipisahkan daripada sifat statistik kabur pembelajaran mesin itu sendiri, dan ia juga meninggalkan jurang yang besar dengan matematik ketepatan tinggi yang diperlukan oleh kebanyakan algoritma HPC. Rajah di bawah menunjukkan perwakilan logaritma bagi jurang prestasi antara AI dan HPC Saya percaya anda sudah dapat melihat perbezaan aliran antara kedua-duanya:

Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?

Bentuk logaritma tidak kelihatan cukup menarik, mari kita lihat semula menggunakan nisbah sebenar:

Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?

System The Art of Design: Apabila aplikasi HPC dan AI menjadi arus perdana, ke manakah harus pergi seni bina GPU?

Bukan semua aplikasi HPC boleh dilaraskan untuk teras tensor, dan bukan semua aplikasi boleh memindahkan operasi matematik kepada teras tensor, jadi NVIDIA masih mengekalkan beberapa unit vektor dalam seni bina GPUnya. Di samping itu, banyak organisasi HPC sebenarnya tidak dapat menghasilkan penyelesai berulang seperti HPL-AI. Penyelesai HPL-AI yang digunakan dalam ujian penanda aras Linpack menggunakan HPL Linpack biasa dengan operasi FP16 ditambah FP32, dan sedikit operasi FP64 untuk menumpu kepada jawapan yang sama seperti pengiraan kekerasan FP64 tulen. Penyelesai berulang ini mampu memberikan kelajuan berkesan sebanyak 6.2x pada superkomputer Frontier Oak Ridge National Laboratory dan 4.5x pada superkomputer Fugaku RIKEN Laboratory. Jika lebih banyak aplikasi HPC boleh menerima penyelesai HPL-AI mereka sendiri, maka masalah "pemisahan" AI dan HPC akan diselesaikan.

Tetapi pada masa yang sama, untuk banyak beban kerja, prestasi FP64 kekal sebagai satu-satunya faktor penentu. Dan Nvidia, yang telah menghasilkan banyak wang dengan kuasa pengkomputeran AI yang berkuasa, pasti tidak akan mempunyai banyak masa untuk menjaga pasaran HPC dalam tempoh yang singkat.

Dua lagi bunga mekar, dan satu cabang setiap satu

Dapat dilihat bahawa seni bina GPU NVIDIA terutamanya mengejar prestasi AI yang lebih tinggi sambil mengekalkan prestasi HPC yang boleh diterima, dan pendekatan serampang dua mata membimbing pelanggan setiap Perkakasan dikemas kini setiap tiga tahun. Daripada perspektif prestasi FP64 tulen, daya pemprosesan FP64 bagi GPU Nvidia meningkat 22.9 kali dalam tempoh sepuluh tahun dari 2012 hingga 2022, daripada 1.3 teraflop K20X kepada 30 teraflop H100. Jika unit matriks teras tensor boleh digunakan dengan penyelesai lelaran, peningkatan boleh mencapai 45.8 kali ganda. Tetapi jika anda seorang pengguna latihan AI yang hanya memerlukan pengkomputeran selari skala besar berketepatan rendah, maka perubahan prestasi daripada FP32 kepada FP8 adalah dibesar-besarkan Kuasa pengkomputeran FP32 telah ditingkatkan daripada 3.95 teraflop terawal kepada 4 petaflop FP8 jarang. matriks, iaitu peningkatan 1012.7 kali. Dan jika kita membandingkannya dengan algoritma AI yang dikodkan FP64 pada GPU K20X pada masa itu (amalan arus perdana pada masa itu), peningkatan prestasi dalam sepuluh tahun yang lalu hanya menyedihkan 2 kali ganda.

Jelas sekali, perbezaan prestasi antara kedua-duanya tidak boleh digambarkan sebagai besar. Huang Renxun sendiri juga menyebut bahawa kem AI semasa itu sendiri terbahagi kepada dua lagi. Satu jenis ialah model asas gergasi yang disokong oleh model pengubah, juga dikenali sebagai model bahasa besar. Bilangan parameter model sedemikian berkembang pesat, dan permintaan untuk perkakasan juga meningkat. Berbanding dengan model rangkaian saraf sebelumnya, model transformer hari ini sepenuhnya mewakili era lain, seperti yang ditunjukkan dalam gambar berikut:

Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?

Harap maafkan gambar ini kerana agak kabur, tetapi Perkara ini adalah: Untuk set pertama model AI yang tidak termasuk transformer, keperluan pengkomputeran meningkat 8 kali dalam dua tahun tetapi untuk model AI yang termasuk transformer, keperluan pengkomputeran meningkat sebanyak 275 kali dalam dua tahun; . Jika operasi titik terapung digunakan untuk pemprosesan, mesti ada 100,000 GPU dalam sistem untuk memenuhi permintaan (ini bukan masalah besar). Walau bagaimanapun, beralih kepada ketepatan FP4 akan menggandakan jumlah pengiraan Pada masa hadapan, apabila GPU menggunakan transistor 1.8nm, kuasa pengkomputeran akan meningkat sebanyak kira-kira 2.5 kali, jadi masih terdapat jurang kira-kira 55 kali. Jika operasi FP2 boleh dilaksanakan (dengan mengandaikan ketepatan sedemikian mencukupi untuk menyelesaikan masalah), jumlah pengiraan boleh dikurangkan separuh, tetapi itu memerlukan penggunaan sekurang-kurangnya 250,000 GPU. Selain itu, model pengubah bahasa yang besar selalunya sukar untuk dikembangkan, terutamanya tidak dapat dilaksanakan secara ekonomi. Oleh itu, model jenis ini telah menjadi eksklusif kepada syarikat gergasi, sama seperti senjata nuklear hanya berada di tangan negara yang berkuasa.

Bagi sistem pengesyoran sebagai "enjin ekonomi digital", ia memerlukan bukan sahaja peningkatan eksponen dalam jumlah pengiraan, tetapi juga skala data yang jauh melebihi kapasiti memori model bahasa yang besar atau bahkan sebuah GPU. Huang Renxun menyebut dalam ucaptama GTC beliau sebelum ini:

Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?

“Berbanding dengan model bahasa yang besar, jumlah data yang dihadapi oleh setiap unit pengkomputeran semasa memproses sistem pengesyoran adalah susunan magnitud yang lebih besar. Jelas sekali sistem pengesyoran itu bukan sahaja memerlukan kelajuan memori yang lebih pantas, tetapi juga memerlukan 10 kali ganda kelajuan memori model bahasa yang besar Kapasiti memori model tersebut Walaupun model bahasa yang besar terus berkembang secara eksponen dari semasa ke semasa dan memerlukan kuasa pengkomputeran yang berterusan, sistem pengesyoran juga mengekalkan kadar pertumbuhan ini dan terus menggunakan lebih banyak sistem pengesyoran sistem boleh dikatakan dua jenis model AI yang paling penting hari ini, dan mempunyai keperluan pengkomputeran yang berbeza boleh menskalakan kepada berbilion pengguna dan berbilion item, setiap artikel, setiap video, setiap siaran sosial data dan perlu diproses oleh berbilang GPU Semasa memproses sistem pengesyoran, beberapa bahagian rangkaian diperlukan untuk melaksanakan pemprosesan selari data , dan memerlukan bahagian rangkaian yang lain untuk melaksanakan pemprosesan selari model, yang meletakkan keperluan yang lebih tinggi pada pelbagai bahagian daripada komputer. NVIDIA membangunkan CPU pelayan Arm "Grace" dan menggabungkannya dengan GPU Hopper. Kami juga bergurau bahawa jika jumlah memori utama yang diperlukan adalah sangat besar, Grace sebenarnya hanyalah pengawal memori Hopper. Tetapi dalam jangka masa panjang, mungkin hanya menyambungkan sekumpulan port CXL yang menjalankan protokol NVLink ke dalam GPU generasi seterusnya Hooper.

Jadi cip super Grace-Hopper yang dihasilkan oleh NVIDIA adalah setara dengan meletakkan gugusan CPU peringkat "kanak-kanak" ke dalam gugusan pecutan GPU peringkat "dewasa" yang besar. CPU Lengan ini boleh menyokong beban kerja C++ dan Fortran tradisional, tetapi pada harga: prestasi bahagian CPU dalam kluster hibrid hanyalah satu per sepuluh daripada prestasi GPU dalam kluster, tetapi kosnya adalah 3 hingga 3 kali ganda. daripada kluster CPU tulen konvensional 5 kali.

Sebenarnya, kami menghormati dan memahami sebarang pilihan kejuruteraan yang dibuat oleh NVIDIA. Grace adalah CPU yang sangat baik, dan Hopper juga merupakan GPU yang sangat baik Gabungan kedua-duanya pasti akan menghasilkan hasil yang baik. Tetapi apa yang berlaku sekarang ialah kami menghadapi tiga beban kerja yang berbeza pada platform yang sama, masing-masing menarik seni bina ke arah yang berbeza. Pengkomputeran berprestasi tinggi, model bahasa yang besar dan sistem pengesyoran, ketiga-tiga saudara ini mempunyai ciri-ciri mereka sendiri, dan adalah mustahil untuk mengoptimumkan seni bina pada masa yang sama dengan cara yang kos efektif. Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?

Dan jelas sekali bahawa AI mempunyai kelebihan yang besar, manakala HPC secara beransur-ansur kehilangan tempat. Keadaan ini telah berlarutan selama hampir sepuluh tahun. Jika HPC ingin melengkapkan transformasinya, kodnya mesti bergerak lebih dekat kepada sistem pengesyoran dan model bahasa yang besar, dan bukannya terus berkeras untuk menjalankan kod C++ dan Fortran sedia ada pada FP64. Dan jelas sekali bahawa pelanggan HPC mempunyai premium untuk setiap operasi berbanding pelanggan AI. Oleh itu, melainkan pakar HPC memikirkan kaedah pembangunan universal untuk penyelesai berulang yang boleh memodelkan dunia fizikal dengan ketepatan yang lebih rendah, adalah sukar untuk membalikkan keadaan pasif ini.

Selama beberapa dekad, kami percaya bahawa alam semula jadi itu sendiri tidak mematuhi undang-undang matematik. Kami terpaksa menggunakan matematik berketepatan tinggi untuk menerangkan kesan alam semula jadi, atau kami menggunakan bahasa yang tidak sesuai untuk menggambarkan realiti objektif. Sudah tentu, alam semula jadi mungkin lebih halus daripada yang kita bayangkan, dan penyelesai lelaran lebih dekat dengan realiti yang ingin kita contohi. Jika ini berlaku, ia mungkin satu rahmat untuk manusia, malah lebih bertuah daripada kebetulan HPC dan AI sepuluh tahun lalu.

Lagipun, tidak ada jalan di dunia apabila lebih ramai orang berjalan, ia menjadi jalan.

Atas ialah kandungan terperinci Seni Reka Bentuk Sistem: Apabila aplikasi HPC dan AI menjadi arus perdana, ke mana harus pergi seni bina GPU?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam