কেরাসকে মাল্টি-মেশিন মাল্টি-কোর সিপিইউ সিস্টেমে চালিত করুন


11

আমি কেরাস (থিয়ানো ব্যাকগ্রাউন্ড ব্যবহার করে) এলএসটিএম ব্যবহার করে সেক 2 সেক মডেলটিতে কাজ করছি এবং আমি প্রক্রিয়াগুলিকে সমান্তরাল করতে চাই, কারণ প্রশিক্ষণের জন্য খুব কম এমবিএস ডেটা বেশ কয়েক ঘন্টা প্রয়োজন।

এটি স্পষ্ট যে জিপিইউগুলি সিপিইউগুলির তুলনায় সমান্তরালে অনেক বেশি ভাল। এই মুহুর্তে, আমার সাথে কাজ করার জন্য কেবল সিপিইউ রয়েছে। আমি ১ CP টি সিপিইউ অ্যাক্সেস করতে পারি (প্রতি সকেট এক্স 2 সকেট প্রতি কোর 4 4 কোর প্রতি 2 টি থ্রেড)

থানো -তে মাল্টি-কোর সাপোর্টের ডক থেকে , আমি একক সকেটের চারটি কোর ব্যবহার করতে সক্ষম হয়েছি। সুতরাং, মূলত সিপিইউ 400% ব্যবহারের সাথে 4CPU ব্যবহার হয় এবং বাকি 12 সিপিইউ অব্যবহৃত থাকে। আমিও সেগুলি কীভাবে ব্যবহার করব। টেনারফ্লো যদি থেওনো ব্যাকগ্রাউন্ডের পরিবর্তে ব্যবহৃত হয় তবে এটি কাজ করে।

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


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>

আর-তে কোর সংখ্যা নির্ধারণের জন্য আমি এই কোডটির জন্য কৃতজ্ঞ হব (আমি আর-তে কেরাস ব্যবহার করছি এবং এটি কোরগুলির কেবলমাত্র একটি অংশ ব্যবহার করছে ...)। বিশেষত টেনসরফ্লো জন্য। ধন্যবাদ, মিলান
gutompf

2
আপনি আরথের মধ্যে পরিবেশের ভেরিয়েবল সেট করতে Sys.setenv () ব্যবহার করতে পারেন, পাইথনে os.en वातावरण [var] ব্যবহারের অনুরূপ।
থমাস ক্লেবার্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.