نحوه استفاده از ابزارهای کانتینری Nvidia و Miniconda با GPU Droplets

مقدمه
استفاده از کانتینرها برای پردازش‌های مبتنی بر GPU نیازمند نصب Nvidia Container Toolkit و اجرای Docker با فلگ‌های اضافی است. این آموزش نحوه تنظیم Nvidia Container Toolkit، اجرای Docker برای بارهای کاری GPU و نصب Miniconda جهت مدیریت محیط‌های Python را توضیح می‌دهد. این راهنما به‌طور خاص بر استفاده از PyTorch با GPU Droplets در DigitalOcean تمرکز دارد.
پیش‌نیازها
برای دنبال کردن این آموزش، شما به موارد زیر نیاز دارید:
• یک حساب کاربری در DigitalOcean Cloud.
• یک GPU Droplet.
چرا از GPU Droplet استفاده کنیم؟
GPU Droplets در DigitalOcean مجهز به کارت‌های NVIDIA H100 هستند که می‌توانید در لحظه آن‌ها را راه‌اندازی کنید—همین امروز با ایجاد یک GPU Droplet آن را امتحان کنید.
مرحله ۱ – تنظیم GPU Droplet
۱. ایجاد یک GPU Droplet – وارد حساب DigitalOcean خود شوید، یک GPU Droplet جدید ایجاد کنید، سیستم‌عامل آن را روی “AI/ML Ready v1.0” تنظیم کنید و یک GPU Plan انتخاب کنید.
مرحله ۱ – ورود به GPU Droplet و ایجاد کاربر جدید
۱. پس از ایجاد GPU Droplet، وارد کنسول آن شوید.
۲. ایجاد کاربر جدید (توصیه‌شده) – به‌جای استفاده از کاربر root برای همه کارها، بهتر است برای امنیت بیشتر یک کاربر جدید ایجاد کنید:
adduser do-shark  
usermod -aG sudo do-shark  
su do-shark  
cd ~/
مرحله ۲ – نصب Nvidia Container Toolkit
استفاده از کانتینرها برای پردازش‌های GPU نیازمند نصب Nvidia Container Toolkit و اجرای Docker با فلگ‌های اضافی است.
نصب Toolkit و Docker
Nvidia Container Toolkit جایگزین نسخه‌ی قدیمی‌تر nvidia-docker شده است. برای نصب Toolkit و Docker، از دستور زیر استفاده کنید:
sudo apt-get install docker.io nvidia-container-toolkit
فعال‌سازی Nvidia Container Runtime
برای فعال‌سازی Nvidia Container Runtime، این دستور را اجرا کنید:
sudo nvidia-ctk runtime configure –runtime=docker
ری‌استارت کردن Docker
بعد از فعال‌سازی runtime، باید Docker را ری‌استارت کنید تا تغییرات اعمال شود:
sudo systemctl restart docker
مرحله ۳ – اجرای کانتینر PyTorch (تک نود)
هنگام اجرای PyTorch در یک کانتینر، Nvidia توصیه می‌کند که از برخی فلگ‌های Docker برای تخصیص مناسب حافظه استفاده کنید:
–gpus all –ipc=host –ulimit memlock=-1 –ulimit stack=67108864
این فلگ‌ها چه کاری انجام می‌دهند؟
–gpus all → دسترسی به GPU را برای کانتینر فعال می‌کند.
–ipc=host → اجازه می‌دهد که کانتینر از IPC namespace میزبان استفاده کند.
–ulimit memlock=-1 → محدودیت memory lock را حذف می‌کند.
–ulimit stack=67108864 → حداکثر اندازه stack را روی ۶۴MB تنظیم می‌کند.
تست PyTorch در محیط کانتینری
برای اطمینان از اینکه PyTorch به‌درستی در کانتینر اجرا می‌شود، دستور زیر را اجرا کنید:
sudo docker run –rm -it –gpus all –ipc=host –ulimit memlock=-1 –ulimit stack=67108864 nvcr.io/nvidia/pytorch:24.08-py3 python3 -c “import torch;print(‘CUDA available:’, torch.cuda.is_available())”
خروجی مورد انتظار:
اگر همه چیز به‌درستی کار کند، خروجی زیر را مشاهده خواهید کرد که تأیید می‌کند CUDA در دسترس است:
=============  
== PyTorch ==  
=============  
NVIDIA Release 24.08 (build 107063150)  
PyTorch Version 2.5.0a0+872d972  
…  
CUDA available: True  
این نتیجه نشان می‌دهد که PyTorch با CUDA در محیط کانتینری به‌درستی اجرا شده است.
مرحله ۴ – اجرای کانتینر PyTorch (چند نودی)
برای پیکربندی چند نودی، از همان آرگومان‌های پایه‌ی تنظیمات تک‌نودی استفاده کنید، اما bind mount‌های اضافی را برای کشف دستگاه‌های شبکه‌ی GPU Fabric و توپولوژی NCCL اضافه کنید:
–gpus all –ipc=host –ulimit memlock=-1 –ulimit stack=67108864 –network=host –volume /dev/infiniband:/dev/infiniband –volume /sys/class/infiniband/:/sys/class/infiniband/ –device /dev/infiniband/:/dev/infiniband/ -v /etc/nccl.conf:/etc/nccl.conf -v /etc/nccl:/etc/nccl
توضیح فلگ‌ها:
–gpus all → دسترسی به تمام GPU‌های موجود در کانتینر را فعال می‌کند.
–ipc=host → از IPC namespace میزبان استفاده می‌کند که باعث بهبود ارتباط بین پردازش‌ها می‌شود.
–ulimit memlock=-1 → محدودیت memory lock را حذف می‌کند.
–ulimit stack=67108864 → حداکثر اندازه stack را روی ۶۴MB تنظیم می‌کند.
–network=host → کانتینر را درون stack شبکه‌ی میزبان اجرا می‌کند.
–volume /dev/infiniband:/dev/infiniband → دستگاه‌های InfiniBand را درون کانتینر mount می‌کند.
–volume /sys/class/infiniband/:/sys/class/infiniband/ → اطلاعات سیستمی InfiniBand را درون کانتینر mount می‌کند.
–device /dev/infiniband/:/dev/infiniband/ → به کانتینر اجازه دسترسی به دستگاه‌های InfiniBand را می‌دهد.
-v /etc/nccl.conf:/etc/nccl.conf → فایل پیکربندی NCCL (کتابخانه ارتباطات جمعی انویدیا) را mount می‌کند.
-v /etc/nccl:/etc/nccl → دایرکتوری NCCL را برای پیکربندی‌های اضافی mount می‌کند.
تست PyTorch در محیط چند نودی
برای بررسی صحت عملکرد PyTorch در محیط کانتینری چند نودی، دستور زیر را اجرا کنید:
sudo docker run –rm -it –gpus all –ipc=host –ulimit memlock=-1 –ulimit stack=67108864 –network=host –volume /dev/infiniband:/dev/infiniband –volume /sys/class/infiniband/:/sys/class/infiniband/ –device /dev/infiniband/:/dev/infiniband/ -v /etc/nccl.conf:/etc/nccl.conf -v /etc/nccl:/etc/nccl nvcr.io/nvidia/pytorch:24.08-py3 python3 -c “import torch;print(‘CUDA available:’, torch.cuda.is_available())”
خروجی مورد انتظار:
اگر همه چیز درست باشد، خروجی باید تأیید کند که CUDA در محیط چند نودی فعال است:
=============  
== PyTorch ==  
=============  
NVIDIA Release 24.08 (build 107063150)  
PyTorch Version 2.5.0a0+872d972  
…  
CUDA available: True  
مرحله ۵ – نصب Miniconda
Miniconda نسخه‌ای سبک از Anaconda است که برای مدیریت محیط‌های Python بهینه شده است. برای نصب Miniconda، مراحل زیر را دنبال کنید:
دانلود و نصب Miniconda
با اجرای دستورات زیر، Miniconda را دانلود و نصب کنید:
mkdir -p ~/miniconda3  
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3  
rm -rf ~/miniconda3/miniconda.sh  
راه‌اندازی اولیه‌ی Miniconda
~/miniconda3/bin/conda init bash  
اعمال تغییرات و ورود مجدد به سیستم
exit  
سپس، مجدداً به عنوان کاربر do-shark وارد شوید:
su do-shark  
تأیید نسخه‌ی conda
conda –version  
خروجی مورد انتظار:
conda 24.7.1  
این خروجی نشان می‌دهد که Miniconda به‌درستی نصب شده است.
مرحله ۶ – راه‌اندازی محیط PyTorch با Miniconda
با نصب Miniconda، حالا می‌توانیم یک محیط Python مخصوص PyTorch راه‌اندازی کنیم.
۱. ایجاد و فعال‌سازی محیط جدید
ابتدا یک محیط مجزا برای PyTorch ایجاد کنید و آن را فعال کنید:
conda create -n torch python=3.10  
conda activate torch  
۲. نصب PyTorch با پشتیبانی از CUDA
برای نصب PyTorch همراه با پشتیبانی از CUDA، دستور زیر را اجرا کنید:
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia  
نتیجه‌گیری
شما با موفقیت Nvidia Container Toolkit و Miniconda را روی GPU Droplet در DigitalOcean نصب کردید. اکنون آماده هستید که PyTorch را در محیطی کانتینری شده با پشتیبانی از GPU اجرا کنید.
برای اطلاعات بیشتر، می‌توانید مستندات رسمی Nvidia Deep Learning Containers و PyTorch را بررسی کنید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *