2015-10-14 8 views
15

Birkaç GPU'lu makinem var. Benim fikrim, bu örnekleri CUDA (veya OpenCL) hesaplamalarında kullanmak için bunları farklı docker örneklerine eklemektir.GPGPU'nun, sunucu çekirdeği ve GPU sürücüsü sürümünden farklı olarak docker görüntüsünün içinde nasıl çalıştırılacağı

Amacım docker resmini oldukça eski Ubuntu ve oldukça eski AMD video sürücüleri ile kurmaktır (13.04). Nedeni basit: sürücünün daha yeni sürümüne yükseltme, OpenCL programımı kırdı (buggy AMD linux sürücüleri nedeniyle).

Soru şu şekilde devam ediyor. Yeni çekirdek Linux 4.2 ve eski AMD (fglrx) sürücüleri ile yeni Arch Linux kurulumunda eski Ubuntu, eski çekirdek (3.14 örneğin) ve eski AMD (fglrx) sürücüsü ile docker görüntüsünü çalıştırmak mümkün mü?

P.S. Ben (Özgün cevap bazı commentors ile olduğu gibi) ...

P.P.S. herhangi CUDA cihazlarını görmez liman işçisi görüntünün içinde (Nvidia kartları ile) this answer ve ne yazık ki deviceQuery çalıştı Benim kurulumu:

  1. İşlemci: Intel Xeon E5-2670
  2. GPU'lar:

    • 1 x 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 x GeForce GTX Titan Siyah

+3

Belirli bir makinedeki tüm docker kapsayıcılarının (aynı çekirdeği kullanması gerekir) oldukça eminim (http://stackoverflow.com/questions/25444099/why-docker-has-ability-to-run-different-linux -distribution) ev sahibi olarak. Bir Arch Linux kurulumunda bir Ubuntu "image" çalıştırabilirsiniz, ancak aynı çekirdeği (ana bilgisayar çekirdeği) kullanmaları gerekir. Ben bir docker görüntüsü içinde deviceQuery hakkında sorunuzu ayrı bir sorun olduğunu düşünüyorum. Bunun bir programlama sorusu olduğunu hiç de açık değil. –

+0

Bazı uygulamalar güçlü bir şekilde çekirdek sürümüne (ve dolayısıyla yeteneklere) bağlıdır. Peki, çekirdeği paylaşmak nasıl mümkün olabilir (eğer çok farklılarsa)? Aynı "image" işletim sistemini host os olarak çalıştırmam gerektiği doğru mu? Sanırım en azından DevOps anlamında oldukça programlama sorusu. – petRUShka

cevap

2

Docker ile, İşletim Sistemi düzeyinde sanallaştırmaya güveniyorsunuz. Bu, tüm kaplarda aynı çekirdeği kullandığınız anlamına gelir. Her konteyner için farklı çekirdekler çalıştırmak isterseniz, muhtemelen sistem düzeyinde sanallaştırmayı, örneğin KVM, VirtualBox'ı kullanmanız gerekecektir. Kurulumunuz Intel VT-d'yi destekliyorsa, GPU'yu bir PCIe aygıtı olarak kapsayıcıya geçirebilirsiniz (bu durumda, daha iyi bir terminoloji, Sanal Makine).

+0

Yani, cevabınız: "bu imkansız", doğru mu? – petRUShka

+0

Farklı çekirdekler çalıştırmak istemeniz için gerekli olan; Evet – hbogert

İlgili konular