Page 1 : Sekilas mengenai ROCm dan MIOpen

ROCm merupakan penghubung antara program dengan hardware, dengan kata lain dapat dikatakan sebagai semacam driver. ROCm memungkinkan instalasi berbagai library pendukung komputasi GPU pada AMD, salah satunya adalah MIOpen.

MIOpen merupakan salah satu library buatan AMD sebagai saingan dari CUDNN milik kubu hijau. Dengan adanya MIOpen, maka Deep Learning dapat dilakukan menggunakan GPU AMD, karena berbagai macam fungsi yang disediakan oleh CUDNN banyak tersedia di MIOpen pula.

Gambaran HIP sebagai jembatan compiler

Terdapat juga HIP (Heterogeneous-Compute Interface for Portability), sebuah tools dari AMD untuk mengkonversi coding (developer menyebutnya HIP-ify atau meng-HIP-kan) dari bahasa CUDA menjadi C++ sehingga bisa dijalankan baik pada GPU AMD maupun GPU Nvidia.

Contoh HIP-ify koding

Namun hingga artikel ini ditulis, penulis masih belum bisa berhasil melakukan konversi beberapa framework dengan dukungan CUDA supaya dapat berjalan pada GPU AMD tanpa error, sehingga topik mengenai HIP untuk sementara akan dikesampingkan dahulu dan berfokus pada library MIOpen dan ROCm.

ROCm dan Keterbatasannya

Gambaran ROCm

Instalasi ROCm dan MIOpen serta Tensorflow terdapat pada website ROCm (https://rocm.github.io/dl.html), sehingga pada artikel ini tidak akan dijelaskan banyak mengenai instalasi, namun akan membahas sedikit mengenai ROCm, MIOpen dan Tensorflow-rocm, tensorflow yang di-compile sehingga dapat berjalan menggunakan GPU AMD.

Sebenarnya tidak hanya Tensorflow saja yang di-porting sehingga bisa berjalan pada GPU AMD, namun terdapat juga Caffe dan Caffe2 (disebut HIPcaffe, karena diporting menggunakan HIP) serta berbagai macam framework yang sudah mendukung penggunaan ROCm.

Berbagai macam framework yang didukung ROCm

Sementara pada artikel ini yang dibahas adalah Tensorflow karena bisa dibandingkan hasilnya dengan GPU-GPU lain yang sebelumnya sudah diujikan di Hexatekno dan juga karena paling mudah. (https://rocm.github.io/ROCmHipCaffeQuickstart.html)

Selain berbagai keunggulan dan kelebihan, ROCm juga memiliki kekurangan, salah satunya adalah keterbatasan pada kompatibilitas. Masalah kompatibilitas ini disebabkan baik karena GPU maupun CPU juga keterbatasan kompatibilitas sistem operasi.

Ya, menggunakan ROCm tidaklah hanya sekedar “Oh saya punya GPU AMD, saya mau pasang/install ROCm”. Menurut website ROCm (https://rocm.github.io/ROCmInstall.html), tidak semua GPU AMD bisa digunakan bersamaan dengan ROCm. Berikut daftar GPU yang bisa dipasangkan ROCm :

GPU dengan dukungan/support official :

GFX8 GPU

  • “Fiji” chips, GPU seperti R9 Fury X dan Radeon Instinct MI8
  • “Polaris 10” chips, GPU seperti RX 580 dan Radeon Instinct MI6
  • “Polaris 11” chips, GPU seperti RX 570 dan Radeon Pro WX 4100
  • “Polaris 12” chips, GPU seperti RX 550 dan RX 540

GFX9 GPU

  • “Vega 10” chips, GPU seperti RX Vega 64 dan Radeon Instinct MI25
  • “Vega 7nm” chips, GPU mendatang yang menjadi penerus dari RX Vega

GPU yang mungkin bisa menggunakan meskipun tidak dijamin stabilitas dan dukungannya :

GFX7 GPUs

  • “Hawaii” chips, GPU seperti R9 390X dan Firepro W9100

Selain GPU yang disebutkan di atas, nampaknya akan kesulitan apabila hendak menggunakan ROCm. iGP yang terdapat pada APU seperti Bristol Ridge, Raven Ridge, dan Carrizo juga tidak didukung secara official sehingga tidak dijamin penggunaannya walaupun pembaca tidak dilarang untuk mencobanya dan mencari tahu.

GPU selain kategori GFX9 membutuhkan CPU yang memiliki PCIe 3.0 yang memiliki support PCIe atomics. Berikut daftar CPU yang bisa dipasangkan dengan GPU pada kategori GFX8 dan GFX7 :

  • AMD Ryzen CPU
  • CPU pada AMD Ryzen APU (bukan iGP nya, GPU sesuai dengan yang diatas)
  • AMD Ryzen Threadripper CPU
  • AMD EPYC CPU
  • Intel Xeon E7 v3 (atau lebih baru)
  • Intel Xeon E5 v3 (atau lebih baru)
  • Intel Xeon E3 v3 (atau lebih baru)
  • Intel Core i7 gen 4, Core i5 gen 4, Core i3 gen 4 (atau lebih baru, Haswell keatas).
  • Beberapa sistem dengan Ivy Bridge-E

Berikut dukungan sistem operasi untuk ROCm 2.x :

  • Ubuntu 16.04.x dan 18.04.x ( minimal 16.04.3 dengan kernels 4.13 atau lebih baru)
  • CentOS 7.4, 7.5, dan 7.6 (menggunakan dukungan devtoolset-7 runtime)
  • RHEL 7.4, 7.5, dan 7.6 (menggunakan dukungan devtoolset-7 runtime)

Melihat keterbatasan hardware serta OS, dapat dikatakan bahwa dalam hal kompatibilitas, dapat diakui kubu hijau masih lebih baik daripada kubu merah. Nvidia memiliki list mengenai GPU apa saja yang memperbolehkan instalasi CUDA Toolkit dan CUDNN dan apabila dilihat, Nvidia memiliki list yang jauh lebih panjang dibandingkan dengan AMD(https://developer.nvidia.com/cuda-gpus). Kubu hijau juga mendukung sistem operasi lain yang sering digunakan seperti Windows dan Mac OSX dimana hal tersebut tidak nampak pada ROCm milik AMD.

Penulis sendiri baru mencoba kombinasi Polaris 10 (RX 580) dan AMD Ryzen CPU (R7 1700) serta Ubuntu 16.04.3 dan terbukti bisa berjalan. Untuk kombinasi lain sayang sekali penulis tidak sempat mencoba, namun berdasarkan klaim dari pihak developer sendiri mengatakan bahwa seharusnya kalau kombinasi hardware dan OS memenuhi syarat diatas, maka ROCm dapat di-install dengan mudah.

Contents

Comments