CUDA/AI ত্বরণ এবং মিডিয়া ট্রান্সকোডিং এর জন্য Proxmox VE 8 কন্টেইনারে NVIDIA GPU কিভাবে পাসথ্রু করা যায়

Cuda Ai Tbarana Ebam Midiya Transakodim Era Jan Ya Proxmox Ve 8 Kante Inare Nvidia Gpu Kibhabe Pasathru Kara Yaya



আপনার Proxmox VE সার্ভারে একটি NVIDIA GPU ইনস্টল করা থাকলে, আপনি এটি একটি Proxmox VE LXC কন্টেইনারে পাঠাতে পারেন এবং CUDA/AI ত্বরণ (যেমন TensorFlow, PyTorch) এর জন্য কন্টেইনারে ব্যবহার করতে পারেন। আপনি ইনস্টল করা Plex মিডিয়া সার্ভার বা NextCloud (উদাহরণস্বরূপ) সহ একটি Proxmox VE LXC পাত্রে মিডিয়া ট্রান্সকোডিং, ভিডিও স্ট্রিমিং ইত্যাদির জন্য NVIDIA GPU ব্যবহার করতে পারেন।

এই নিবন্ধে, আমরা আপনাকে দেখাব কিভাবে একটি NVIDIA GPU একটি Proxmox VE 8 LXC কন্টেইনারে পাস করতে হয় যাতে আপনি এটিকে CUDA/AI ত্বরণ, মিডিয়া ট্রান্সকোডিং, বা NVIDIA GPU প্রয়োজন এমন অন্যান্য কাজের জন্য ব্যবহার করতে পারেন।







বিষয়বস্তুর বিষয়:

Proxmox VE 8 এ NVIDIA GPU ড্রাইভার ইনস্টল করা হচ্ছে

একটি NVIDIA GPU একটি Proxmox VE LXC কন্টেইনারে পাস করতে, আপনার Proxmox VE 8 সার্ভারে NVIDIA GPU ড্রাইভার ইনস্টল থাকতে হবে। আপনার Proxmox VE 8 সার্ভারে অফিসিয়াল NVIDIA GPU ড্রাইভারের সর্বশেষ সংস্করণ ইনস্টল করার জন্য আপনার যদি কোনো সহায়তার প্রয়োজন হয়, এই নিবন্ধটি পড়ুন .



NVIDIA GPU কার্নেল মডিউলগুলি Proxmox VE 8 এ স্বয়ংক্রিয়ভাবে লোড হয়েছে তা নিশ্চিত করা হচ্ছে

একবার আপনার Proxmox VE 8 সার্ভারে NVIDIA GPU ড্রাইভার ইনস্টল হয়ে গেলে, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে বুট করার সময় NVIDIA GPU কার্নেল মডিউলগুলি স্বয়ংক্রিয়ভাবে লোড হয়।



প্রথমে, “/etc/modules-load.d/” ডিরেক্টরিতে “nvidia.conf”-এর মত একটি নতুন ফাইল তৈরি করুন এবং ন্যানো টেক্সট এডিটর দিয়ে খুলুন।





$ ন্যানো / ইত্যাদি / মডিউল-লোড.ডি / nvidia.conf

নিম্নলিখিত লাইন যোগ করুন এবং টিপুন + এক্স তারপরে 'Y' এবং <এন্টার> 'nvidia.conf' ফাইল সংরক্ষণ করতে:



এনভিডিয়া

nvidia_uvm

পরিবর্তনগুলি কার্যকর করার জন্য, নিম্নলিখিত কমান্ডের সাহায্যে 'initramfs' ফাইলটি আপডেট করুন:

$ আপডেট-initramfs -ভিতরে

কিছু কারণে, Proxmox VE 8 “/dev/” ডিরেক্টরিতে প্রয়োজনীয় NVIDIA GPU ডিভাইস ফাইল তৈরি করে না। এই ডিভাইস ফাইলগুলি ছাড়া, Promox VE 8 LXC কন্টেনারগুলি NVIDIA GPU ব্যবহার করতে সক্ষম হবে না।

