Memasang GPU ke cluster

Dataproc menyediakan kemampuan untuk unit pemrosesan grafis (GPU) agar dapat dilampirkan ke node Compute Engine master dan pekerja di cluster Dataproc. Anda dapat menggunakan GPU ini untuk mempercepat workload tertentu di instance Anda, seperti machine learning dan pemrosesan data.

Untuk mengetahui informasi selengkapnya tentang hal yang dapat Anda lakukan dengan GPU dan jenis hardware GPU yang tersedia, baca GPU di Compute Engine.

Sebelum memulai

  • GPU memerlukan driver dan software khusus. Item ini tidak diinstal sebelumnya di cluster Dataproc.
  • Baca tentang Harga GPU di Compute Engine untuk memahami biaya penggunaan GPU di instance Anda.
  • Baca batasan untuk instance dengan GPU untuk mempelajari perbedaan fungsi instance ini dengan instance non-GPU.
  • Periksa halaman kuota untuk project Anda guna memastikan bahwa Anda memiliki kuota GPU yang memadai (NVIDIA_T4_GPUS, NVIDIA_P100_GPUS, atau NVIDIA_V100_GPUS) yang tersedia di project Anda. Jika GPU tidak tercantum di halaman kuota atau Anda memerlukan kuota GPU tambahan, minta penambahan kuota.

Jenis GPU

Node Dataproc mendukung jenis GPU berikut. Anda harus menentukan jenis GPU saat memasang GPU ke cluster Dataproc.

  • nvidia-tesla-l4 - NVIDIA® Tesla® L4
  • nvidia-tesla-a100 - NVIDIA® Tesla® A100
  • nvidia-tesla-p100 - NVIDIA® Tesla® P100
  • nvidia-tesla-v100 - NVIDIA® Tesla® V100
  • nvidia-tesla-p4 - NVIDIA® Tesla® P4
  • nvidia-tesla-t4 - NVIDIA® Tesla® T4
  • nvidia-tesla-p100-vws - Workstation Virtual NVIDIA® Tesla® P100
  • nvidia-tesla-p4-vws - Workstation Virtual NVIDIA® Tesla® P4
  • nvidia-tesla-t4-vws - Workstation Virtual NVIDIA® Tesla® T4

Memasang GPU ke cluster

gcloud

Lampirkan GPU ke node master dan pekerja primer dan sekunder di cluster Dataproc saat membuat cluster menggunakan flag ‑‑master-accelerator, ‑‑worker-accelerator, dan ‑‑secondary-worker-accelerator. Flag ini menggunakan dua nilai berikut:

  1. jenis GPU yang akan dilampirkan ke node, dan
  2. jumlah GPU yang akan dipasang ke node.

Jenis GPU diperlukan, dan jumlah GPU bersifat opsional (defaultnya adalah 1 GPU).

Contoh:

gcloud dataproc clusters create cluster-name \
    --region=region \
    --master-accelerator type=nvidia-tesla-t4 \
    --worker-accelerator type=nvidia-tesla-t4,count=4 \
    --secondary-worker-accelerator type=nvidia-tesla-t4,count=4 \
    ... other flags

Untuk menggunakan GPU di cluster, Anda harus menginstal driver GPU.

REST API

Pasang GPU ke node master, utama, dan sekunder di cluster Dataproc dengan mengisi kolom InstanceGroupConfig.AcceleratorConfig acceleratorTypeUri dan acceleratorCount sebagai bagian dari permintaan API cluster.create.

Konsol

Klik CPU PLATFORM AND GPU→GPUs→ADD GPU di bagian node master dan pekerja pada panel Konfigurasi node di halaman Create a cluster di Konsol Google Cloud untuk menentukan jumlah GPU dan jenis GPU untuk node.

Menginstal driver GPU

Driver GPU diperlukan untuk menggunakan GPU apa pun yang terpasang ke node Dataproc. Anda dapat menginstal driver GPU dengan mengikuti petunjuk untuk tindakan inisialisasi ini.

Memverifikasi penginstalan driver GPU

Setelah selesai menginstal driver GPU di node Dataproc, Anda dapat memverifikasi bahwa driver berfungsi dengan benar. Gunakan SSH ke node master cluster Dataproc Anda dan jalankan perintah berikut:

nvidia-smi

Jika driver berfungsi dengan baik, output akan menampilkan versi driver dan statistik GPU (lihat Memverifikasi penginstalan driver GPU).

Konfigurasi Spark

Saat mengirim tugas ke Spark, Anda dapat menggunakan properti properti lingkungan runtime konfigurasi Spark spark.executorEnv dengan variabel lingkungan LD_PRELOAD untuk memuat ulang library yang diperlukan.

Contoh:

gcloud dataproc jobs submit spark --cluster=CLUSTER_NAME \
  --region=REGION \
  --class=org.apache.spark.examples.SparkPi \
  --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
  --properties=spark.executorEnv.LD_PRELOAD=libnvblas.so,spark.task.resource.gpu.amount=1,spark.executor.resource.gpu.amount=1,spark.executor.resource.gpu.discoveryScript=/usr/lib/spark/scripts/gpu/getGpusResources.sh

Contoh tugas GPU

Anda dapat menguji GPU di Dataproc dengan menjalankan salah satu tugas berikut, yang akan mendapatkan manfaat saat dijalankan dengan GPU:

  1. Jalankan salah satu contoh Spark ML.
  2. Jalankan contoh berikut dengan spark-shell untuk menjalankan komputasi matriks:
import org.apache.spark.mllib.linalg._
import org.apache.spark.mllib.linalg.distributed._
import java.util.Random

def makeRandomSquareBlockMatrix(rowsPerBlock: Int, nBlocks: Int): BlockMatrix = {
  val range = sc.parallelize(1 to nBlocks)
  val indices = range.cartesian(range)
  return new BlockMatrix(
      indices.map(
          ij => (ij, Matrices.rand(rowsPerBlock, rowsPerBlock, new Random()))),
      rowsPerBlock, rowsPerBlock, 0, 0)
}

val N = 1024 * 4
val n = 2
val mat1 = makeRandomSquareBlockMatrix(N, n)
val mat2 = makeRandomSquareBlockMatrix(N, n)
val mat3 = mat1.multiply(mat2)
mat3.blocks.persist.count
println("Processing complete!")

Langkah Berikutnya