vpnm.me vpnmakers خرید filter shekan خرید وی پی ان خرید فیلترشکن موبایل فیلتر شکن پرسرعت
پشتیبانی از GPU WSL 2 برای Docker Desktop در پردازندههای گرافیکی NVIDIA
یک سال از زمانی که بن در مورد پشتیبانی از Nvidia در Docker Desktop نوشت میگذرد. در آن زمان، شرکت در برنامه Windows Insider، استفاده از درایورهای Beta CUDA و استفاده از ساخت پیش نمایش فناوری Docker Desktop ضروری بود. امروز، همه چیز تغییر کرده است:
در سمت سیستم عامل، کاربران Windows 11 اکنون میتوانند بدون شرکت در برنامه Windows Insider، GPU خود را فعال کنند. کاربران ویندوز 10 هنوز باید ثبت نام کنند.
درایورهای Nvidia CUDA منتشر شده اند.
در آخر، پشتیبانی از GPU در Docker Desktop ادغام شده است (در واقع از نسخه 3.1).
Nvidia از اصطلاح نزدیک به بومی استفاده کرد برای توصیف عملکرد مورد انتظار.
تصاویر داکر را از کجا پیدا کنیم
تصاویر پایه داکر در https://hub.docker.com/r/nvidia/cuda میزبانی می شوند. پروژه اصلی در https://gitlab.com/nvidia/container-images/cuda واقع شده است.
آنچه در آنها وجود دارد
ابزار nvidia-smi به کاربران اجازه می دهد اطلاعات را در مورد در دسترس جستجو کنند. دستگاهها.
$ docker run -it --gpus=all --rm nvidia/cuda:11.4.2-base-ubuntu20.04 nvidia-smi
سه شنبه 7 دسامبر 2021، 13:25:19
+------------------------------------------------ -----------------------------+
| NVIDIA-SMI 510.00 نسخه درایور: 510.06 نسخه CUDA: 11.6 |
|------------------------------------------------ -----------------------------+
| نام پردازنده گرافیکی Persistence-M| Bus-Id Disp.A | فرار Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| حافظه-استفاده | GPU-Util Compute M. |
| | | MIG M. |
|==============================+================== =====+=======================|
| 0 NVIDIA GeForce ... روشن | 00000000:01:00.0 تخفیف | N/A |
| N/A 0C P0 13W / N/A | 132 مگابایت / 4096 مگابایت | N/A پیش فرض |
| | | N/A |
+------------------------------------------------ -----------------------------+
+------------------------------------------------ -----------------------------+
| فرآیندها: |
| GPU GI CI PID نوع نام فرآیند حافظه GPU |
| شناسه استفاده |
|================================================= =============================|
| هیچ فرآیند در حال اجرا یافت نشد |
+------------------------------------------------ ----------------------------
تابع dmon nvidia-smi امکان نظارت بر پارامترهای GPU را فراهم می کند:
$ docker exec -ti $(docker ps -ql) bash
root@7d3f4cbdeabb:/src# nvidia-smi dmon
# gpu pwr gtemp mtemp sm mem enc dec mclk pclk
# Idx W C C % % % % MHz MHz
0 29 69 - - - 0 0 4996 1845
0 30 69 - - - 0 0 4995 1844
ابزار nbody یک نمونه CUDA است که حالت محک زدن را ارائه می دهد.
$ docker run -it --gpus=all --rm nvcr.io/nvidia/k8s/ cuda-sample:nbody nbody -معیار
...
> 1 دستگاه های مورد استفاده برای شبیه سازی
دستگاه GPU 0: "Turing" با قابلیت محاسبه 7.5
> محاسبه دستگاه CUDA 7.5: [NVIDIA GeForce GTX 1650 Ti]
16384 بدن، کل زمان برای 10 تکرار: 25.958 میلیثانیه
= 103.410 میلیارد تعامل در ثانیه
= 2068.205 GFLOP/s تک دقیق با 20 فلاپ در هر تعامل
مقایسه سریع با یک CPU مرتبه متفاوتی از عملکرد را نشان می دهد. GPU 2000 برابر سریعتر است:
> شبیه سازی با CPU
4096 بدن، کل زمان برای 10 تکرار: 3221.642 میلیثانیه
= 0.052 میلیارد تعامل در ثانیه
= 1.042 GFLOP/s تک دقیق با 20 فلاپ در هر تعامل
با یک GPU غیر مجازی چه کاری می توانید انجام دهید؟ این مورد برای تجزیه و تحلیل هش است. dizcza تصاویر هش کت مبتنی بر nvidia-docker خود را در هاب داکر میزبانی کرد. این تصویر به صورت جادویی روی دسکتاپ Docker کار میکند!
$ docker run -it --gpus=all --rm dizcza/docker-hashcat //bin/bash
root@a6752716788d:~# hashcat -I
hashcat (v6.2.3) در حالت اطلاعات باطن شروع می شود
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
اطلاعات CUDA:
==========
CUDA.Version.: 11.6
شناسه دستگاه پشتیبان شماره 1
نام...........: NVIDIA GeForce GTX 1650 Ti
پردازنده(های)...: 16
ساعت ..........: 1485
حافظه.مجموع...: 4095 مگابایت
حافظه.رایگان....: 3325 مگابایت
PCI.Addr.BDFe..: 0000:01:00.0
این پروژه در https://github.com/jameswmccarty/CUDA-Fractal-Flames از CUDA برای تولید فراکتال ها استفاده می کند. دو مرحله برای ساخت و اجرا در لینوکس وجود دارد. بیایید ببینیم آیا می توانیم آن را روی دسکتاپ Docker اجرا کنیم یا خیر. یک Dockerfile ساده بدون هیچ چیز فانتزی به این کار کمک می کند.
# syntax = docker/dockerfile:1.3-labs
از nvidia/cuda:11.4.2-base-ubuntu20.04
به روز رسانی apt -y را اجرا کنید
RUN DEBIAN_FRONTEND=noninteractive apt -yq install git nano libtiff-dev cuda-toolkit-11-4
RUN git clone --depth 1 https://github.com/jameswmccarty/CUDA-Fractal-Flames /src
WORKDIR /src
RUN sed 's/4736/1024/' -i fractal_cuda.cu # تصویر تولید شده را کوچکتر کنید
RUN make
و سپس میتوانیم بسازیم و اجرا کنیم:
$ docker build. -t cudafractal
$ docker run --gpus=all -ti --rm -v ${PWD}:/tmp/ cudafractal ./fractal -n 15 -c test.coeff -m -15 -M 15 -l -15 -L 15[19659011]توجه داشته باشید که --gpus=all فقط برای فرمان run در دسترس است. اضافه کردن مراحل فشرده GPU در طول ساخت امکان پذیر نیست.
در اینجا یک تصویر مثال آورده شده است:
یادگیری ماشینی
خب واقعاً، نگاه کردن به استفاده از GPU بدون توجه به یادگیری ماشین یک کار خواهد بود. . تصویر tensorflow:latest-gpu میتواند از GPU در Docker Desktop استفاده کند. من به سادگی به وبلاگ Anca در اوایل امسال اشاره می کنم. او یک مثال تنسورفلو را توصیف کرد و آن را در فضای ابری مستقر کرد: https://www.docker.com/blog/deploy-gpu-accelerated-applications-on-amazon-ecs-with-docker-compose/
نتیجه: چه آیا مزایایی برای توسعهدهندگان دارد؟
در Docker، ما میخواهیم یک راهحل کلیدی برای توسعهدهندگان ارائه دهیم تا گردشهای کاری خود را بهطور یکپارچه اجرا کنند: , 10 مه. DockerCon یک رویداد مجازی رایگان و یک روزه است که یک تجربه منحصر به فرد برای توسعه دهندگان و تیم های توسعه است که در حال ساختن نسل بعدی برنامه های کاربردی مدرن هستند. اگر می خواهید در مورد چگونگی رفتن سریع از کد به ابر و نحوه حل چالش های توسعه خود بیاموزید، DockerCon 2022 محتوای زنده جذابی را ارائه می دهد تا به شما در ساخت، اشتراک گذاری و اجرای برنامه های کاربردی خود کمک کند. همین امروز در https://www.docker.com/dockercon/