ডকার পাত্রে জিপিইউ ব্যবহার করছেন?


164

আমি ডকারের ধারকের ভিতরে থেকে জিপিইউ ব্যবহার করার কোনও উপায় অনুসন্ধান করছি।

ধারকটি স্বেচ্ছাচারিত কোড কার্যকর করবে তাই আমি সুবিধাযুক্ত মোডটি ব্যবহার করতে চাই না।

কোন টিপস?

পূর্ববর্তী গবেষণা থেকে আমি বুঝতে run -vপেরেছিলাম যে এবং / অথবা এলএক্সসি cgroupহ'ল উপায় তবে আমি কীভাবে এটিকে ঠিক টানতে পারি তা নিশ্চিত নই


আপনার প্রয়োজনের অনুরূপ স্ট্যাকওভারফ্লো.com/ প্রশ্নগুলি / 17792161/… দেখুন ।
নিকোলাস গয়ে

1
@ নিকোলাসজয় লিঙ্কটি ভাল ছিল তবে এটি কার্যকর ছিল না কারণ আমি সুরক্ষার কারণে সুবিধাপ্রাপ্ত ব্যবহার করতে পারি না। Lxc-cgroups একটি ভাল পয়েন্টার ছিল, তবে যথেষ্ট নয়। আমি একটি উপায় খুঁজে পেয়েছি এবং যখন সমস্ত কিছু পালিশ হয়ে যাবে তখন আমি নিজেই উত্তর দেব।
Regan

উত্তর:


132

Regan এর উত্তর মহান, কিন্তু এটা, তারিখ সীমার বাইরে একটু যেহেতু এটি করার সঠিক উপায় lxc ফাঁসি প্রসঙ্গ এড়াতে যেমন Docker করেছেন LXC বাদ Docker 0.9 এর ডিফল্ট সম্পাদন প্রসঙ্গ হিসাবে।

পরিবর্তে - ডিভাইস ফ্ল্যাগের মাধ্যমে এনভিডিয়া ডিভাইসগুলি সম্পর্কে ডকারকে বলা ভাল, এবং কেবলমাত্র lxc এর পরিবর্তে নেটিভ এক্সিকিউশন প্রসঙ্গটি ব্যবহার করুন।

পরিবেশ

এই নির্দেশাবলী নিম্নলিখিত পরিবেশে পরীক্ষা করা হয়েছিল:

  • উবুন্টু 14.04
  • চুদা .5.৫
  • এডাব্লুএস জিপিইউ উদাহরণ।

আপনার হোস্টে এনভিডিয়া ড্রাইভার এবং চুদা ইনস্টল করুন

আপনার হোস্ট মেশিন সেটআপ পেতে উবুন্টু ১৪.০৪ এ চলমান এডাব্লুএস জিপিইউ ইনস্ট্যান্সের CUDA 6.5 দেখুন ।

ডকার ইনস্টল করুন

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update && sudo apt-get install lxc-docker

আপনার এনভিডিয়া ডিভাইসগুলি সন্ধান করুন

ls -la /dev | grep nvidia

crw-rw-rw-  1 root root    195,   0 Oct 25 19:37 nvidia0 
crw-rw-rw-  1 root root    195, 255 Oct 25 19:37 nvidiactl
crw-rw-rw-  1 root root    251,   0 Oct 25 19:37 nvidia-uvm

এনভিডিয়া ড্রাইভার প্রি ইনস্টলড সহ ডকার পাত্রটি চালান

আমি একটি ডকার ইমেজ তৈরি করেছি যাতে চুদা ড্রাইভারগুলি ইনস্টল থাকে। Dockerfile আপনি যদি জানেন কিভাবে এই ছবিটি নির্মিত হয়েছিল চান dockerhub পাওয়া যায়।

