Saya punya rencana untuk menggunakan TensorFlow yang didistribusikan, dan saya melihat TensorFlow dapat menggunakan GPU untuk pelatihan dan pengujian. Dalam lingkungan cluster, setiap mesin dapat memiliki 0 atau 1 atau lebih GPU, dan saya ingin menjalankan grafik TensorFlow saya ke dalam GPU pada sebanyak mungkin mesin.
Saya menemukan bahwa ketika menjalankan tf.Session()
TensorFlow memberikan informasi tentang GPU dalam pesan log seperti di bawah ini:
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
Pertanyaan saya adalah bagaimana cara mendapatkan informasi tentang GPU yang tersedia saat ini dari TensorFlow? Saya dapat memperoleh informasi GPU yang dimuat dari log, tetapi saya ingin melakukannya dengan cara yang lebih canggih dan terprogram. Saya juga dapat membatasi GPU dengan sengaja menggunakan variabel lingkungan CUDA_VISIBLE_DEVICES, jadi saya tidak ingin tahu cara mendapatkan informasi GPU dari kernel OS.
Singkatnya, saya ingin fungsi seperti tf.get_available_gpus()
itu akan kembali ['/gpu:0', '/gpu:1']
jika ada dua GPU yang tersedia di mesin. Bagaimana saya bisa menerapkan ini?