Graphcore's Poplar® SDK برای توسعه‌دهندگان از طریق Docker Hub در دسترس است و Graphcore به برنامه Verified Publisher Docker می‌پیوندد. همراه با Docker، ما پشته نرم‌افزار خود را به‌عنوان تصاویر کانتینر توزیع می‌کنیم، و به توسعه‌دهندگان این امکان را می‌دهیم تا به راحتی برنامه‌های ML را روی سیستم‌های Graphcore IPU بسازند، مدیریت و استقرار دهند. استفاده کنید. بیش از یک سال پیش مجموعه ای از کانتینرهای Docker از پیش ساخته شده را برای کاربران معرفی کردیم. اکنون، به عنوان بخشی از مأموریت خود برای ایجاد نوآوری، Poplar SDK، PyTorch برای IPU، TensorFlow برای IPU و Tools را به طور کامل در دسترس همه در جامعه Docker Hub قرار می دهیم. برای شروع.

چرا Docker برای جامعه ما بسیار مهم است

Docker به منبع اصلی برای کشیدن تصاویر کانتینر تبدیل شده است – طبق آخرین گزارش فهرست، در مجموع 396 میلیارد همه موارد موجود بوده است. -زمان به داکر هاب فشار می آورد. علاوه بر این، Docker Hub یکی از ابزارهای توسعه‌دهنده « مورد علاقه‌ترین، دوست‌داشتنی‌ترین و استفاده‌شده‌ترین» است که بر اساس «نظرسنجی سرریز پشته 2021» که 80000 توسعه‌دهنده به آن پاسخ داده‌اند، باقی می‌ماند. گردش‌های کاری توسعه برنامه‌ای که در سیستم‌های IPU با ارائه محیط‌های زمان اجرا بسته‌بندی شده برای برنامه‌هایی که با استفاده از PyTorch، TensorFlow یا مستقیماً با Poplar SDK Graphcore ساخته شده‌اند، مستقر می‌شوند. برنامه های کاربردی کانتینری قابلیت حمل و نقل بیشتر برنامه ها را با اجرای مداوم و تکرارپذیر فراهم می کنند و یک عامل مهم برای بسیاری از چارچوب های MLOps هستند.

چه چیزی برای توسعه دهندگان در دسترس است؟ IPU (واحد پردازش اطلاعات)، به طور خاص برای برنامه های هوشمند ماشین. Poplar زنجیره ابزار گراف Graphcore است که در هسته محیط توسعه نرم افزار با استفاده آسان و انعطاف پذیر ما قرار دارد که به طور کامل با چارچوب های استاندارد یادگیری ماشین ادغام شده است تا توسعه دهندگان بتوانند به راحتی مدل های موجود را منتقل کنند. برای توسعه دهندگانی که خواهان کنترل کامل برای بهره برداری از حداکثر عملکرد از IPU هستند، Poplar برنامه نویسی مستقیم IPU را در Python و C++ از طریق PopART™ (Poplar Advanced Runtime) فعال می کند.