Proxmox VE 8 বুট করার সময় '/dev/' ডিরেক্টরিতে NVIDIA GPU ডিভাইস ফাইল তৈরি করে তা নিশ্চিত করতে, '/etc/udev/rules.d/'-এ একটি udev নিয়ম ফাইল '70-nvidia.rules' তৈরি করুন ডিরেক্টরি এবং নিম্নরূপ ন্যানো টেক্সট এডিটর দিয়ে এটি খুলুন:

$ ন্যানো / ইত্যাদি / udev / নিয়ম / 70 -nvidia.rules

'70-nvidia.rules' ফাইলে নিম্নলিখিত লাইনগুলি টাইপ করুন এবং টিপুন৷ + এক্স তারপরে 'Y' এবং <এন্টার> ফাইল সংরক্ষণ করতে:

# /dev/* এ প্রয়োজনীয় NVIDIA ডিভাইস ফাইল তৈরি করুন

কার্নেল == 'এনভিডিয়া' , RUN+= '/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 0666 /dev/nvidia*''

কার্নেল == 'nvidia_uvm' , RUN+= '/bin/bash -c '/usr/bin/nvidia-modtest -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*''

পরিবর্তনগুলি কার্যকর হওয়ার জন্য, নিম্নরূপ আপনার Proxmox VE 8 সার্ভার পুনরায় বুট করুন:

$ রিবুট

একবার আপনার Proxmox VE 8 সার্ভার বুট হয়ে গেলে, NVIDIA কার্নেল মডিউলগুলি স্বয়ংক্রিয়ভাবে লোড হওয়া উচিত যেমন আপনি নিম্নলিখিত স্ক্রিনশটে দেখতে পাচ্ছেন:

$ lsmod | আঁকড়ে ধরে এনভিডিয়া

প্রয়োজনীয় NVIDIA ডিভাইস ফাইলগুলিও আপনার Proxmox VE 8 সার্ভারের “/dev” ডিরেক্টরিতে থাকা উচিত। NVIDIA ডিভাইস ফাইলগুলির CGroup IDগুলি নোট করুন। আপনাকে অবশ্যই LXC কন্টেইনারে সেই CGroup IDগুলিকে অনুমতি দিতে হবে যেখানে আপনি আপনার Proxmox VE 8 সার্ভার থেকে NVIDIA GPU গুলি পাস করতে চান৷ আমাদের ক্ষেত্রে, CGroup ID গুলি হল 195, 237, এবং 226৷

$ ls -এলএইচ / দেব / এনভিডিয়া *

$ ls -এলএইচ / দেব / dri

NVIDIA GPU পাসথ্রু-এর জন্য একটি Proxmox VE 8 LXC কন্টেইনার তৈরি করা হচ্ছে

এই প্রবন্ধে প্রদর্শনের জন্য আমরা একটি উবুন্টু 22.04 LTS Proxmox VE 8 LXC কন্টেইনার ব্যবহার করেছি যেহেতু NVIDIA CUDA এবং NVIDIA cuDNN লাইব্রেরিগুলি উবুন্টু প্যাকেজ রিপোজিটরি থেকে উবুন্টু 22.04 LTS-এ ইনস্টল করা সহজ এবং এনভিআইডিআই অ্যাসিইউডিএ কাজ করলে পরীক্ষা করা সহজ। . আপনি চাইলে অন্যান্য লিনাক্স ডিস্ট্রিবিউশনও ব্যবহার করতে পারেন। সেই ক্ষেত্রে, NVIDIA CUDA এবং NVIDIA cuDNN ইনস্টলেশন কমান্ডগুলি পরিবর্তিত হবে৷ আপনার পছন্দসই লিনাক্স বিতরণের জন্য NVIDIA CUDA এবং NVIDIA cuDNN ইনস্টলেশন নির্দেশাবলী অনুসরণ করতে ভুলবেন না।

