TF: TensorFlow GPU
7. Menggunakan GPU Virtual untuk Pengujian:
Jika Anda mengembangkan pada sistem dengan satu GPU fisik, TensorFlow memungkinkan Anda untuk mensimulasikan beberapa GPU menggunakan perangkat virtual. Ini berguna untuk menguji pengaturan multi-GPU tanpa memerlukan perangkat keras tambahan.
Langkah-langkah untuk Membuat GPU Virtual:
7.1. Memeriksa Ketersediaan GPU Fisik:
Pastikan TensorFlow mendeteksi GPU fisik pada sistem Anda.
import tensorflow as tf
gpus = tf.config.list_physical_devices('GPU') if gpus: print(f"Jumlah GPU fisik yang terdeteksi: {len(gpus)}") else: print("Tidak ada GPU fisik yang terdeteksi.")
7.2. Membuat Perangkat GPU Virtual:
Jika GPU fisik terdeteksi, Anda dapat membaginya menjadi beberapa perangkat logis (virtual). Misalnya, untuk membuat dua GPU virtual dengan masing-masing batas memori 1GB:
if gpus: try: # Mengatur dua GPU virtual dengan masing-masing 1GB memori tf.config.set_logical_device_configuration( gpus[0], [tf.config.LogicalDeviceConfiguration(memory_limit=1024), tf.config.LogicalDeviceConfiguration(memory_limit=1024)]) logical_gpus = tf.config.list_logical_devices('GPU') print(f"{len(gpus)} GPU fisik, {len(logical_gpus)} GPU logis (virtual) dibuat.") except RuntimeError as e: # Perangkat virtual harus disetel sebelum GPU diinisialisasi print(e)
Catatan: Pengaturan perangkat logis harus dilakukan sebelum runtime TensorFlow diinisialisasi. Jika runtime sudah diinisialisasi, perubahan ini tidak akan berlaku.
7.3. Memverifikasi Perangkat GPU Virtual:
Setelah konfigurasi, Anda dapat memverifikasi perangkat GPU virtual yang tersedia:
logical_gpus = tf.config.list_logical_devices('GPU') for gpu in logical_gpus: print(f"GPU logis: {gpu.name}")
Penggunaan GPU Virtual dalam Pelatihan Model:
Setelah membuat GPU virtual, Anda dapat menggunakan strategi distribusi seperti `tf.distribute.MirroredStrategy` untuk melatih model Anda secara paralel pada GPU virtual tersebut.
import tensorflow as tf # Mengaktifkan penempatan perangkat untuk melihat di mana operasi dijalankan tf.debugging.set_log_device_placement(True) # Mendapatkan daftar GPU logis
logical_gpus = tf.config.list_logical_devices('GPU')
# Membuat strategi distribusi dengan GPU logis strategy = tf.distribute.MirroredStrategy(devices=[gpu.name for gpu in logical_gpus]) with strategy.scope(): # Membangun model model = tf.keras.Sequential([ tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Melatih model # Gantilah 'train_dataset' dengan dataset pelatihan Anda model.fit(train_dataset, epochs=10)
Dalam contoh di atas, `tf.distribute.MirroredStrategy` akan mendistribusikan pelatihan model secara otomatis ke semua GPU logis yang tersedia, memungkinkan simulasi pengaturan multi-GPU pada satu GPU fisik.
Catatan Penting:
- Penggunaan GPU virtual terutama untuk tujuan pengujian dan pengembangan. Untuk pelatihan model skala besar atau produksi, disarankan menggunakan beberapa GPU fisik untuk kinerja optimal.
- Pastikan bahwa total batas memori yang ditetapkan untuk GPU virtual tidak melebihi kapasitas memori GPU fisik Anda.
Dengan mengikuti langkah-langkah di atas, Anda dapat mensimulasikan lingkungan multi-GPU pada sistem dengan satu GPU fisik, memfasilitasi pengujian dan pengembangan model TensorFlow dalam skenario multi-GPU.