क्या मुझे इंजेक्शन के लिए GPU या CPU का उपयोग करना चाहिए?


13

मैं एक डीप लर्निंग न्यूरल नेटवर्क चला रहा हूं जिसे GPU द्वारा प्रशिक्षित किया गया है। अब मैं इसे कई मेजबानों के लिए तैनात करना चाहता हूं। सवाल यह है कि मुझे यह तय करने की शर्तें क्या हैं कि क्या मुझे जीपीआर या सीपीयू का इस्तेमाल करना चाहिए?


नीचे टिप्पणी से अधिक विवरण जोड़ना।

मैं इस के लिए नया हूँ इसलिए मार्गदर्शन की सराहना की है।

  • मेमोरी : जीपीयू K80 है

  • फ्रेमवर्क : Cuda और cuDNN

  • कार्यभार के अनुसार डेटा का आकार : 20G

  • उपभोग करने के लिए नोड्स की गणना : एक प्रति काम, हालांकि एक स्केल विकल्प पर विचार करना चाहते हैं

  • लागत : अगर कारण समझ में आता है तो मैं एक GPU विकल्प चुन सकता हूं

  • परिनियोजन : क्लाउड में नहीं, बल्कि होस्ट किए गए नंगे धातु सर्वर पर चल रहा है।

अभी मैं CPU पर केवल इसलिए चल रहा हूं क्योंकि एप्लिकेशन ठीक चलता है। लेकिन उस कारण से, मैं अनिश्चित हूं कि कोई व्यक्ति GPU पर भी विचार क्यों करेगा।


दो संभावित दृष्टिकोणों के बीच तुलना करने की सलाह देने के लिए, दूसरों के लिए आपके कार्य के कुछ विवरणों को जानना उपयोगी होगा। उदाहरण के लिए, आपके डेटा का आकार क्या है, आपके GPU की मेमोरी क्षमता क्या है, आपके द्वारा उपयोग किए जाने वाले कंप्यूटिंग नोड्स की संख्या और शायद यह भी कि आपके दिमाग में क्या नक्शा-कम करने की रूपरेखा है।
डायनामिक स्टारडस्ट

@ डायनामिकस्टारस्टस्ट ... और लागत। सस्ते EC2 CPU नोड्स या महंगे ECW GPU नोड्स? यह भी एक सवाल अस्पष्ट है।
स्पेसमैन

जवाबों:


8

@Dan @SmallChess, मैं पूरी तरह से सहमत नहीं हूँ। यह सच है कि प्रशिक्षण के लिए GPU के द्वारा बहुत से लंबन का फायदा उठाया जा सकता है, जिसके परिणामस्वरूप बहुत तेज प्रशिक्षण प्राप्त होता है। Inference के लिए, यह पैरललाइज़ेशन कम हो सकता है, हालांकि CNN को अभी भी इसका लाभ मिलेगा, जिसके परिणामस्वरूप तेजी से इंट्रेंस प्राप्त होगा। अब आपको बस अपने आप से पूछना है: तेजी से निष्कर्ष महत्वपूर्ण है? क्या मुझे यह अतिरिक्त निर्भरता (एक अच्छा जीपीयू, स्थापित सही फ़ाइलें आदि) चाहिए?

यदि गति कोई समस्या नहीं है, तो CPU के लिए जाएं। हालांकि ध्यान दें कि GPU अपने अनुभव में तेजी से इसे बढ़ा सकता है।


दिलचस्प बिंदु आप उठाते हैं, तो सीएनएन इंजेक्शन के दौरान समानांतर प्रसंस्करण से क्यों लाभान्वित होगा?
दान

1
प्रशिक्षण के साथ समानांतर गणना स्पष्ट हो सकती है: आपके पास कई इनपुट हैं, जिनमें से प्रत्येक को एक-दूसरे से पूरी तरह से स्वतंत्र, फीड-फॉरवर्ड किया जाना है। एक दृढ़ संकल्प के लिए, कर्नेल को कई इनपुट 'पैच' पर गुणा किया जाता है। इन्हें समानांतर भी किया जा सकता है। यही सीएनएन को इतना शक्तिशाली बनाता है: न केवल उन्हें प्रशिक्षित करने के लिए कम मापदंडों की आवश्यकता होती है, बल्कि यह अधिक समानांतर भी होता है, इसलिए GPU का इतना शक्तिशाली बना देता है। मुझे नहीं पता कि आप किस पर काम करते हैं, लेकिन मैं छवियों के विभाजन (पिक्सेल वाइज वर्गीकरण) पर काम करता हूं और जब जीपीयू का इस्तेमाल होता है तो मुझे एक बड़ी गति में सुधार (> x10) मिलता है।
लॉरेंस मेयस

