سلام دوستان! امروز میخواهیم راجع به فعالسازی دسترسی به 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 استفاده شود.