Mengirim pesan

Berita

March 11, 2021

Memori Khusus Domain

Komputasi khusus domain mungkin populer, tetapi menghindari masalah sebenarnya.

Kekhawatiran yang lebih besar adalah memori yang menghambat kinerja prosesor, mengonsumsi lebih banyak daya, dan menggunakan sebagian besar area chip.Kenangan perlu terbebas dari struktur kaku yang disukai oleh perangkat lunak yang ada.Saat algoritme dan memori dirancang bersama, peningkatan kinerja menjadi signifikan dan pemrosesan dapat dioptimalkan.

Pemrosesan khusus domain dipopulerkan oleh kuliah Turing 2018, "A New Golden Age for Computer Architecture," oleh John Hennessy dan David Patterson.Tetapi prosesor telah dibatasi oleh memori selama beberapa dekade.Mengubah pemrosesan tanpa memikirkan ulang memori dan hierarki memori mengabaikan Hukum Amdahl, yang menyediakan hubungan matematis antara percepatan yang mungkin untuk sistem ketika bagian tertentu dari sistem itu diperbaiki.Ini pada dasarnya mengatakan Anda mendapatkan keuntungan yang semakin berkurang jika Anda hanya berkonsentrasi pada satu bagian dari sistem daripada melihat sistem secara keseluruhan.

Jadi mengapa tidak berkonsentrasi pada kemacetan?"Memori khusus domain hanyalah istilah baru, tetapi arsitek telah melakukan pengoptimalan semacam ini sejak lama," kata Prasad Saggurti, direktur pemasaran produk di Synopsys."Dan jika belum, mereka melewatkan satu trik karena kebanyakan orang telah melakukannya."

Yang lain setuju.“Ingat memori video - DRAM dengan register geser bawaan?”tanya Michael Frank, rekan dan arsitek sistem di Arteris IP.“Mungkin GDDR [1-5], memori tag cache khusus, atau memori asosiatif di masa TTL?Banyak di antaranya tidak benar-benar bertahan karena fungsinya terlalu spesifik.Mereka menargetkan perangkat unik.Anda membutuhkan domain yang cukup besar, dan Anda berjuang melawan rendahnya biaya DRAM saat ini, yang memiliki keuntungan dari produksi berskala besar dan volume tinggi. ”

Terkadang lebih dari itu.“Anda mungkin memasang sesuatu ke dalam ROM,” kata Saggurti dari Synopsys.“Apa yang kami lihat adalah lebih banyak orang menyesuaikan ingatan hari ini.Misalnya, dengan transformasi Fourier, atau transformasi Z, orang akan menulis kode sedemikian rupa sehingga Anda dapat menyimpan koefisien dalam urutan tertentu.Saat Anda melakukan perkalian matriks, Anda dapat menyimpan koefisien dalam urutan tertentu agar pembacaannya lebih cepat.Anda tidak boleh menyimpan data dalam satu memori, sebaliknya, memasukkannya ke dalam tiga atau empat memori berbeda sehingga Anda bisa membaca berbagai hal melalui beberapa jalur data.Hal-hal seperti ini telah terjadi baru-baru ini. ”

Perubahan itu sulit.“Tantangannya adalah bahwa di masa lalu, orang memiliki model abstrak yang bagus untuk berpikir tentang sistem komputasi,” kata Steven Woo, rekan dan penemu terkemuka di Rambus.“Mereka tidak pernah benar-benar memikirkan tentang ingatan.Itu datang secara gratis dan model pemrograman membuatnya sedemikian rupa sehingga ketika Anda melakukan referensi ke memori, itu terjadi begitu saja.Anda tidak pernah harus secara eksplisit tentang apa yang Anda lakukan. "

Kemajuan sedang dibuat dalam kinerja memori umum."Pengontrol memori saat ini dan standar antarmuka yang canggih telah secara dramatis meningkatkan apa yang dapat Anda ekstrak dari teknologi silikon canggih," kata Arteris 'Frank.“Ini telah mengaktifkan antrian dalam dan penjadwal lanjutan.Teknologi memori canggih, seperti memori bandwidth tinggi (HBM), dan bandwidth dukungan die bertumpuk yang kami pikir tidak mungkin dicapai hanya satu dekade yang lalu.Namun itu tidak murah.Teknologi sub-10 nm juga memungkinkan cache besar, jadi mungkin kita bisa memanggil memori khusus domain orang malang ini. ”