আপনি আপনার এনভিডিয়া ডিভাইসগুলির সাথে মেলে এই আদেশটি কাস্টমাইজ করতে চান। আমার জন্য যা কাজ করেছে তা এখানে:

 $ sudo docker run -ti --device /dev/nvidia0:/dev/nvidia0 --device /dev/nvidiactl:/dev/nvidiactl --device /dev/nvidia-uvm:/dev/nvidia-uvm tleyden5iwx/ubuntu-cuda /bin/bash

যাচাই করুন সিউডিএ সঠিকভাবে ইনস্টল করা আছে

এটি আপনার সবেমাত্র চালু হওয়া ডকারের ধারকটির ভিতরে থেকে চালানো উচিত।

CUDA নমুনাগুলি ইনস্টল করুন:

$ cd /opt/nvidia_installers
$ ./cuda-samples-linux-6.5.14-18745345.run -noprompt -cudaprefix=/usr/local/cuda-6.5/

ডিভাইসকোয়ারির নমুনা তৈরি করুন:

$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ make
$ ./deviceQuery   

সবকিছু যদি কাজ করে তবে আপনার নিম্নলিখিত আউটপুটটি দেখতে হবে:

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs =    1, Device0 = GRID K520
Result = PASS

3
আপনার যদি এলএক্সসি প্রয়োজন হয় না তবে আপনি কেন এলএক্সসি-ডকার ইনস্টল করবেন?
এমপি 0

4
আমি আপনার ইমেজ থেকে তৈরি একটি পাত্রে হোস্টে চুদা 5.5 এবং চুদা 6.5 রয়েছে have চুদা হোস্টে কাজ করছে, এবং আমি ডিভাইসগুলি ধারকটিতে দিয়েছি। কনটেইনারটি জিপিইউগুলি দেখতে পাচ্ছে ls -la /dev | grep nvidiaতবে সিইডিডিএ কোনও সিইডিডিএ-সক্ষম ডিভাইসটি খুঁজে পাচ্ছে না: ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) cudaGetDeviceCount returned 38 -> no CUDA-capable device is detected Result = FAIL এটি কি হোস্ট এবং কনটেইনারটিতে সিডিডিএর মিল নেই?
ব্রুনেটতো

1
আমি জানি না, আপনি এনভিডিয়া ফোরামে জানতে চাইতে পারেন। সংস্করণটির অমিলটি সমস্যা হিসাবে ধরে নিই , আপনি এই ডকফাইফাইলটি নিয়ে CUDA 5.5 ড্রাইভার রাখতে এটি সম্পাদনা করতে পারেন, তারপরে এটি থেকে একটি নতুন ডকার চিত্র পুনর্নির্মাণ করুন এবং এটি ব্যবহার করুন।
স্লাইডেন

3
চিত্রটি এনভিডিয়া ড্রাইভার কেন ইনস্টল করতে হবে তা আপনি ব্যাখ্যা করতে পারেন? আমি ভেবেছিলাম কেবল এনভিডিয়া ড্রাইভার ইনস্টল করার হোস্ট (এবং - ডিভাইস ব্যবহার করুন ...) যথেষ্ট?
হেলিন ওয়াং

2
হোস্ট হিসাবে আপনার উইন্ডোজ থাকলে বর্তমানে এটি করার কোনও উপায় নেই।
সৌরদীপ নন্দ

46

ইতিমধ্যে উপস্থিত বেশিরভাগ উত্তর এখনই অপ্রচলিত হওয়ায় একটি আপডেট উত্তর লিখছেন।

আগের সংস্করণ Docker 19.03প্রয়োজন ব্যবহৃত nvidia-docker2এবং --runtime=nvidiaপতাকা।

যেহেতু Docker 19.03, আপনাকে nvidia-container-toolkitপ্যাকেজ ইনস্টল করতে হবে এবং তারপরে --gpus allপতাকাটি ব্যবহার করতে হবে ।

সুতরাং, এখানে বেসিকগুলি,

প্যাকেজ ইনস্টলেশন

