Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Menggunakan beberapa chip inferensi membutuhkan perencanaan yang matang

Dua tahun terakhir sangat sibuk dalam bisnis chip inferensi. Untuk sementara, sepertinya setiap minggu perusahaan lain memperkenalkan solusi baru dan lebih baik. Meskipun semua inovasi ini hebat, masalahnya adalah sebagian besar perusahaan tidak tahu apa yang harus dibuat dari berbagai solusi karena mereka tidak dapat membedakan mana yang berkinerja lebih baik daripada yang lain. Tanpa set tolok ukur yang mapan di pasar baru ini, mereka harus meningkatkan kecepatan dengan sangat cepat pada chip inferensi, atau mereka harus memercayai angka kinerja yang disediakan oleh berbagai vendor.

Sebagian besar vendor menyediakan beberapa jenis angka kinerja dan biasanya patokan apa pun yang membuat mereka terlihat bagus. Beberapa vendor berbicara tentang TOPS dan TOPS/Watt tanpa menentukan model, ukuran batch atau kondisi proses/tegangan/suhu. Yang lain menggunakan tolok ukur ResNet-50, yang merupakan model yang jauh lebih sederhana daripada yang dibutuhkan kebanyakan orang, sehingga nilainya dalam mengevaluasi opsi inferensi dipertanyakan.

Kami telah menempuh perjalanan jauh dari hari-hari awal itu. Perusahaan perlahan-lahan menemukan bahwa yang benar-benar penting saat mengukur kinerja chip inferensi adalah 1) pemanfaatan MAC yang tinggi, 2) daya rendah, dan 3) Anda harus menjaga semuanya tetap kecil.

Kami tahu cara mengukur — apa selanjutnya?

Sekarang kita memiliki ide yang cukup bagus tentang bagaimana mengukur kinerja satu chip inferensi di atas yang lain, perusahaan sekarang menanyakan apa keuntungan (atau kerugian) menggunakan beberapa chip inferensi bersama-sama dalam desain yang sama. Jawaban sederhananya adalah bahwa menggunakan beberapa chip inferensi, ketika chip inferensi dirancang dengan cara yang benar, dapat memberikan peningkatan kinerja yang linier. Analogi jalan raya tidak jauh ketika kita melihat menggunakan beberapa chip inferensi. Apakah perusahaan menginginkan kinerja jalan raya satu lajur atau jalan raya empat lajur?

Jelas, setiap perusahaan menginginkan jalan raya empat arah, jadi pertanyaannya sekarang adalah “bagaimana kami memberikan jalan raya empat jalur ini tanpa menciptakan lalu lintas dan kemacetan?” Jawabannya bergantung pada pemilihan chip inferensi yang tepat. Untuk menjelaskannya, mari kita lihat model jaringan saraf.

Jaringan saraf dipecah menjadi beberapa lapisan. Lapisan seperti ResNet-50 memiliki 50 lapisan, YOLOv3 memiliki lebih dari 100 dan setiap lapisan mengambil aktivasi dari lapisan sebelumnya. Jadi, pada layer N outputnya adalah aktivasi yang masuk ke layer N+1. Itu menunggu lapisan itu masuk, perhitungan selesai, dan outputnya adalah aktivasi yang masuk ke lapisan n+2. Itu berlanjut untuk panjang lapisan sampai Anda akhirnya mendapatkan hasil. Ingatlah bahwa input awal dari contoh ini adalah gambar atau kumpulan data apa pun yang sedang diproses oleh model.

Saat beberapa chip membuat perbedaan

Kenyataannya adalah jika Anda memiliki chip yang memiliki tingkat kinerja tertentu, akan selalu ada pelanggan yang menginginkan kinerja dua kali lipat atau kinerja empat kali lipat. Jika Anda menganalisis model jaringan saraf, dimungkinkan untuk mencapainya dalam beberapa kasus. Anda hanya perlu melihat bagaimana Anda membagi model antara dua chip atau empat chip.

Ini telah menjadi masalah dengan pemrosesan paralel selama bertahun-tahun karena sulit untuk mengetahui cara mempartisi pemrosesan apa pun yang Anda lakukan dan memastikan semuanya dijumlahkan, bukannya dikurangi dalam hal kinerja.

Tidak seperti pemrosesan paralel dan komputasi tujuan umum, hal yang menyenangkan dengan chip inferensi adalah bahwa pelanggan biasanya tahu sebelumnya jika mereka ingin menggunakan dua chip sehingga kompilator tidak perlu mencari tahu dengan cepat — ini dilakukan pada waktu kompilasi. Dengan model jaringan saraf, semuanya benar-benar dapat diprediksi sehingga kami dapat menganalisis dan mengetahui dengan tepat cara membagi model dan apakah model tersebut akan berjalan dengan baik pada dua chip.

Untuk memastikan model dapat berjalan pada dua atau lebih chip, penting untuk melihat ukuran aktivasi dan jumlah MAC lapis demi lapis. Apa yang biasanya terjadi adalah bahwa aktivasi terbesar ada di lapisan paling awal. Itu berarti ukuran aktivasi perlahan-lahan turun seiring bertambahnya jumlah lapisan.