Tapi ini semua adalah contoh perubahan kecil yang bertahap.“Merancang subsistem memori di mana komputasi terutama mengikuti data, bukan sebaliknya, memerlukan pemikiran ulang yang signifikan dari banyak ajaran yang biasa dilakukan oleh arsitek,” kata Matt Horsnell, insinyur peneliti utama senior untuk kelompok Penelitian dan Pengembangan Arm.“Ada peluang untuk meningkatkan abstraksi pemrograman, dari daftar operasi tipikal saat ini pada data, ke bentuk yang diperluas yang merangkum konkurensi dan beberapa gagasan tentang jarak relatif antara unit komputasi dan item data.Abstraksi semacam itu dapat memungkinkan transformasi yang diperlukan untuk menargetkan memori spesifik domain secara lebih optimal saat algoritme berkembang pesat. "

Pusat data di kursi pengemudi
Pusat data adalah pendorong banyak tren teknologi saat ini.“Salah satu aplikasi komputasi yang tumbuh paling cepat ada di pusat data di mana aplikasi perangkat lunak membutuhkan lebih banyak kapasitas memori, bandwidth dengan latensi lebih rendah,” kata Ravi Thummarukudy, CEO Mobiveil.“Dengan munculnya standar industri terbaru, Compute Express Link (CXL), arsitek sistem dapat menyusun memori yang dibutuhkan antara memori utama di DDRn DIMMS, dan DDRn berbasis CXL atau memori persisten yang lebih baru.Latensi dan karakteristik ekonomi dari tingkatan ingatan ini berbeda, dan itu memberi arsitek pilihan untuk mencampur dan mencocokkan ingatan untuk menyesuaikan dengan kebutuhan mereka. ”

Itu adalah kelanjutan dari arsitektur memori warisan.“Banyak OEM dan rumah sistem merancang SoC mereka sendiri untuk menyesuaikan silikon dengan beban kerja spesifik mereka,” kata Tim Kogel, insinyur aplikasi utama di Synopsys.“Peluang terbesar untuk kinerja dan peningkatan daya adalah spesialisasi hierarki memori bersama dengan arsitektur interkoneksi pendukung.

Pertimbangkan kekuatan.“Dalam arsitektur saat ini, 90% energi untuk beban kerja AI dikonsumsi oleh pergerakan data, mentransfer bobot dan aktivasi antara memori eksternal, cache on-chip, dan terakhir ke elemen komputasi itu sendiri (lihat gambar 1),” kata Arun Iyengar , CEO Untether AI."Hanya dengan berfokus pada kebutuhan akselerasi inferensi dan memaksimalkan efisiensi daya, kami dapat memberikan kinerja komputasi yang belum pernah terjadi sebelumnya."

Optimalisasi memori adalah masalah tingkat sistem yang menyentuh semua aspek desain - perangkat keras, perangkat lunak, dan alat.“Strategi untuk mengoptimalkan memori beragam dan bergantung pada domain aplikasi,” tambah Kogel.“Strategi terbaik adalah menghindari akses memori off-chip sama sekali.Untuk arsitektur khusus domain, ini biasanya dapat dicapai dengan meningkatkan memori on-chip yang tersedia, baik dalam bentuk cache atau memori yang dikelola aplikasi.Terutama di bidang akselerator pembelajaran mendalam, memori dalam chip yang tersedia adalah parameter desain yang menentukan yang juga memengaruhi cara aplikasi jaringan saraf dikompilasi ke perangkat keras target - misalnya, pemasangan operator konvolusi. ”

