Posting ini merupakan review awal Jetson Nano. Sebuah single board computer dari Nvidia dengan built in GPU. Sejak bulan Maret lalu saya memesan (preorder) Jetson Nano ketika diumumkan. Sayangnya ada masalah dengan fulfillment-nya sehingga baru dikirim akhir April dan barangnya sampai beberapa hari yang lalu. Sebagai permintaan maaf karena masalah tersebut SeeedStudio memberikan Micro SD Card 16 GB dan adaptor 5V 2.5 A gratis.
Jetson Nano adalah development board dari Nvidia yang relatif murah (99 USD). Memang ini lebih mahal dari board lain seperti Raspberry Pi, tapi board ini sudah memiliki GPU built in (128-Core Maxwell GPU). Sebagai informasi sebelumnya Nvidia sudah merilis beberapa board seri Jetson lain dengan GPU tapi harganya sampai ratusan USD.
Hal penting yang perlu diperhatikan: micro SD 16 GB tidak akan cukup. Untuk sistem minimum saja memang cukup, tapi ketika sudah mendownload dan mengcompile beberapa library, spacenya tidak cukup lagi. Saran saya minimal pakailah SD Card 32 GB.
Proses setup Jetson Nano ini butuh kesabaran:
- Download SD Card Image berukuran 5 GB (puluhan menit hingga beberapa jam, tergantung koneksi internet Anda)
- Unzip filenya butuh beberapa menit
- Write image ke SD Card butuh beberapa menit
- Proses boot pertama butuh beberapa menit juga.
Proses boot awal harus dilakukan dengan koneksi HDMI ke monitor dan juga butuh keyboard (plus mouse akan lebih bagus lagi). Proses untuk setup awal (menyetujui license dsb) dilakukan melalui GUI. Setelah itu kita bisa mengakses board ini via SSH. Setelah proses awal selesai, kita perlu mengupdate sistem operasinya (berbasis ubuntu).
Berikutnya jika ingin mencoba beberapa demo dari Nvidia, kita bisa mendownload jetson-inference. Proses cloningnya repositorynya cepat, tapi ketika kita berusaha membuild programnya, akan ada proses download beberapa ratus megabyte lagi.
Jika kita ingin menginstall library lain seperti OpenCV terbaru (yang built versi 3.3) maka kita perlu compile sendiri. Ada yang memberikan petunjuk di internet, tapi banyak yang hang/stuck ketika membuild. Ada yang menyarankan untuk menggunakan DC connector dengan power 4A agar tidak stuck, tapi dari pengalaman saya: build dengan single core (tidak memakai -j4) sudah cukup agar tidak hang, walau akhirnya proses buildnya jadi lama sekali.
Perlu dicatat juga bahwa di kernel standar bawaan, zram tidak terinstall. Biasanya 4GB ini sudah cukup, tapi dalam kasus tertentu swap file masih dibutuhkan (defaultnya tidak ada swap file/partition). Jika program kompleks Anda crash karena kehabisan memori, coba compile ulang kernel (source sudah dirilis di website Nvidia) untuk mengaktifkan fitur ZRAM, atau buat swap file/partition di sdcard.
Testing
Selain mencoba demo dari Nvidia, saya mencoba beberapa aplikasi lain. Percobaan awal memakai FaceKit untuk face detection performancenya cukup baik (~400 FPS ketika tidak ada wajah dan turun ke ~30 fps jika ada beberapa wajah).
Saya juga iseng mencoba prototype C1 Form Reader karya teman saya Rizki Wicaksono. Skrip Python yang dibuat memakai tensorflow dengan model yang sudah ditrain di desktop. Saya tidak pelu mengkonversi modelnya, langsung bisa dipakai di Jetson Nano memakai GPU yang ada di device tersebut. Hanya saja skripnya perlu sedikit disesuaikan agar bisa jalan dengan OpenCV yang terinstall di device.
Contoh hasilnya seperti gambar di bawah ini. Harap dicatat bahwa ini masih prototype, jadi tidak selalu bisa membaca form dengan benar.
Jetson Nano vs Board lain
Saat ini sudah ada beberapa solusi AI lain untuk embedded device. Kelebihan Jetson Nano dibandingkan dengan beberapa solusi lain adalah:
- CPU + GPU terintegrasi (tidak seperti Intel Movidius atau Neural Accelerator lain berbasis USB yang perlu dicolok ke Raspberry Pi atau board lain)
- Built in Ethernet gigabit (bisa dihubungkan ke network camera dengan mudah)
- RAM 4 GB, cukup besar untuk banyak keperluan (Raspberry Pi hanya 1 GB RAM-nya, Google Edge TPU Dev Board versi saat ini juga cuma 1 GB RAMnya)
- Semua framework secara teori bisa berjalan, tidak perlu versi khusus (tidak seperti Edge TPU dari Google yang hanya bisa TF Lite dan perlu model khusus dengan kompilasi cloud)
Penutup
Saya baru beberapa hari memakai board ini dan belum menemui masalah berarti. Suhu maksimum yang saya perhatikan masih kurang dari 55 derajat celcius ketika sedang bekerja sangat berat.
Mengingat benda ini baru dirilis 2 bulan, supportnya sudah sangat baik. Sejauh ini tampaknya benda ini sangat menjanjikan dan dapat diaplikasikan di banyak kasus yang butuh solusi portabel atau butuh pemakaian daya rendah.
Masih banyak hal yang belum saya coba di device ini, misalnya ada mode 5W sehingga lebih hemat energi (tapi performancenya turun). Jetson Nano mendukung kamera Raspberry Pi (versi 2) dan juga kamera USB (keduanya belum saya coba).