تصاویر Poplar SDK ما را می توان از طریق مخازن زیر استخراج کرد: Poplar SDK – حاوی Poplar، PopART و ابزارهایی برای تعامل با دستگاه‌های IPU 

  • PyTorch برای IPU – حاوی همه چیز در مخزن Poplar SDK با PyTorch از پیش نصب‌شده
  • شامل
  • 9[19011]T
  • برای IPU0 می‌باشد. همه چیز در مخزن Poplar SDK با TensorFlow 1 یا 2 از پیش نصب شده
  • Tools – حاوی ابزارهای مدیریتی و تشخیصی برای دستگاه‌های IPU
  • و به‌عنوان بخشی از برنامه Docker Verified Publisher، نرخ‌های کانتینر Graphcore از نرخ تصویر کانتینر استخراج شده است. محدود کننده – به این معنی که توسعه‌دهندگان بدون توجه به اشتراک Docker Hub، درخواست‌های نامحدودی برای تصویر کانتینر برای Poplar دارند. همه چیزهایی که برای اجرای مدل‌ها در IPU در یک سیستم فایل کامل لازم است (یعنی Graphcore's Poplar® SDK، محیط زمان اجرا، ابزارهای سیستم، تنظیمات و کتابخانه ها). برای استفاده از این تصاویر و اجرای کد IPU، باید مراحل زیر را انجام دهید:

    1. Docker را روی دستگاه میزبان نصب کنید
    2. تصاویر ظرف Poplar SDK Graphcore را از Docker Hub
    3 بکشید. دسترسی به IPU ها را آماده کنید
    4. دسترسی IPU را با Docker container
    5 تأیید کنید. نمونه کد برنامه در IPUها

    نصب Docker در دستگاه میزبان

    نصب داکر بر اساس سیستم عامل، نسخه و پردازنده متفاوت است.

    می‌توانید راهنمای شروع Docker را دنبال کنید.

    تصاویر کانتینر SDK Graphcore's Poplar را از Docker Hub بکشید

    پس از نصب Docker، می‌توانید فرمان‌هایی را برای دانلود تصاویر میزبانی شده ما از Docker Hub اجرا کنید و در دستگاه میزبان اجرا کنید. . تصاویر ظرف Poplar SDK را می توان از مخزن Graphcore Poplar در Docker Hub بیرون کشید.

    چهار مخزن وجود دارد و این مخازن ممکن است حاوی چندین تصویر بر اساس نسخه SDK، سیستم عامل و معماری باشند. ]graphcore/tensorflow

  • graphcore/poplar
  • graphcore/tools
  • با برداشتن از مخزن چارچوب، آخرین نسخه SDK کامپایل شده برای پردازنده میزبان AMD به طور پیش‌فرض دانلود می‌شود. استفاده از تصویر:

    docker pull graphcore/tensorflow

    اگر می‌خواهید ساخت خاصی را برای یک نسخه SDK خاص انتخاب کنید و بر اساس پردازنده آن را پیکربندی کنید. برچسب‌های تصویر Docker.

    آماده دسترسی به IPUها

    برای صحبت با IPUها در POD، باید اتصال بین ماشین‌های میزبان و IPU را پیکربندی کنیم – IPU over Fabric (IPUoF). اطلاعاتی که Poplar برای دسترسی به دستگاه‌ها نیاز دارد، می‌تواند از طریق یک فایل پیکربندی IPUoF ارسال شود که به طور پیش‌فرض در فهرستی در فهرست اصلی شما (~/.ipuof.conf.d) نوشته می‌شود. فایل های پیکربندی زمانی مفید هستند که میزبان های Poplar به کنترلر V-IPU دسترسی مستقیم به شبکه ندارند (به عنوان مثال به دلایل امنیتی).

    اگر از Graphcloud استفاده می کنید، هر بار که کاربر جدیدی ایجاد می شود و به POD اضافه می شود، فایل پیکربندی پیش فرض IPUoF ایجاد می شود. بررسی کنید که آیا فایل‌های .conf در داخل آن پوشه وجود دارد (به عنوان مثال، ~/.ipuof.conf.d/lr21-3-16ipu.conf). اگر این تنظیمات را دارید، می‌توانید به مرحله بعدی بروید.

    اگر در دسترس نیست، باید Poplar را برای اتصال به سرور V-IPU با دنبال کردن راهنمای V-IPU پیکربندی کنید: شروع به کار. توجه داشته باشید که فایل پیکربندی IPUoF خود را در پوشه ~/.ipuof.conf.d برای اجرای اسکریپت‌ها در بخش بعدی ذخیره کنید.

    دسترسی به IPU را با ظرف Docker تأیید کنید

    حالا که دارید ظرف آماده است، می‌توانید بررسی کنید که آیا IPU از داخل کانتینر قابل دسترسی است یا خیر.

    دستگاه‌های IPU را در متن کانتینر با اجرای موارد زیر فهرست کنید:

    docker run --rm --ulimit memlock=-1:-1 --net=host --cap-add=IPC_LOCK --device=/dev/infiniband --ipc=host -v ~/.ipuof.conf.d/: /etc/ipuof.conf.d -it graphcore/tools gc-info -l

    اجرای نمونه برنامه TensorFlow

    ابتدا کد را از مخزن آموزش Graphcore در GitHub دریافت کنید. ]git clone https://github.com/graphcore/tutorials.git

    $ 19$ 39$19011 یک محیط ایزوله است. خالی می شود و به سیستم فایل دستگاه میزبان دسترسی نخواهد داشت. برای استفاده از داده ها از دستگاه میزبان خود، داده ها باید در ظرف Docker قابل دسترسی باشند.

    می‌توانید با نصب دایرکتوری‌ها به‌عنوان حجم برای اشتراک‌گذاری داده‌ها بین دستگاه میزبان و محیط کانتینر Docker، داده‌ها را در دسترس قرار دهید.

    یک الگوی رایج هنگام کار با محیط توسعه مبتنی بر Docker این است که دایرکتوری فعلی را در کانتینر سوار کنید (همانطور که در بخش 2.2، نصب دایرکتوری‌ها از میزبان توضیح داده شد)، سپس فهرست راهنمای کار را در داخل کانتینر با  تنظیم کنید. -w . به عنوان مثال، -v «$(pwd):/app» -w /app.

    برای اجرای مثال mnist در ظرف TensorFlow، می‌توانید از دستور زیر استفاده کنید که مخزن آموزشی را در آن نصب می‌کند. محفظه docker و آن را اجرا می کند.

    docker run --rm --ulimit memlock=-1:-1 --net=host --cap-add=IPC_LOCK --device =/dev/infiniband --ipc=host -v ~/.ipuof.conf.d/:/etc/ipuof.conf.d -it -v "$(pwd):/app" -w /app graphcore/tensorflow:2 python3 simple_applications/tensorflow2/mnist/mnist.py

    این پست وبلاگ مهمان ابتدا در اینجا ظاهر شد.