Banyak desain ingin melangkah lebih jauh dari ini."Konsep memori khusus domain sedang dieksplorasi dalam domain komputasi spasial," kata Arm's Horsnell.“Sebagai contoh, DSP cenderung menyediakan kumpulan memori terdistribusi, sering kali dikelola langsung dalam perangkat lunak, yang dapat lebih sesuai untuk kebutuhan bandwidth dan pola akses aplikasi khusus daripada sistem memori bersama tradisional.Untuk menjembatani kesenjangan efisiensi dengan ASIC fungsi tetap, prosesor ini sering menawarkan beberapa bentuk spesialisasi memori dengan memberikan dukungan langsung untuk pola akses tertentu (seperti N-buffering, FIFO, buffer baris, kompresi, dll.).Aspek penting dari orkestrasi dalam sistem ini, dan tantangan dalam mendesainnya, adalah menentukan perincian yang tepat untuk akses data, yang dapat meminimalkan overhead komunikasi dan sinkronisasi sambil memaksimalkan konkurensi pada saat yang bersamaan.Tantangan lain tetap ada, termasuk pemrograman, koherensi, sinkronisasi, dan terjemahan, yang menambah kompleksitas perangkat lunak.Namun, kemungkinan rute ke depannya adalah dengan mengandalkan bahasa khusus domain (DSL), yang dengan membuat aliran data aplikasi lebih eksplisit, dapat memungkinkan kompiler untuk mengidentifikasi pola akses memori khusus dan memetakannya ke perangkat keras dengan lebih efektif. ”

Membayar juga untuk melihat lebih dekat pada kenangan itu sendiri.“Hiper-kustomisasi adalah tren yang kami lihat dalam hal ingatan,” kata Anand Thiruvengadam, staf senior manajer pemasaran produk di Synopsys.“Ini berarti memori yang dibuat khusus untuk aplikasi akhir yang berbeda.Bahkan dalam aplikasi akhir tertentu seperti AI, ada kebutuhan yang berbeda untuk memori, seperti untuk pelatihan atau pengambilan kesimpulan, pengambilan kesimpulan di server, atau pengambilan kesimpulan di ujung yang jauh.Masing-masing aplikasi ini memiliki persyaratan yang berbeda, dan itu berarti Anda harus menyesuaikan memori.Penyesuaian ini berarti Anda tidak lagi dapat melihat memori sebagai komoditas atau produk siap pakai.Anda harus membangunnya untuk aplikasi tertentu.Di situlah saus rahasia muncul. "

Dalam banyak kasus, memori dan interkoneksi sangat erat.“Apa pun yang terjadi saat menggabungkan memori dan teknologi interkoneksi untuk memenuhi persyaratan akses data dari beban kerja aplikasi - misalnya, beberapa tingkat pengelompokan yang menggabungkan pemrosesan dengan memori lokal untuk memanfaatkan lokalitas dalam aplikasi aliran data, atau multi- SRAM on-chip yang di-bank / multi-port untuk menyangga peta fitur akselerator CNN, dan hierarki cache yang dalam dengan protokol koherensi yang canggih untuk mengurangi beban kerja pusat data yang bekerja biasa-biasa saja. ”

Perubahan kecil dapat memberikan hasil yang besar."Lihat saja keajaiban kecil yang telah dilakukan Apple dengan M1," kata Frank.“Mereka menemukan cara merancang subsistem memori yang melayani banyak master heterogen dengan baik, menggunakan strategi cache yang cerdas dan hierarki cache multi-level yang besar.”

Seperti yang sering terjadi, perangkat lunak adalah jangkar kelembaman.“Yang biasanya terjadi adalah ada algoritme, dan kami melihat cara untuk mengoptimalkannya, mengoptimalkan memori, sehingga algoritme tersebut dapat diimplementasikan dengan lebih baik,” kata Saggurti.“Di sisi lain, kami memiliki jenis memori yang berbeda ini.Dapatkah Anda mengubah algoritme Anda untuk memanfaatkan jenis memori baru ini?Di masa lalu, sebagian besar menggunakan TCAM adalah konstruksi domain jaringan untuk mencari alamat IP.Baru-baru ini, mesin pelatihan mulai menggunakan TCAM, dan itu adalah pendekatan yang sangat berbeda.Ini membutuhkan perangkat lunak, atau firmware untuk berubah berdasarkan jenis memori yang tersedia.Namun sebagian besar waktu, perangkat lunak tetap diperbaiki dan memori berubah untuk membuat implementasi yang dihasilkan menjadi lebih baik. ”