একটি Proxmox VE 8 LXC কন্টেইনার তৈরি করতে আপনার কোনো সহায়তার প্রয়োজন হলে, এই নিবন্ধটি পড়ুন .

Promox VE 8-এ NVIDIA GPU পাসথ্রু-এর জন্য একটি LXC কন্টেইনার কনফিগার করা হচ্ছে

NVIDIA GPU পাসথ্রু-এর জন্য একটি LXC কন্টেইনার (ধারক 102, বলুন) কনফিগার করতে, নিম্নরূপ ন্যানো টেক্সট এডিটর সহ Proxmox VE শেল থেকে LXC কন্টেইনার কনফিগারেশন ফাইলটি খুলুন:

$ ন্যানো / ইত্যাদি / pve / lxc / 102 .conf

LXC কন্টেইনার কনফিগারেশন ফাইলের শেষে নিম্নলিখিত লাইন টাইপ করুন:

lxc.cgroup.devices.allow: গ 195 : * rwm

lxc.cgroup.devices.allow: গ 237 : * rwm

lxc.cgroup.devices.allow: গ 226 : * rwm

lxc.mount.entry: / দেব / nvidia0          dev / nvidia0           কোনোটিই নয় বাঁধাই করা ,ঐচ্ছিক, সৃষ্টি = ফাইল

lxc.mount.entry: / দেব / nvidiactl        dev / nvidiactl        কিছুই নয় বাঁধাই করা ,ঐচ্ছিক, সৃষ্টি = ফাইল

lxc.mount.entry: / দেব / nvidia-modeset   dev / nvidia-modeset   কোনও নয় বাঁধাই করা ,ঐচ্ছিক, সৃষ্টি = ফাইল

lxc.mount.entry: / দেব / nvidia-uvm       dev / nvidia-uvm        কোনটিই নয় বাঁধাই করা ,ঐচ্ছিক, সৃষ্টি = ফাইল

lxc.mount.entry: / দেব / nvidia-uvm-tools dev / nvidia-uvm-tools কোনটি নয় বাঁধাই করা ,ঐচ্ছিক, সৃষ্টি = ফাইল

lxc.mount.entry: / দেব / dri               দেব / dri              কোনটিই নয় বাঁধাই করা ,ঐচ্ছিক, সৃষ্টি = আপনি

LXC কন্টেইনার কনফিগারেশন ফাইলের 'lxc.cgroup.devices.allow' লাইনে CGroup IDগুলি প্রতিস্থাপন করা নিশ্চিত করুন। একবার আপনি সম্পন্ন হলে, টিপুন + এক্স তারপরে 'Y' এবং <এন্টার> LXC কন্টেইনার কনফিগারেশন ফাইল সংরক্ষণ করতে।

এখন, Proxmox VE 8 ড্যাশবোর্ড থেকে LXC কন্টেইনার শুরু করুন।

NVIDIA GPU পাসথ্রু সফল হলে, LXC কন্টেইনারটি কোনও ত্রুটি ছাড়াই শুরু হওয়া উচিত এবং আপনি কন্টেইনারের '/dev' ডিরেক্টরিতে NVIDIA ডিভাইস ফাইলগুলি দেখতে পাবেন।

$ ls -এলএইচ / দেব / এনভিডিয়া *

$ ls -এলএইচ / দেব / dri

Proxmox VE 8 LXC কন্টেইনারে NVIDIA GPU ড্রাইভার ইনস্টল করা হচ্ছে

আমরা প্রদর্শনের জন্য আমাদের Proxmox VE 8 সার্ভারে একটি Ubuntu 22.04 LTS LXC কন্টেইনার ব্যবহার করছি। আপনি যদি LXC কন্টেইনারে অন্য লিনাক্স ডিস্ট্রিবিউশন ব্যবহার করেন, তাহলে আপনার কমান্ড আমাদের থেকে কিছুটা আলাদা হবে। সুতরাং, আপনি কন্টেইনারে যে লিনাক্স ডিস্ট্রিবিউশন ব্যবহার করছেন তার উপর নির্ভর করে কমান্ডগুলি সামঞ্জস্য করতে ভুলবেন না।