@LaurensMeeus मैं इस स्पेक्ट्रम के लिए भी नया हूं और क्लाउड वीएम का लागत विश्लेषण कर रहा हूं। क्या मैं अभी भी प्रशिक्षण के लिए जीपीयू का उपयोग करूंगा यदि केवल पाठ विश्लेषण का प्रशिक्षण दे और चित्र नहीं?
Squ1rr3lz

2
@ Squ1rr3lz मुझे 95% चाहिए जो आपको चाहिए। समानांतर कंप्यूटिंग के हर रूप को GPU का लाभ मिलना चाहिए। मैं इस क्षेत्र का विशेषज्ञ नहीं हूं, लेकिन यह देखते हुए कि पाठ्य विश्लेषण भी कंफर्टेबल लेयर्स के साथ है (जैसे कि यह 2D के बजाय 1D है), यह पहले से ही एक कारण है जो इसे तेज होना चाहिए। यदि संभव हो, तो बस अपने लिए प्रयास करें कि GPU को सक्षम / अक्षम करने का क्या प्रभाव पड़ता है।
लॉरेंस Meeus

6

सीपीयू के बजाय एक GPU पर रनिंग इन्वेंशन आपको उसी स्पीडअप के करीब देगा, जैसा कि यह प्रशिक्षण पर करता है, मेमोरी ओवरहेड से थोड़ा कम।

हालाँकि, जैसा कि आपने कहा, एप्लिकेशन CPU पर ठीक चलता है। यदि आप उस बिंदु पर पहुंच जाते हैं जहां आवेदन में गति गति एक अड़चन है, तो GPU पर अपग्रेड करना उस अड़चन को कम कर देगा।


पूर्णतया सहमत। अभी भी नहीं मिलता है कि सीपीयू पोस्ट सबसे ऊपर क्यों है।
लॉरेंस मेउस

1
GeForce GTX टाइटन X 16-कोर इंटेल Xeon E5 सीपीयू की तुलना में 5.3 और 6.7 गुना अधिक प्रदर्शन के बीच वितरित करता है - जो कि प्रशिक्षण के दौरान हासिल किए गए स्पीडअप से बहुत कम है - एनवीडिया के अपने ब्लॉग से: devblogs.nvidia.com/ ...
seanhalle

4

आप प्रशिक्षण के लिए केवल GPU का उपयोग करेंगे क्योंकि गहन सीखने के लिए एक इष्टतम समाधान पर पहुंचने के लिए बड़े पैमाने पर गणना की आवश्यकता होती है। हालाँकि, आपको परिनियोजन के लिए GPU मशीनों की आवश्यकता नहीं है ।

आइए Apple के नए iPhone X को एक उदाहरण के रूप में लें। नए iPhone X में फेशियल डिटेक्शन के लिए एक उन्नत मशीन लर्निंग एल्गोरिदम है। Apple कर्मचारियों के पास प्रशिक्षण और सत्यापन के लिए मशीनों का एक समूह होना चाहिए। लेकिन आपके iPhone X को सिर्फ मॉडल चलाने के लिए GPU की आवश्यकता नहीं है।


उस स्पष्टीकरण के लिए धन्यवाद। जो मुझे समझ में नहीं आता है वह यह है कि एनवीडिया जीपीयू के उपयोग को बढ़ावा दे रहा है क्योंकि अगर सीपीयू इसे ठीक कर सकता है, तो इसका सबसे अच्छा समाधान है। इसके अलावा, Google भी सीपीयू के साथ यह सब करने के लिए टीपीयू को धक्का क्यों दे रहे हैं? क्या इसका समानांतर कंप्यूटिंग से कोई लेना-देना है?
दान

3
@SmallChess नहीं था IPhone X में कुछ उन्नत टीपीयू जैसा प्रोसेसर है जो विशुद्ध रूप से अनुमान के लिए है? extremetech.com/mobile/…
लॉरेंस मीस

3
@SmallChess लेकिन ऐसा क्यों नहीं हो सकता है? शायद मैं पूरी तरह से समझ में नहीं आता। क्या आपको अभी भी गति में कुछ सुधार नहीं मिलेगा?
लॉरेंस मेउस

2
ईमानदारी से, NVidia के पास एक शानदार विपणन विभाग है, और यह अनुमान लगाने के लिए NVidia GPU का उपयोग करने को बढ़ावा देने के लिए उनके सर्वोत्तम हित में है। यह उनके हित में है, आपका नहीं।
सिंहल

1
: NVIDIA के ब्लॉग से: "258 बनाम 242 छवियों / दूसरी" NVIDIA Tegra X1 के लिए बनाम i7 6700K CPU जब अनुमान प्रदर्शन devblogs.nvidia.com/...
seanhalle
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.