Kesadaran throughput
Banyak waktu dan uang yang diinvestasikan dalam kecerdasan buatan akhir-akhir ini.Chip khusus dibatasi oleh throughput, dan itu menyoroti memori dan interkoneksi.

“Secara historis, arsitektur memori dan interkoneksi telah dirancang berdasarkan spreadsheet statis atau model analitik sederhana seperti model kinerja garis atap,” kata Kogel.“Untuk aplikasi mutakhir, ini menjadi sangat kompleks.Misalnya, memprediksi kebutuhan memori dari setiap lapisan dalam CNN memerlukan pertimbangan pengoptimalan compiler seperti pengubinan dan fusi lapisan.Metode statis ini menjadi sangat kompleks dan tidak akurat untuk prediksi dan pengoptimalan beban kerja level SoC dengan sub-sistem IP yang beragam dan skenario aplikasi dinamis.Di sisi lain, menjalankan aplikasi di atas emulasi perangkat keras atau sistem prototipe merupakan proses pengembangan yang terlambat untuk membuat perubahan drastis atau pengoptimalan utama dari desain memori. ”

Itu menempatkan fokus pada beban kerja yang dimaksudkan.“Kunci subsistem memori yang efisien adalah pengetahuan tentang beban kerja Anda,” ucap Frank.“Memahami bagaimana perilakunya, bahkan mungkin membentuknya sedemikian rupa sehingga membuatnya lebih sesuai dengan batasan hierarki memori Anda, di sinilah arsitektur ditantang.Akselerator khusus domain memerlukan sistem memori yang disetel - dan seni membangun mesin transformasi yang 'impedansi' cocok dengan produksi massal, pengaturan halaman, akses bursty DRAM dan pola akses mesin memerlukan wawasan tentang perilaku sistem, alat pemodelan, dan banyak beban kerja bermain dengan.Terkadang dibutuhkan perubahan cara beban kerja memproses data untuk dapat meningkatkan sistem secara keseluruhan.Contoh yang bagus adalah transisi dari rendering 'langsung' ke pemrosesan berbasis ubin di GPU ".

Semuanya bermuara pada pemodelan dan simulasi."Kami mengusulkan penggunaan alat prototipe virtual untuk memodelkan beban kerja aplikasi, bersama dengan model tingkat transaksi yang akurat dari interkoneksi dan arsitektur memori," kata Kogel.“Pendekatan 'arsitektur pertama' yang kuantitatif ini memungkinkan analisis pertukaran awal, menghasilkan spesifikasi implementasi yang andal.Dengan mengorbankan upaya pemodelan dan simulasi tambahan, manfaatnya adalah berkurangnya risiko kehilangan kinerja dan target daya, atau pengurangan biaya desain perangkat keras yang berlebihan hanya untuk berada di sisi yang aman.Di era pengembalian yang semakin berkurang dari Hukum Moore, peluangnya adalah untuk menghasilkan produk yang lebih dioptimalkan dan berbeda. "

Itu memungkinkan dampak perubahan algoritmik juga terlihat.“Ada kebutuhan untuk kembali dan mendesain ulang algoritme,” kata Thiruvengadam.“Mereka dapat mendesain ulang untuk arsitektur memori warisan tradisional, atau mereka dapat didesain ulang untuk arsitektur baru, gaya memori baru, rasa memori baru.Ada dorongan konstan untuk penskalaan kinerja, penskalaan biaya, dan juga kemampuan untuk menyeimbangkan pengorbanan untuk aplikasi yang berbeda.Ini pada dasarnya adalah alasan mengapa Anda melihat perkembangan MRAM dan FeRAM yang berkelanjutan.Mereka mencoba menemukan sweet spot untuk setidaknya beberapa variabel, jika tidak semua variabel.Kebutuhan untuk mendesain ulang algoritme bersama dengan arsitektur memori menjadi penting. ”