আপনি 'nvidia-smi' কমান্ডের মাধ্যমে আপনার Proxmox VE 8 সার্ভারে ইনস্টল করা NVIDIA GPU ড্রাইভার সংস্করণটি খুঁজে পেতে পারেন। আপনি দেখতে পাচ্ছেন, আমাদের Proxmox VE 8 সার্ভারে NVIDIA GPU ড্রাইভার সংস্করণ 535.146.02 ইন্সটল করা আছে। তাই, আমাদের LXC কন্টেইনারেও NVIDIA GPU ড্রাইভার সংস্করণ 535.146.02 ইন্সটল করতে হবে।

$ nvidia-smi

প্রথমে, LXC কন্টেইনারে CURL নিম্নলিখিতভাবে ইনস্টল করুন:

$ উপযুক্ত আপডেট && উপযুক্ত ইনস্টল কার্ল -এবং

CURL LXC পাত্রে ইনস্টল করা উচিত।

NVIDIA GPU ড্রাইভারের সংস্করণ 535.146.02 (আসুন, বলা যাক) ইনস্টল করতে, NVIDIA_VERSION এনভায়রনমেন্ট ভেরিয়েবল রপ্তানি করুন এবং NVIDIA GPU ড্রাইভার ইনস্টলার ফাইলের প্রয়োজনীয় সংস্করণ ডাউনলোড করতে CURL কমান্ড (কন্টেইনারে) চালান।

$ রপ্তানি NVIDIA_VERSION = '535.146.02'

$ কার্ল -ও 'https://us.download.nvidia.com/XFree86/Linux-x86_64/ ${NVIDIA_VERSION} /NVIDIA-Linux-x86_64- ${NVIDIA_VERSION} চালান'

NVIDIA GPU ড্রাইভার ইনস্টলার ফাইলের সঠিক সংস্করণটি LXC কন্টেইনারে ডাউনলোড করা উচিত যেমন আপনি নিম্নলিখিত স্ক্রিনশটটিতে দেখতে পাচ্ছেন:

এখন, কন্টেইনারে NVIDIA GPU ড্রাইভার ইনস্টলার ফাইলে একটি এক্সিকিউটেবল অনুমতি যোগ করুন:

$ chmod +x NVIDIA-Linux-x86_64-535.146.02.run

কন্টেইনারে NVIDIA GPU ড্রাইভার ইনস্টল করতে, NVIDIA GPU ড্রাইভার ইনস্টলার ফাইলটি “–no-kernel-module” দিয়ে চালান। নিম্নলিখিত হিসাবে বিকল্প:

$ . / NVIDIA-Linux-x86_64-535.146.02.run --নো-কারনেল-মডিউল

একবার আপনি এই বিকল্পটি দেখতে পেলে, 'ঠিক আছে' নির্বাচন করুন এবং টিপুন <এন্টার> .

'ঠিক আছে' নির্বাচন করুন এবং টিপুন <এন্টার> .

'হ্যাঁ' নির্বাচন করুন এবং টিপুন <এন্টার> .

'ঠিক আছে' নির্বাচন করুন এবং টিপুন <এন্টার> .

NVIDIA GPU ড্রাইভারগুলি LXC কন্টেইনারে ইনস্টল করা হচ্ছে৷ এটি সম্পূর্ণ হতে কয়েক সেকেন্ড সময় লাগে।

একবার আপনি এই প্রম্পটটি দেখতে পেলে, 'হ্যাঁ' নির্বাচন করুন এবং টিপুন <এন্টার> .

'ঠিক আছে' নির্বাচন করুন এবং টিপুন <এন্টার> . NVIDIA GPU ড্রাইভারগুলি LXC কন্টেইনারে ইনস্টল করা উচিত।