Penting juga untuk melihat jumlah MAC dan berapa banyak MAC yang dilakukan dalam setiap siklus. Pada kebanyakan model, jumlah MAC yang dilakukan dalam setiap siklus umumnya berkorelasi dengan ukuran aktivasi. Ini penting karena jika Anda memiliki dua chip dan ingin berjalan pada frekuensi maksimum, Anda harus memberikan beban kerja yang sama untuk setiap chip. Jika satu chip melakukan sebagian besar model dan chip lainnya hanya melakukan sedikit model, Anda akan dibatasi oleh throughput chip pertama.

Bagaimana Anda membagi model antara dua chip juga penting. Anda perlu melihat jumlah MAC karena itu menentukan distribusi beban kerja. Anda juga harus melihat apa yang dilewatkan di antara chip. Pada titik tertentu, Anda perlu mengiris model di tempat di mana aktivasi yang Anda lewati sekecil mungkin sehingga jumlah bandwidth komunikasi yang diperlukan dan latensi transmisi minimal. Jika Anda memotong model pada titik di mana aktivasi sangat besar, transmisi aktivasi dapat menjadi hambatan yang membatasi kinerja solusi dua chip.

Bagan di bawah ini menunjukkan untuk gambar YOLOv3, Winograd, 2 Megapiksel ukuran Output Aktivasi dan operasi Mac kumulatif lapis demi lapis (lapisan konvolusi diplot). Untuk menyeimbangkan beban kerja antara dua chip, model akan dipotong kira-kira pada 50% Operasi MAC kumulatif — pada titik ini aktivasi untuk berpindah dari satu chip ke chip lainnya adalah 1MB atau 2MB. Untuk membagi antara 4 chip, pemotongannya sekitar 25%, 50% dan 75%; perhatikan ukuran aktivasi terbesar di awal, jadi titik potong 25% memiliki 4 atau 8 MB aktivasi yang harus dilewati.

Klik di sini untuk gambar yang lebih besar
Ukuran keluaran aktivasi (bilah biru) dan operasi MAC kumulatif lapis demi lapis (garis merah) untuk gambar YOLOv3/Winograd/2Mpiksel , menunjukkan bagaimana beban kerja dibagi antara beberapa chip (Gambar:Flex Logix)

Alat kinerja

Untungnya, alat kinerja sekarang tersedia untuk memastikan throughput yang tinggi. Bahkan, alat yang sama yang memodelkan kinerja satu chip kemudian dapat digeneralisasi untuk memodelkan kinerja dua chip. Sementara kinerja dari setiap lapisan yang diberikan persis sama, masalahnya adalah bagaimana transmisi data mempengaruhi kinerja. Alat pemodelan perlu mempertimbangkan hal ini karena jika bandwidth yang dibutuhkan tidak cukup, bandwidth tersebut akan membatasi throughput.

Jika Anda melakukan empat chip, Anda akan membutuhkan bandwidth yang lebih besar karena aktivasi di kuartal pertama model cenderung lebih besar daripada aktivasi di bagian model selanjutnya. Dengan demikian, jumlah sumber daya komunikasi yang Anda investasikan akan memungkinkan Anda untuk pergi ke chip dalam jumlah yang lebih besar yang disalurkan bersama-sama, tetapi itu akan menjadi biaya overhead yang harus ditanggung semua chip meskipun chip tersebut berdiri sendiri.

Kesimpulan

Menggunakan beberapa chip inferensi dapat memberikan peningkatan kinerja yang signifikan, tetapi hanya jika jaringan saraf dirancang dengan benar seperti yang dijelaskan di atas. Jika kita melihat kembali analogi jalan raya, ada banyak peluang untuk membiarkan lalu lintas menumpuk dengan menggunakan chip yang salah dan model jaringan saraf yang salah. Jika Anda memulai dengan chip yang tepat, Anda berada di jalur yang benar. Ingatlah bahwa throughput, bukan tolok ukur TOPS atau Res-Net50, adalah yang paling penting. Kemudian, setelah Anda memilih chip inferensi yang tepat, Anda dapat merancang model jaringan saraf yang sama kuatnya yang memberikan kinerja maksimum untuk kebutuhan aplikasi Anda.

— Geoff Tate adalah CEO Flex Logix


Tertanam

  1. Menggunakan SaaS dan Cloud Memerlukan Penyelesaian Data yang Hati-hati
  2. C# menggunakan
  3. RISC-V International dan CHIPS Alliance berkolaborasi di OmniXtend
  4. Modul kecil mengintegrasikan beberapa biosensor
  5. Paket desain PCB dibawa ke cloud
  6. Real-time Perencanaan Gerak Untuk Mobil Otonom dalam Berbagai Situasi, Di Bawah Simulasi Lingkungan Perkotaan
  7. Inisiatif Lantai Toko Digital Manfaat dari Perencanaan yang Cermat
  8. AI Memprediksi Seberapa Cepat Chip Komputer Mengeksekusi Kode
  9. Menyalakan Beberapa Perangkat Wearable Secara Nirkabel Menggunakan Satu Sumber
  10. Cara memanggil Blok Fungsi dari Klien OPC UA menggunakan Model Informasi