Keseimbangan diperlukan."Anda perlu memikirkan konsep intensitas komputasi dan jenis operasi yang terlibat," kata Frank.“Algoritme tertentu memiliki persyaratan bandwidth yang tak terpuaskan, sementara algoritme lain hanya memindahkan sejumlah kecil data tetapi melakukan ribuan operasi di atasnya.Operasi dalam memori dapat bekerja dengan baik untuk pemrosesan tipe SIMD, di mana bandwidth instruksi relatif kecil terhadap bandwidth data dan banyak elemen diproses menggunakan resep yang sama.Namun begitu ada dependensi berurutan dalam aliran data atau aliran data tidak teratur, manfaat dari memori khusus domain menyusut. "

Memori khusus
Meskipun perubahan arsitektural dapat menghasilkan hasil yang besar, mengoptimalkan memori juga dapat memberikan keuntungan.“Sebagian besar daya dan area akselerator masa kini digunakan dalam memori,” kata Horsnell.“Jadi, peningkatan latensi / kepadatan / energi yang dicapai oleh teknologi memori baru dapat memberikan dampak yang dramatis.”

Kenangan khusus menjadi bisnis besar.“Anda mulai melihat hal-hal seperti komputasi dalam memori, komputasi hampir memori, memori spesifik yang mungkin merupakan memori tulis-semua-nol - memori yang dioptimalkan untuk jenis operasi tertentu,” kata Saggurti."Kami melihat banyak pelanggan bertanya kepada kami tentang MRAM, bahkan lebih banyak penyesuaian SRAM, TCAM, dan penyesuaian tertentu pada TCAM."

Namun, kesulitan tetap ada.“Saya telah banyak berdiskusi mengenai desain memori khusus, di mana pemrosesan pada memori mati akan menjadi arsitektur yang 'ideal',” kata Frank.“Ini akan menyediakan bandwidth tinggi, latensi rendah, dll. Semuanya benar, kecuali fakta, bahwa proses memori membatasi logika apa yang dapat diintegrasikan - tiga atau empat lapisan logam, daya rendah, tetapi transistor lambat.Itu berarti mesin komputasi tidak efisien.Mengorbankan kecepatan jam dan kompleksitas sirkuit tiba-tiba membuat integrasi mesin komputasi bukan lagi pilihan yang baik. ”

Tetapi beberapa dari perubahan ini akan menjadi perlu.“Orang ingin membawa flash pada chip dan menjadikannya flash tertanam,” kata Saggurti.“Kemudian pertanyaannya menjadi, 'Apakah itu mungkin?'Pada 28nm Anda mungkin dapat melakukan flash yang disematkan, tetapi orang-orang mulai memikirkan hal-hal seperti MRAM pada 22nm. ”

Namun, ada cara lain untuk melihat masalahnya."Proses variabilitas di wafer dan di die, dan bahkan dari waktu ke waktu, membatasi desain memori," tambah Saggurti.“Saat Anda mendesain memori, SRAM sederhana, Anda cenderung mendesain casing saat bit cell berjalan ke satu arah - lambat - dan periferal bergerak ke arah lain - dengan cepat.Jika Anda mendesain untuk itu, dan jika mayoritas silikon Anda tipikal, Anda meninggalkan banyak performa dan tenaga di atas meja.Jika Anda memahami di mana Anda berada dalam rentang proses dan memungkinkan perancang chip untuk bertindak berdasarkan informasi tersebut, maka Anda dapat menyesuaikan waktu yang sesuai.Desain Anda bisa lebih optimal, dan Anda tidak perlu mendesain untuk kasus terburuk. ”

Kesimpulan
Meskipun memori selalu menjadi pengorbanan desain, memori tidak pernah menerima tingkat perhatian yang sama seperti pemrosesan, meskipun itu adalah pembatas kinerja dalam hal bandwidth, daya, dan area.AI menyebabkan orang memikirkan kembali arsitektur memori karena kebutuhan, tetapi dengan perhatian ekstra itu, tim desain juga dapat memikirkan kembali beberapa perangkat lunak dan algoritme yang dioptimalkan untuk sistem memori lama.Di dunia di mana peningkatan kinerja tidak datang secara gratis setiap 18 bulan, tindakan yang lebih ekstrem menjadi satu-satunya cara untuk menghentikan produk agar tidak menjadi komoditas. (Dari Brian Bailey)

Rincian kontak