चलाते समय कम अस्थिर GPU उपयोग जब मुझे अपने सिस्टम पर कुशलता से Nvidia GeForce GTX 1080 GPU का उपयोग करने के लिए tensorflow बनाने में समस्या हो रही है। मैंने अपना कोड नीचे दिखाए गए बहुत ही सरल संस्करण में घटा दिया; मैं केवल session.run() ऑपरेशन के माध्यम से लूपिंग कर रहा हूं जो GPU का उपयोग करना चाहिए, डेटा केवल एक बार लाया जाता है और लूप के अंदर पुन: उपयोग किया जाता है, इसलिए इस कोड को केवल GPU का उपयोग करना चाहिए।टेंसर प्रवाह
input_training_data=self.val_data[batch_size, :] input_training_label=self.val_label[batch_size, :] feed_dict = self.get_feed_dict(input_training_data, input_training_label) for i in range(1000): acc = sess.run(cost, feed_dict)
मैंने देखा है कि batch_size = 16 के लिए, मैं एक ज्यादातर तेजी से GPU उपयोग लगभग 8% पर, मिल के रूप में मैं 9-12% तक अधिकतम GPU उपयोग बढ़ जाती है लेकिन उपयोग रहता है 32 करने के लिए batch_size वृद्धि ज्यादातर 0% और समय-समय पर यह 15% -25% तक पहुंच जाता है और तुरंत 0% पर गिर जाता है। यह पैटर्न बड़े बैच_साइज के लिए जारी है, मूल रूप से 16 से अधिक किसी भी बैच आकार में अधिकतम उपयोग बढ़ता है लेकिन उपयोग समय पर 0 पर रहता है और समय-समय पर केवल स्पाइक्स रहता है। मुझे यहां क्या समझ नहीं आ रहा है?
आप प्रत्येक ऑपरेशन के सटीक समय के लिए प्रोफाइलिंग टूल लागू करने का प्रयास कर सकते हैं, उदाहरण देखें [यहां] (http://stackoverflow.com/documentation/tensorflow/3850/ उपाय-निष्पादन के-व्यक्ति-संचालन समय)। यह आपको समझने में मदद कर सकता है कि GPU उपयोग कम क्यों है, और आप अधिक जानकारी के साथ अपना प्रश्न अपडेट कर सकते हैं। –
आपके पास या तो कुछ बाधाएं हैं जहां कुछ धीमे सेशन को सीपीयू पर रखा जाता है और जीपीयू को इसके लिए इंतजार करना पड़ता है, या आपका गणना बहुत छोटा है, और आपका डेटा ट्रांसफर ट्रांसफर करना GPU के साथ नहीं रह सकता है। डेटा स्थानांतरण जैसे ऑप्टिमाइज़ करने के लिए कुछ युक्तियां हैं [यहां] (https://github.com/tensorflow/tensorflow/issues/5722#issuecomment-266297116) –