গিথুবে অফিসিয়াল ডকুমেন্টেশন অনুসারে nvidia-container-toolkitপ্যাকেজটি ইনস্টল করুন ।

রেডহ্যাট ভিত্তিক ওএসের জন্য, নিম্নলিখিত কমান্ডগুলির সেটটি সম্পাদন করুন:

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo

$ sudo yum install -y nvidia-container-toolkit
$ sudo systemctl restart docker

ডেবিয়ান ভিত্তিক ওএসের জন্য, নিম্নলিখিত কমান্ডগুলির সেটটি সম্পাদন করুন:

# Add the package repositories
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker

জিপিইউ সমর্থন সহ ডকার চালানো

docker run --name my_all_gpu_container --gpus all -t nvidia/cuda

দয়া করে নোট করুন, পতাকাটি --gpus allডক ধারকটিতে সমস্ত উপলব্ধ জিপিএস বরাদ্দ করতে ব্যবহৃত হয়।

ডকার পাত্রে নির্দিষ্ট জিপিইউ নিয়োগ করতে (আপনার মেশিনে একাধিক জিপিইউ উপলব্ধ থাকলে)

docker run --name my_first_gpu_container --gpus device=0 nvidia/cuda

অথবা

docker run --name my_first_gpu_container --gpus '"device=0"' nvidia/cuda

5
2019 হিসাবে এটি ডকারের পাত্রে থেকে জিপিইউ ব্যবহারের সঠিক উপায়।
তৈমুর বকিয়েভ

1
AWS এ কোনও ব্যাচের কাজের ভিতরে থেকে কেউ কি কখনও চেষ্টা করেছে?
medley56 21

1
আমি বিশ্বাস করি এটি সবচেয়ে প্রাসঙ্গিক। আশা করি আমি তাড়াতাড়ি খুঁজে পেয়েছি, যদিও আমাকে উথুন্টু 20.04 এর সাথে কাজ করতে github.com/NVIDIA/nvidia-docker এর দিকনির্দেশগুলি গ্রহণ করতে হয়েছিল
ভিক্টর লেগ্রোস

40

ঠিক আছে আমি অবশেষে --privileged মোডটি ব্যবহার না করে এটি করতে পেরেছি।

আমি উবুন্টু সার্ভার 14.04 এ চলছে এবং আমি সর্বশেষতম চুদা (লিনাক্স 13.04 64 বিটের জন্য 6.0.37) ব্যবহার করছি।


প্রস্তুতি

আপনার হোস্টে এনভিডিয়া ড্রাইভার এবং চুদা ইনস্টল করুন। (এটি সামান্য কৌশলযুক্ত হতে পারে তাই আমি আপনাকে এই গাইডটি অনুসরণ করার পরামর্শ দেব /ubuntu/451672/installing-and-testing-cuda-in-ubuntu-14-04 )

মনোযোগ: হোস্ট চুদা ইনস্টলেশনের জন্য আপনি যে ফাইলগুলি ব্যবহার করেছেন সেগুলি রাখা আপনার পক্ষে সত্যই গুরুত্বপূর্ণ


Lxc ব্যবহার করে ডকার ডেমন পান e

কনফিগারেশনটি সংশোধন করতে এবং ডিভাইসটিতে ধারকটিকে অ্যাক্সেস দিতে সক্ষম হতে আমাদের lxc ড্রাইভার ব্যবহার করে ডকার ডিমন চালাতে হবে।

এক সময় ব্যবহার:

sudo service docker stop
sudo docker -d -e lxc

স্থায়ী কনফিগারেশন / ইত্যাদি / ডিফল্ট / ডকারে অবস্থিত আপনার ডকার কনফিগারেশন ফাইলটি সংশোধন করুন '-e lxc' যুক্ত করে লাইনটি DOCKER_OPTS পরিবর্তন করুন এখানে পরিবর্তনের পরে আমার লাইনটি এখানে

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 -e lxc"

তারপরে ডিমনটি পুনরায় চালু করুন

sudo service docker restart

ডিমন কার্যকরভাবে lxc ড্রাইভার ব্যবহার করে কিনা তা কীভাবে পরীক্ষা করবেন?

docker info

এক্সিকিউশন ড্রাইভার লাইনের মতো দেখতে হবে:

Execution Driver: lxc-1.0.5

আপনার চিত্রটি এনভিআইডিএ এবং সিইউডিএ ড্রাইভার দিয়ে তৈরি করুন।

CUDA- র সামঞ্জস্যপূর্ণ চিত্রটি তৈরি করতে এখানে একটি বেসিক ডকফায়াইল রয়েছে।

FROM ubuntu:14.04
MAINTAINER Regan <http://stackoverflow.com/questions/25185405/using-gpu-from-a-docker-container>

RUN apt-get update && apt-get install -y build-essential
RUN apt-get --purge remove -y nvidia*

ADD ./Downloads/nvidia_installers /tmp/nvidia                             > Get the install files you used to install CUDA and the NVIDIA drivers on your host
RUN /tmp/nvidia/NVIDIA-Linux-x86_64-331.62.run -s -N --no-kernel-module   > Install the driver.
RUN rm -rf /tmp/selfgz7                                                   > For some reason the driver installer left temp files when used during a docker build (i don't have any explanation why) and the CUDA installer will fail if there still there so we delete them.
RUN /tmp/nvidia/cuda-linux64-rel-6.0.37-18176142.run -noprompt            > CUDA driver installer.
RUN /tmp/nvidia/cuda-samples-linux-6.0.37-18176142.run -noprompt -cudaprefix=/usr/local/cuda-6.0   > CUDA samples comment if you don't want them.
RUN export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64         > Add CUDA library into your PATH
RUN touch /etc/ld.so.conf.d/cuda.conf                                     > Update the ld.so.conf.d directory
RUN rm -rf /temp/*  > Delete installer files.

আপনার ইমেজ চালান।

প্রথমে আপনাকে আপনার ডিভাইসের সাথে যুক্ত বড় সংখ্যাটি সনাক্ত করতে হবে। নিম্নলিখিত কমান্ডটি করা সহজ উপায়:

ls -la /dev | grep nvidia

যদি ফলাফলটি ফাঁকা থাকে, তবে হোস্টের মধ্যে একটি নমুনা ব্যবহার করে কৌশলটি করা উচিত। ফলাফলটি এখানে চিত্র বর্ণনা লিখুন দেখতে এমন হওয়া উচিত যেমন আপনি দেখতে পাচ্ছেন গ্রুপ এবং তারিখের মধ্যে 2 সংখ্যার একটি সেট রয়েছে। এই 2 নম্বরগুলিকে প্রধান এবং অপ্রধান সংখ্যা বলা হয় (সেই ক্রমে লেখা) এবং একটি ডিভাইস ডিজাইন করুন। আমরা সুবিধার জন্য কেবল প্রধান সংখ্যাগুলি ব্যবহার করব।

কেন আমরা এলএক্সসি ড্রাইভার চালিত করব? Lxc conf বিকল্পটি ব্যবহার করতে যা আমাদের কনটেইনারটিকে সেই ডিভাইসগুলিতে অ্যাক্সেস করার অনুমতি দেয়। বিকল্পটি হ'ল: (আমি সংখ্যালঘু সংখ্যার জন্য * ব্যবহার করার পরামর্শ দিচ্ছি কারণ এটি রান কমান্ডের দৈর্ঘ্য হ্রাস করে)

--lxc-conf = 'lxc.cgroup.devices.allow = c [প্রধান সংখ্যা]: [গৌণ সংখ্যা বা *] rwm'

সুতরাং আমি যদি কোনও ধারক চালু করতে চাই (মনে হয় আপনার চিত্রের নাম চুদা)।

docker run -ti --lxc-conf='lxc.cgroup.devices.allow = c 195:* rwm' --lxc-conf='lxc.cgroup.devices.allow = c 243:* rwm' cuda

আপনি ধারক ভাগ করতে পারেন?
চিল্লারআনন্দ

1
--deviceহোস্টের ডিভাইসে কনটেইনারটি অ্যাক্সেস করার অনুমতি দেওয়ার জন্য ডকারের একটি বিকল্প রয়েছে। তবে আমি --device=/dev/nvidia0ডকারের ধারককে চুদা চালানোর অনুমতি দেওয়ার জন্য ব্যবহার করার চেষ্টা করেছি এবং ব্যর্থ হয়েছি ।
shiquanwang

4
আমি তখন সব প্রকাশক সঙ্গে সফল /dev/nvidiao, /dev/nvidia1, /dev/nvidiactlএবং /dev/nvidia-uvmসঙ্গে --device। যদিও কেন জানি না।
shiquanwang

যখন আমাকে এই সমাধানটি সন্ধান করতে হয়েছিল - - ডিভাইস বিকল্পটি কার্যকর করা হয়নি। আপনার কমপক্ষে এনভিডিয়া0 বা এনভিডিয়া 1 (গ্রাফিক কার্ড) এবং এনভিডিয়্যাকটেল (সাধারণ এনভিডিয়া ডিভাইস) এবং এনভিডিয়া-ইউভিএম (ইউনাইটেড মেমোরি ডিভাইস) প্রয়োজন।
Regan

2
/dev/nvidia*@ রেগান আপনার ইঙ্গিত জন্য ধন্যবাদ । @ ছিল্লার জন্য এবং আমি একটি
চুদা

29

আমরা সবেমাত্র একটি পরীক্ষামূলক গিটহাব সংগ্রহস্থল প্রকাশ করেছি যা ডকারের পাত্রে NVIDIA GPU ব্যবহার করার প্রক্রিয়াটি সহজ করবে।


4
উইন্ডোজ সমর্থন আছে? মনে হচ্ছে না, তবে সম্ভবত আমি কিছু মিস করছি।
জ্বলুন

6
উইন্ডোজ সমর্থন নেই। সিইডিএ কনটেইনারটি চালনার জন্য লিনাক্সের জন্য এনভিডিয়া ড্রাইভার এবং জিপিইউ প্রতিনিধিত্বকারী লিনাক্স ডিভাইসগুলিতে অ্যাক্সেস প্রয়োজন, যেমন / dev / nvidia0। উইন্ডোজে ডকার ইনস্টল হওয়ার পরে এবং ভার্চুয়ালবক্স ভার্চুয়াল মেশিনের অভ্যন্তরে চলার সময় এই ডিভাইসগুলি এবং ড্রাইভারগুলি উপলভ্য নয়।
পাওয়ে বাইলিকা

রান কমান্ডে এখনও - ডিভাইস ঘোষণা দরকার? আমি এনভিডিয়া / চুদা থেকে একটি ধারক তৈরি করেছি এবং ধারকটি ভাল চলছে, তবে অ্যাপ্লিকেশন (ওয়াওজা) জিপিইউগুলিকে স্বীকৃতি দিচ্ছে না যখন সরাসরি হোস্টে চালানোর সময় এটি ঠিক আছে (এই হোস্টটি, তাই আমি জানি ড্রাইভাররা ভাল আছেন) । আমি 361.28 চালাচ্ছি। হোস্টটি ইসি 2 হ'ল জি 2.8 এক্স্লারেজে এনভিডিয়া এএমআই ব্যবহার করে।
রায়নাবাবা

এনভিডিয়া-ডকার দ্বারা কোনও কিছুরই যত্ন নেওয়া হয় না, আপনি ধারকটির ভিতরে
এনভিডিয়া

22

এনভিআইডিআইএর সাম্প্রতিক বর্ধনগুলি এটি করার জন্য আরও অনেক শক্তিশালী উপায় তৈরি করেছে।

মূলত তারা পাত্রে অভ্যন্তরের CUDA / GPU ড্রাইভার ইনস্টল করার প্রয়োজনীয়তা এড়াতে এবং এটি হোস্ট কার্নেল মডিউলটির সাথে মেলে দেওয়ার একটি উপায় খুঁজে পেয়েছে।

পরিবর্তে, ড্রাইভারগুলি হোস্টে থাকে এবং পাত্রে তাদের প্রয়োজন হয় না। এখনই এটির জন্য একটি সংশোধিত ডকার-ক্লাইপ প্রয়োজন।

এটি দুর্দান্ত, কারণ এখন পাত্রে অনেক বেশি বহনযোগ্য।

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

উবুন্টু সম্পর্কে একটি দ্রুত পরীক্ষা:

# Install nvidia-docker and nvidia-docker-plugin
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb

# Test nvidia-smi
nvidia-docker run --rm nvidia/cuda nvidia-smi

আরও তথ্যের জন্য দেখুন: জিপিইউ-সক্ষম ডক ​​কনটেইনার এবং: https://github.com/NVIDIA/nvidia-docker


আপনি সমস্ত পদক্ষেপগুলি পেয়ে গেলে এটি ভালভাবে কাজ করে। এনভিডিয়া এগুলি সমস্ত জায়গায় সরবরাহ করে না, তবে এই উদাহরণটি সাধারণ ব্যবহারের ক্ষেত্রে এটির কাজ করার জন্য আপনার প্রয়োজনীয় সমস্ত কিছু দেয়।
কোবে জন

@ কোবে জোন - আমি কেবলমাত্র ইনস্টলেশন নির্দেশাবলী অনুসরণ করেছি, কীভাবে কমান্ড লাইন ব্যবহার করবেন এবং আমার পাত্রে চুদা থেকে উত্তরাধিকারী হবেন তা নিশ্চিত করুন। এটা শুধু আমার জন্য কাজ করে।
ম্যাট

1
প্রকৃতপক্ষে, আপনি কী বাস্তব জীবনের পরিস্থিতি দিতে পারেন যেখানে এনভিডিয়া-ডকারের ব্যবহারটি বোঝায়?
সানকাচার

@ সানকাচার - আমি এটি একটি ক্লাস্টারে ব্যবহার করছি যাতে থ্রিডি রেন্ডারিংয়ের জন্য জিপিইউতে অ্যাক্সেস প্রয়োজন। অ্যাপ্লিকেশনগুলিকে ডোকারাইজ করা জিনিসগুলি মোতায়েন করা এবং বজায় রাখা সহজ করে তোলে।
ম্যাট 21

17

উবুন্টু 16.04 এ চুদা -8.0 এর জন্য আপডেট হয়েছে

Dockerfile

FROM ubuntu:16.04
MAINTAINER Jonathan Kosgei <jonathan@saharacluster.com>

# A docker container with the Nvidia kernel module and CUDA drivers installed

ENV CUDA_RUN https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda_8.0.44_linux-run

RUN apt-get update && apt-get install -q -y \
  wget \
  module-init-tools \
  build-essential 

RUN cd /opt && \
  wget $CUDA_RUN && \
  chmod +x cuda_8.0.44_linux-run && \
  mkdir nvidia_installers && \
  ./cuda_8.0.44_linux-run -extract=`pwd`/nvidia_installers && \
  cd nvidia_installers && \
  ./NVIDIA-Linux-x86_64-367.48.run -s -N --no-kernel-module

RUN cd /opt/nvidia_installers && \
  ./cuda-linux64-rel-8.0.44-21122537.run -noprompt

# Ensure the CUDA libs and binaries are in the correct environment variables
ENV LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
ENV PATH=$PATH:/usr/local/cuda-8.0/bin

RUN cd /opt/nvidia_installers &&\
    ./cuda-samples-linux-8.0.44-21122537.run -noprompt -cudaprefix=/usr/local/cuda-8.0 &&\
    cd /usr/local/cuda/samples/1_Utilities/deviceQuery &&\ 
    make

WORKDIR /usr/local/cuda/samples/1_Utilities/deviceQuery
  1. আপনার ধারক চালান

sudo docker run -ti --device /dev/nvidia0:/dev/nvidia0 --device /dev/nvidiactl:/dev/nvidiactl --device /dev/nvidia-uvm:/dev/nvidia-uvm <built-image> ./deviceQuery

আপনার এর মতো আউটপুট দেখতে হবে:

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GRID K520 Result = PASS


3
আমি নিম্নলিখিত আউটপুট পেতে। চুদাগেট ডেভিসকাউন্ট 38 টি ফিরে -> কোনও সিওডিএ-সক্ষম ডিভাইস সনাক্ত করা যায়নি ফলাফল = ব্যর্থ
সোচি হায়াশি

দেরিতে উত্তর, তবে এর অর্থ সম্ভবত আপনার সেই মেশিনে কোনও জিপিইউ নেই
জোনাথন

চুদা -9 সংস্করণটি কি এর মতো প্রায় একই হবে?
huseyin tugrul buyukisik

@huseyintugrulbuyukisik এই উত্তরটি জিজ্ঞাসা জিজ্ঞাসা করুন জিজ্ঞাসা করুন জিজ্ঞাসুবন্টু. com / প্রশ্নসন / 67373৩৩২/২ , আমি বলতে পারি আপনি এই উত্তরটি গাইড হিসাবে ব্যবহার করতে পারতেন তবে একই পদক্ষেপ প্রয়োগ হবে তা নিশ্চিত করার জন্য আমি চুদা 9 নিয়ে কাজ করি নি
জোনাথন

এইভাবে করবেন না। এটি পুরানো পথ। নতুন উপায়ে ব্যবহার করুন। আমার উত্তরের লিঙ্ক দেখুন। এই পদ্ধতিটি সমস্যায় ভরা।
ম্যাট

3

ডকার কনটেইনার থেকে জিপিইউ ব্যবহার করতে নেটিভ ডকার ব্যবহার না করে এনভিডিয়া-ডকার ব্যবহার করুন। এনভিডিয়া ডকার ইনস্টল করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey |  sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-
docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker
sudo pkill -SIGHUP dockerd # Restart Docker Engine
sudo nvidia-docker run --rm nvidia/cuda nvidia-smi # finally run nvidia-smi in the same container

1

Mviereck দ্বারা x11 ডকার ব্যবহার করুন :

https://github.com/mviereck/x11docker#hardware-acceleration বলছে

হার্ডওয়্যার ত্বরণ

অপশন-জি, --জিপিইউ দিয়ে ওপেনগিএলের হার্ডওয়্যার ত্বরণ সম্ভব।

এটি হোস্টে ওপেন সোর্স ড্রাইভার সহ বেশিরভাগ ক্ষেত্রে বাক্সের বাইরে কাজ করবে। অন্যথায় উইকি: বৈশিষ্ট্য নির্ভরতা দেখুন। বদ্ধ উত্স এনভিআইডিএ ড্রাইভারদের কিছু সেটআপ প্রয়োজন এবং কম এক্স 11 ডকার এক্স সার্ভার অপশন সমর্থন করে।

এই স্ক্রিপ্টটি সত্যই সুবিধাজনক কারণ এটি সমস্ত কনফিগারেশন এবং সেটআপ পরিচালনা করে। জিপিইউ দিয়ে এক্স-এ ডকার চিত্র চালানো তত সহজ

x11docker --gpu imagename
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.