मल्टी-मशीन मल्टी-कोर सीपीयू सिस्टम पर कार्स को चलाएं


11

मैं Seq2Seq मॉडल पर केआरएस से LSTM (थीनो पृष्ठभूमि का उपयोग करके) का उपयोग कर काम कर रहा हूं और मैं प्रक्रियाओं को समानांतर करना चाहूंगा, क्योंकि प्रशिक्षण के लिए भी कुछ एमबी डेटा की कई घंटों की आवश्यकता होती है।

यह स्पष्ट है कि सीपीयू की तुलना में जीपीआर समानांतर में बहुत बेहतर है। फिलहाल, मेरे पास काम करने के लिए केवल सीपीयू है। मैं 16 सीपीयू (2 थ्रेड प्रति कोर X 4 कोर प्रति सॉकेट X 2 सॉकेट) एक्सेस कर सकता था

थीनो में मल्टी-कोर समर्थन के डॉक्टर से , मैंने एक ही सॉकेट के सभी चार कोर का उपयोग करने में कामयाब रहा। तो, मूल रूप से सीपीयू 4CPU के साथ 400% उपयोग में है और शेष 12 CPU अप्रयुक्त रहते हैं। मैं उनका उपयोग कैसे करूँ? अगर यह काम करता है, तो थीनो पृष्ठभूमि के बजाय टेंसरफ्लो का उपयोग किया जा सकता है।

यहाँ छवि विवरण दर्ज करें

जवाबों:


7

थीनो (और इसलिए, सीपीयू कोर की संख्या) में उपयोग किए जाने वाले थ्रेड्स की संख्या निर्धारित करने के लिए, आपको पर्यावरण में कुछ पैरामीटर सेट करने की आवश्यकता होगी:

import os
os.environ['MKL_NUM_THREADS'] = '16'
os.environ['GOTO_NUM_THREADS'] = '16'
os.environ['OMP_NUM_THREADS'] = '16'
os.eviron['openmp'] = 'True'

यह आपको सभी सीपीयू के सभी कोर का उपयोग करने की अनुमति देनी चाहिए।

यह, निश्चित रूप से टेन्सरफ्लो में भी किया जा सकता है:

import tensorflow as tf
from keras.backend import tensorflow_backend as K

with tf.Session(config=tf.ConfigProto(
                    intra_op_parallelism_threads=16)) as sess:
    K.set_session(sess)
    <Your Keras code>

मैं R में कोर की संख्या निर्धारित करने के लिए इस कोड के लिए आभारी रहूंगा (मैं आर में केरस का उपयोग कर रहा हूं और यह कोर के केवल भाग का उपयोग कर रहा हूं ...)। खासतौर पर टेंसरफ्लो के लिए। धन्यवाद, मिलन
gutompf

2
आप Py.on में os.environ [var] का उपयोग करने के समान R में पर्यावरण चर सेट करने के लिए Sys.setenv () का उपयोग कर सकते हैं।
थॉमस क्लेबर्ग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.