NVIDIA GPU ড্রাইভারগুলি ইনস্টল এবং কাজ করছে কিনা তা নিশ্চিত করতে, LXC কন্টেইনারে 'nvidia-smi' কমান্ডটি চালান। আপনি দেখতে পাচ্ছেন, NVIDIA GPU ড্রাইভার সংস্করণ 535.146.02 (Proxmox VE 8 সার্ভারে ইনস্টল করা একই সংস্করণ) LXC কন্টেইনারে ইনস্টল করা আছে এবং এটি আমাদের NVIDIA RTX 4070 GPU সঠিকভাবে সনাক্ত করেছে।

$ nvidia-smi

Proxmox VE 8 LXC কন্টেইনারে NVIDIA CUDA এবং cuDNN ইনস্টল করা হচ্ছে

আমরা প্রদর্শনের জন্য আমাদের Proxmox VE 8 সার্ভারে একটি Ubuntu 22.04 LTS LXC কন্টেইনার ব্যবহার করছি। আপনি যদি LXC কন্টেইনারে অন্য লিনাক্স ডিস্ট্রিবিউশন ব্যবহার করেন, তাহলে আপনার কমান্ড আমাদের থেকে কিছুটা আলাদা হবে। সুতরাং, আপনি কন্টেইনারে যে লিনাক্স ডিস্ট্রিবিউশন ব্যবহার করছেন তার উপর নির্ভর করে কমান্ডগুলি সামঞ্জস্য করতে ভুলবেন না।

Ubuntu 22.04 LTS Proxmox VE 8 কন্টেইনারে NVIDIA CUDA এবং cuDNN ইনস্টল করতে, কন্টেইনারে নিম্নলিখিত কমান্ডটি চালান:

$ উপযুক্ত ইনস্টল বিল্ড-অত্যাবশ্যকীয় এনভিডিয়া-চুদা-টুলকিট এনভিডিয়া-কুডন

ইনস্টলেশন নিশ্চিত করতে, 'Y' টিপুন এবং তারপরে টিপুন <এন্টার> .

প্রয়োজনীয় প্যাকেজ ডাউনলোড এবং ইনস্টল করা হচ্ছে. এটি সম্পূর্ণ হতে একটু সময় লাগে।

একবার আপনি এই উইন্ডোটি দেখতে পেলে, 'ঠিক আছে' নির্বাচন করুন এবং টিপুন <এন্টার> .

'আমি একমত' নির্বাচন করুন এবং টিপুন <এন্টার> .

ইনস্টলেশন চালিয়ে যেতে হবে।

ইনস্টলারটি NVIDIA থেকে NVIDIA cuDNN লাইব্রেরি সংরক্ষণাগার ডাউনলোড করছে। এটি একটি বড় ফাইল, তাই এটি সম্পূর্ণ হতে অনেক সময় নেয়।

একবার NVIDIA cuDNN লাইব্রেরি সংরক্ষণাগার ডাউনলোড হয়ে গেলে, ইনস্টলেশনটি যথারীতি চালিয়ে যাওয়া উচিত।

এই মুহুর্তে, NVIDIA CUDA এবং cuDNN উবুন্টু 22.04 LTS Proxmox VE 8 LXC কন্টেইনারে ইনস্টল করা উচিত।

Proxmox VE 8 LXC কন্টেইনারে NVIDIA CUDA অ্যাক্সিলারেশন কাজ করছে কিনা তা পরীক্ষা করা হচ্ছে

NVIDIA CUDA সঠিকভাবে ইনস্টল করা আছে কিনা তা যাচাই করতে, Proxmox VE 8 কন্টেইনারে 'nvcc' কমান্ডটি উপলব্ধ আছে কিনা তা পরীক্ষা করুন:

$ এনভিসিসি --সংস্করণ

আপনি দেখতে পাচ্ছেন, আমাদের Proxmox VE 8 কন্টেইনারে NVIDIA CUDA 11.5 ইনস্টল করা আছে।

