खोज…


परिचय

यह विषय TensorFlow में GPU की स्थापना और प्रबंधन के बारे में है।

यह मानता है कि TensorFlow का GPU संस्करण इंस्टॉल किया गया है (GPU स्थापना पर अधिक जानकारी के लिए https://www.tensorflow.org/install/ देखें)।

आप आधिकारिक दस्तावेज़ पर भी नज़र डालना चाह सकते हैं: https://www.tensorflow.org/tutorials/using_gpu

टिप्पणियों

मुख्य स्त्रोत:

केवल CPU पर TensorFlow चलाएँ - `CUDA_VISIBLE_DEVICES` पर्यावरण चर का उपयोग करके।

यह सुनिश्चित करने के लिए कि एक GPU संस्करण TensorFlow प्रक्रिया केवल CPU पर चलती है:

import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"    
import tensorflow as tf

CUDA_VISIBLE_DEVICES बारे में अधिक जानकारी के लिए, इस उत्तर पर या CUDA प्रलेखन पर एक नज़र डालें।

TensorFlow ग्राफ़ को केवल CPU पर - `tf.config` का उपयोग करके चलाएँ

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))

ध्यान रखें कि यह विधि TensorFlow ग्राफ़ को GPU का उपयोग करने से रोकती है लेकिन TensorFlow अभी भी GPU डिवाइस को लॉक करता है, जैसा कि इस पद्धति में खोले गए एक मुद्दे में वर्णित है। CUDA_VISIBLE_DEVICES का उपयोग यह सुनिश्चित करने का सबसे अच्छा तरीका है कि TensorFlow को GPU कार्ड से दूर रखा जाए (यह उत्तर देखें)।

GPU उपकरणों के एक विशेष सेट का उपयोग करें

GPU उपकरणों के एक विशेष सेट का उपयोग करने के लिए, CUDA_VISIBLE_DEVICES पर्यावरण चर का उपयोग किया जा सकता है:

import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" # see issue #152
os.environ["CUDA_VISIBLE_DEVICES"]="0" # Will use only the first GPU device


os.environ["CUDA_VISIBLE_DEVICES"]="0,3" # Will use only the first and the fourth GPU devices

(इस जवाब से उद्धृत; CUDA पर्यावरण चर पर अधिक जानकारी यहाँ ।)

स्थानीय प्रक्रिया में TensorFlow द्वारा उपलब्ध उपकरणों की सूची बनाएं।

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

GPU मेमोरी आवंटन को नियंत्रित करें

डिफ़ॉल्ट रूप से, TensorFlow GPU कार्ड की पूरी मेमोरी को पूर्व-आवंटित करता है (जो CUDA_OUT_OF_MEMORY चेतावनी का कारण CUDA_OUT_OF_MEMORY सकता है)।

इसे बदलने के लिए, यह संभव है

  • per_process_gpu_memory_fraction कॉन्फ़िगरेशन विकल्प का उपयोग करते हुए, पूर्व-आवंटित मेमोरी का प्रतिशत बदलें,

    0 और 1 के बीच का एक मान जो इंगित करता है कि किस अंश का है
    प्रत्येक प्रक्रिया के लिए पूर्व-आवंटित करने के लिए उपलब्ध GPU मेमोरी। 1 का मतलब है
    GPU मेमोरी के सभी को प्री-आवंटित करने के लिए, 0.5 का अर्थ है प्रक्रिया
    उपलब्ध GPU मेमोरी का ~ 50% आवंटित करता है।

  • allow_growth config विकल्प का उपयोग करके पूर्व-आवंटन को अक्षम करें। जैसे-जैसे उपयोग बढ़ता जाएगा मेमोरी आवंटन बढ़ता जाएगा।

    यदि सही है, तो आवंटितकर्ता पूरे निर्दिष्ट को पूर्व-आवंटित नहीं करता है
    GPU मेमोरी क्षेत्र, आवश्यकतानुसार छोटे और बढ़ते हुए शुरू होता है।

उदाहरण के लिए:

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
sess = tf.Session(config=config) as sess:

या

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess= tf.Session(config=config):

यहाँ पर विन्यास विकल्प के बारे में अधिक जानकारी।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow