मेरे पास वितरित TensorFlow का उपयोग करने की योजना है, और मैंने देखा कि TensorFlow प्रशिक्षण और परीक्षण के लिए GPU का उपयोग कर सकता है। क्लस्टर वातावरण में, प्रत्येक मशीन में 0 या 1 या अधिक GPU हो सकते हैं, और मैं यथासंभव अधिक मशीनों पर अपने TensorFlow ग्राफ को GPU में चलाना चाहता हूं।
मैंने पाया कि जब tf.Session()
TensorFlow चलाने पर नीचे दिए गए लॉग संदेशों में GPU के बारे में जानकारी मिलती है:
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)
मेरा सवाल यह है कि मुझे TensorFlow से वर्तमान उपलब्ध GPU के बारे में जानकारी कैसे मिलेगी? मैं लॉग से भरी हुई GPU जानकारी प्राप्त कर सकता हूं, लेकिन मैं इसे अधिक परिष्कृत, प्रोग्रामेटिक तरीके से करना चाहता हूं। मैं जानबूझकर CUDA_VISIBLE_DEVICES पर्यावरण चर का उपयोग करके GPU को प्रतिबंधित कर सकता हूं, इसलिए मैं OS कर्नेल से GPU जानकारी प्राप्त करने का एक तरीका नहीं जानना चाहता।
संक्षेप में, मैं एक फ़ंक्शन चाहता हूं जैसे tf.get_available_gpus()
कि ['/gpu:0', '/gpu:1']
मशीन में दो जीपीयू उपलब्ध होने पर वापस आ जाएगा । मैं इसे कैसे लागू कर सकता हूं?