2015-10-14 8 views
15

से अलग के साथ डॉकर छवि के अंदर GPGPU को कैसे चलाएं मेरे पास कई GPUs के साथ मशीन है। मेरा विचार है कि उन्हें CUDA (या OpenCL) गणनाओं में उन उदाहरणों का उपयोग करने के लिए उन्हें विभिन्न डॉकर उदाहरणों से जोड़ना है।मेजबान कर्नेल और GPU ड्राइवर संस्करण

मेरा लक्ष्य डॉकर छवि को पुराने पुराने उबंटू और पुराने पुराने एएमडी वीडियो ड्राइवरों (13.04) के साथ सेट करना है। कारण सरल है: ड्राइवर के नए संस्करण में अपग्रेड करने से मेरा ओपनसीएल प्रोग्राम टूट जाएगा (बग्गी एएमडी लिनक्स ड्राइवरों के कारण)।

तो सवाल चल रहा है। क्या ताजा कर्नेल 4.2 और नए एएमडी (fglrx) भंडार में ड्राइवरों के साथ ताजा आर्क लिनक्स सेटअप पर पुराने उबंटू, पुराने कर्नेल (उदाहरण के लिए 3.14) और पुराने एएमडी (fglrx) ड्राइवर के साथ डॉकर छवि चलाने के लिए संभव है?

पीएस मैं (Nvidia कार्ड के साथ) this answer और दुर्भाग्य से deviceQuery की कोशिश की डोकर छवि के अंदर किसी भी CUDA उपकरणों को देखने नहीं है (जैसा कि यह मूल जवाब में से कुछ commentors के साथ हुआ) ...

P.P.S. मेरे सेटअप:

  1. सीपीयू: इंटेल जिऑन E5-2670
  2. GPUs:

    • 1 एक्स Radeon HD 7970

      $ lspci -nn | grep Rad 
          83:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM/R9 280X] [1002:6798] 
          83:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT HDMI Audio [Radeon HD 7970 Series] [1002:aaa0] 
      
    • 2 एक्स GeForce GTX टाइटन काले

+3

मुझे यकीन है कि एक विशेष मशीन पर सभी डॉकर कंटेनर [उसी कर्नेल का उपयोग करना चाहिए] (http://stackoverflow.com/questions/25444099/why-docker-has-ability-to-run-different-linux -डिस्ट्रिब्यूशन) मेजबान के रूप में। आप आर्क लिनक्स सेटअप पर उबंटू "छवि" चला सकते हैं, लेकिन उन्हें उसी कर्नेल (होस्ट कर्नेल) का उपयोग करना होगा। मुझे लगता है कि एक डॉकर छवि के अंदर deviceQuery के बारे में आपका प्रश्न एक अलग मुद्दा है। यह मुझे स्पष्ट नहीं है कि यह एक प्रोग्रामिंग प्रश्न है। –

+0

कुछ ऐप्स दृढ़ता से कर्नेल संस्करण (और इसलिए क्षमताओं) पर निर्भर करते हैं। तो कर्नेल को साझा करना कैसे संभव है (यदि वे बहुत अलग हैं)? क्या यह सच है कि मुझे मेजबान ओएस के समान "छवि" ओएस चलाया जाना चाहिए? मुझे लगता है कि यह कम से कम DevOps भावना में प्रोग्रामिंग प्रश्न है। – petRUShka

उत्तर

2

डॉकर के साथ आप ऑपरेटिंग सिस्टम स्तर पर वर्चुअलाइजेशन पर भरोसा करते हैं। इसका मतलब है कि आप सभी कंटेनरों में एक ही कर्नेल का उपयोग करते हैं। यदि आप प्रत्येक कंटेनर के लिए अलग-अलग कर्नेल चलाने की इच्छा रखते हैं, तो आपको शायद सिस्टम-स्तरीय वर्चुअलाइजेशन का उपयोग करना होगा, उदाहरण के लिए, केवीएम, वर्चुअलबॉक्स। यदि आपका सेटअप इंटेल के वीटी-डी का समर्थन करता है, तो आप जीपीयू को पीसीआईई डिवाइस के रूप में कंटेनर में पास कर सकते हैं (इस मामले में बेहतर शब्दावली, वर्चुअल मशीन)।

+0

तो, आपका जवाब है: "यह असंभव है", क्या यह सच है? – petRUShka

+0

अलग-अलग कर्नेल चलाने की इच्छा के आधार पर; हाँ – hbogert

संबंधित मुद्दे