فعال‌سازی دسترسی به GPU با Docker Compose

gpu access docker compose
03 تیر 1404


سلام دوستان! امروز می‌خواهیم راجع به فعال‌سازی دسترسی به GPU در Docker Compose صحبت کنیم. حتماً می‌دانید که استفاده از GPU برای پردازش‌های سنگین کاملاً ضروری است، به‌خصوص وقتی که کار با یادگیری ماشین و پروژه‌های عمیق یادگیری انجام می‌دهید. حالا، بیایید ببینیم چطور می‌توانیم این کار را با Docker Compose انجام دهیم.


اول از همه، مطمئن شوید که در سیستم شما درایور NVIDIA نصب شده و همچنین Docker و Docker Compose هم به‌روز هستند. در واقع، برای اینکه بتوانید از قابلیت‌های GPU استفاده کنید، نیاز است که از NVIDIA Container Toolkit استفاده کنید. این ابزار به Docker اجازه می‌دهد که به GPU‌ها دسترسی پیدا کند.


بعد از نصب درایور و ابزارهای لازم، مرحله بعدی این است که فایل Docker Compose خود را تنظیم کنید. در این فایل، باید از تنظیمات خاصی برای فعال‌سازی GPU استفاده کنید. یکی از این تنظیمات این است که از کلید `deploy` و گزینه `resources` استفاده کنید و مقدار مورد نظر را برای `reservations` و `limits` مشخص کنید.


حالا بیایید نگاهی به یک نمونه فایل docker-compose.yml بیندازیم که این تنظیمات را شامل می‌شود. بعد از دیدن کد، به توضیحات بیشتری خواهیم پرداخت تا کاملاً متوجه شوید چطور کار می‌کند.


version: '3.8'
services:
my_service:
image: my_gpu_image:latest
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
limits:
devices:
- capabilities: [gpu]
runtime: nvidia

توضیحات کد



version: '3.8'

نسخه Docker Compose که ما استفاده می‌کنیم.

services:

بخشی که ما خدمات مختلف را تعریف می‌کنیم.

my_service:

نام خدمات ما، که می‌توانید آن را به دلخواه تغییر دهید.

image: my_gpu_image:latest

تصویری که قرار است استفاده کنیم. این تصویر باید از قبل ساخته شده باشد و قابلیت استفاده از GPU را داشته باشد.

deploy:

بخشی که در آن منابع و تنظیمات لازم برای اجرای خدمات را مشخص می‌کنیم.

resources:

تعریف منابع وابسته به خدمت.

reservations:

اینجا مشخص می‌کنیم که چه نوع منابعی نیاز داریم.

devices:

اینجا تنظیمات خاص دستگاه‌ها و قابلیت‌های آن‌ها را مشخص می‌کنیم.

capabilities: [gpu]

اینجا مشخص می‌کنیم که این تصویری که استفاده می‌شود باید به GPU‌ها دسترسی داشته باشد.

runtime: nvidia

در اینجا ما مشخص می‌کنیم که برای این تصویر از runtime NVIDIA استفاده شود.

سوالات متداول

؟

چطور می‌توانم از GPU در Docker Compose استفاده کنم؟

؟

آیا هر تصویری می‌تواند از GPU استفاده کند؟

؟

چطور می‌توانم با خطاهای مربوط به GPU در Docker مواجه شوم؟

؟

آیا می‌توانم چندین GPU را از طریق Docker Compose استفاده کنم؟