এখন, আসুন একটি সাধারণ CUDA C প্রোগ্রাম লিখুন, কম্পাইল করুন এবং রান করুন এবং দেখুন সবকিছু আশানুরূপ কাজ করছে কিনা।

প্রথমে, ফাইলগুলিকে সংগঠিত রাখতে Proxmox VE 8 কন্টেইনারে একটি “~/code” প্রজেক্ট ডিরেক্টরি তৈরি করুন।

$ mkdir ~ / কোড

নিম্নরূপ '~/code' প্রকল্প ডিরেক্টরিতে নেভিগেট করুন:

$ সিডি `/ কোড

Proxmox VE 8 কন্টেইনারের “~/code” ডিরেক্টরিতে “hello.cu”-এর মত একটি নতুন ফাইল তৈরি করুন এবং ন্যানো টেক্সট এডিটর দিয়ে খুলুন:

$ ন্যানো hello.cu

'hello.cu' ফাইলে কোডের নিম্নলিখিত লাইনগুলি টাইপ করুন:

# অন্তর্ভুক্ত করুন

__গ্লোবাল__ অকার্যকর বলুন ( ) {
printf ( 'জিপিইউ থেকে হ্যালো ওয়ার্ল্ড! \n ' ) ;
}

int প্রধান ( ) {
printf ( 'সিপিইউ থেকে হ্যালো ওয়ার্ল্ড! \n ' ) ;

হ্যালো বলো << 1 , 1 >> ( ) ;
cudaDeviceSynchronize ( ) ;

ফিরে 0 ;
}

একবার আপনি হয়ে গেলে, টিপুন + এক্স 'Y' দ্বারা অনুসরণ করা এবং <এন্টার> 'hello.cu' ফাইলটি সংরক্ষণ করতে।

Proxmox VE 8 কন্টেইনারে “hello.cu” CUDA প্রোগ্রাম কম্পাইল করতে, নিম্নলিখিত কমান্ডগুলি চালান:

$ nvcc hello.cu -ও হ্যালো

এখন, আপনি Proxmox VE 8 কন্টেইনারে 'হ্যালো' CUDA প্রোগ্রামটি নিম্নরূপ চালাতে পারেন:

$ . / হ্যালো

যদি Proxmox VE 8 কন্টেইনার NVIDIA CUDA ত্বরণের জন্য NVIDIA GPU ব্যবহার করতে পারে, তাহলে নিচের স্ক্রিনশটে দেখানো প্রোগ্রামটি দুটি লাইন প্রিন্ট করবে।

Proxmox VE 8 কন্টেইনার থেকে NVIDIA GPU অ্যাক্সেসযোগ্য না হলে, প্রোগ্রামটি শুধুমাত্র প্রথম লাইনটি প্রিন্ট করবে যা 'CPU থেকে হ্যালো ওয়ার্ল্ড!', দ্বিতীয় লাইন নয়।

উপসংহার

এই নিবন্ধে, আমরা আপনাকে দেখিয়েছি কিভাবে একটি NVIDIA GPU-কে Proxmox VE 8 হোস্ট থেকে Proxmox VE 8 LXC কন্টেইনারে পাস করতে হয়। আমরা আপনাকে Proxmox VE হোস্ট হিসাবে Proxmox VE 8 কন্টেইনারে NVIDIA GPU ড্রাইভারের একই সংস্করণ কিভাবে ইনস্টল করতে হয় তাও দেখিয়েছি। অবশেষে, আমরা আপনাকে দেখিয়েছি কিভাবে একটি উবুন্টু 22.04 LTS Proxmox VE 8 কন্টেইনারে NVIDIA CUDA এবং NVIDIA cuDNN ইনস্টল করতে হয় এবং Proxmox VE 8 কন্টেইনারে একটি সাধারণ NVIDIA CUDA প্রোগ্রাম কম্পাইল করে চালাতে হয়।

তথ্যসূত্র: