۲۱ اسفند ۱۳۹۸ . ۰۱:۳۱

چرا پردازنده‌های عصبی مورد توجه قرار گرفته‌اند؟

چرا پردازنده‌های عصبی مورد توجه قرار گرفته‌اند؟

شبکه‌های عصبی و یادگیری ماشینی از تازه‌ترین موضوعات مورد توجه در دنیای پردازنده‌های موبایل محسوب می‌شوند. پردازنده‌های A11 Bionic شرکت اپل، واحد پردازش تصویر (Image Processing Unit) گوگل در گوشی‌های Pixel 2 و HiSilicon Kirin 970 شرکت هوآوی همگی از قابلیت پشتیبانی سخت‌افزاری این فناوری‌های نوظهور برخوردارند.

اکثر بازیکنان اصلی در حوزه مذکور روی این موضوع تاکید دارند که یادگیری ماشینی نیازمند یک سخت‌افزار اختصاصی است. شرکت‌های مختلف، این سخت‌افزار اختصاصی را با نام‌های متفاوتی معرفی می‌کنند، از جمله واحد پردازش عصبی (Neural Processing Unit) هوآوی، IPU گوگل، موتور پردازش عصبی (Neural Processing Engine) کوالکام یا موتور عصبی (Neural Engine) اپل. اما گروهی از کارشناسان اعتقاد دارند که تمام این عناوین صرفا نام‌های تجملاتی برای پردازنده‌های سیگنال دیجیتال (DSP) هستند. DSP یک سخت‌افزار اختصاصی است که توابع ریاضی پیچیده‌ای را به‌سرعت اجرا می‌کند. آخرین تراشه‌های سفارشی‌سازی شده امروزی به‌طور اختصاصی در زمینه عملکردهای یادگیری ماشینی و شبکه عصبی بهینه‌سازی شده‌اند که متداول‌ترین آن‌ها محاسبات ضرب نقطه‌ای (Dot Product) و ضرب ماتریس (Matrix Multiply) هستند.

صرف‌نظر از این که فروشندگان در این زمینه چه می‌گویند، رویکرد مذکور اشکالاتی هم دارد. شبکه‌سازی عصبی یک حوزه نوظهور است و این امکان وجود دارد که مناسب‌ترین نوع عملیات برای موارد استفاده خاص، با ادامه تحقیقات دچار تغییر شوند. به‌عبارت دیگر، این طراحی‌های اولیه به جای آن که یک ابزار را برای آینده آماده کنند، می‌توانند به‌سرعت قدیمی شوند. سرمایه‌گذاری روی تراشه‌های اولیه، فرآیند پرهزینه‌ای است که به‌احتمال زیاد با آشکار شدن بهترین موارد استفاده از تلفن همراه، نیازمند بازنگری خواهد بود.

شرکت‌های طراحی‌کننده تراشه‌های سیلیکونی و OEMها تصمیم ندارند در این مرحله، برای محصولات متوسط یا سطح پایین روی این مدارهای پیچیده سرمایه‌گذاری کنند، بنابراین پردازنده‌های اختصاصی مذکور فعلا تنها برای گران‌ترین تلفن‌های هوشمند رزرو شده‌اند. با این‌حال مولفه‌های پردازنده جدید ARM که انتظار می‌رود سال آینده در SoCها به‌کار برده شوند، به پیاده‌سازی الگوریتم‌های کارآمدتر یادگیری ماشینی بدون نیاز به پردازنده اختصاصی، کمک خواهند کرد.

یادگیری ماشینی در سال ۲۰۱۸

شرکت ARM طراحی‌های Cortex-A75/A55 CPU و Mali-G72 GPU خود را امسال معرفی کرد. در حالی که بخش عمده‌ای از مراسم رونمایی به فناوری جدید DynamIQ این شرکت اختصاص داشت، این سه محصول جدید همگی از قابلیت پشتیبانی الگوریتم‌های کارآمدتر یادگیری ماشینی هم برخوردارند.

شبکه‌های عصبی غالبا به داده‌های بسیار دقیق نیاز ندارند، خصوصا پس از یادگیری. به‌عبارت دیگر به جای ورودی‌های بزرگ ۳۲ یا ۶۴ بیتی، محاسبات می‌توانند روی داده‌های ۱۶ و یا حتی ۸ بیتی انجام شوند. این ویژگی باعث صرفه‌جویی در ملزومات حافظه و کاشه شده و تا حدود زیادی پهنای باند حافظه (که یکی از محدودیت‌های همیشگی در SoC تلفن‌های هوشمند محسوب می‌شود) را تقویت می‌کند.

شرکت ARM به‌عنوان بخشی از معماری ARMv8.2-A برای پردازنده‌های Cortex-A75 و Cortex-A55، پشتیبانی از محاسبات اعشاری ۱۶ بیتی (FP16) و ضرب نقطه‌ای عدد صحیح (INT8) را با NEON معرفی کرد. معرفی FP16، مرحله تبدیل به FP32 را از معماری قبلی حذف نموده که باعث کاهش سربار و افزایش سرعت پردازش می‌شود.

عملیات جدید INT8 این شرکت هم چند دستورالعمل را در یک دستورالعمل ترکیب می‌کند تا تاخیر را کاهش دهد. با پیاده‌سازی خط‌لوله انتخابی NEON روی A55، عملکرد INT8 می‌تواند تا ۴ برابر نسبت به A53 بهبود پیدا کند که باعث می‌شود هسته به گزینه‌ای با بازدهی مصرف برق عالی برای انجام محاسبات یادگیری ماشینی با دقت پایین تبدیل شود.

در سمت GPU، معماری Bifrost شرکت ARM خصوصا برای تسهیل ارتباط سیستم، طراحی شده بود. به‌عبارت دیگر Mali-G71/G72 می‌توانند حافظه کاشه را مستقیما با CPU به‌اشتراک گذاشته و سرعت محاسبات را افزایش دهند، زیرا به‌این ترتیب امکان همکاری نزدیک‌تر CPU و GPU فراهم می‌شود. با در نظر گرفتن این واقعیت که GPUها برای پردازش حجم عظیمی از محاسبات موازی طراحی شده‌اند، یک پیوند نزدیک با CPU می‌تواند ترکیب ایده‌آلی را برای پردازش الگوریتم‌های یادگیری ماشینی به وجود ‌آورد.

ARM با Mali-G72 جدیدتر خود چند مورد بهینه‌سازی را برای بهبود عملکرد محاسباتی اعمال کرده است که FMA (Fused Multiply-Add که منجر به افزایش سرعت ضرب نقطه‌ای می‌شود)، همگشت (Convolutions) و ضرب ماتریسی را در بر می‌گیرند. تمامی این موارد برای الگوریتم‌های یادگیری ماشینی ضروری هستند. G72 همچنین تا ۱۷ درصد بازدهی انرژی بالاتری را برای دستورالعمل‌های FP32 و FP16 فراهم می‌کند که یک برتری مهم در کاربردهای موبایل است.

به‌طور خلاصه، SoCهای موبایلی که در سال ۲۰۱۸ بر اساس طراحی‌های Cortex-A75، Cortex-A55 و Mali-G72 ساخته می‌شوند، سطحی از بهبود کارآیی را برای الگوریتم‌های یادگیری ماشینی به‌همراه می‌آورند، بدون آن که به مولفه دیگری نیاز داشته باشند. گرچه هنوز هیچ محصولی معرفی نشده، اما مطمئنا این بهبودها به تعدادی از SoCهای سال آینده کوالکام، مدیاتک، های‌سیلیکون و سامسونگ راه پیدا خواهند کرد.

کتابخانه‌های محاسباتی

در حالی که نسل بعدی فناوری‌ها با در نظر گرفتن یادگیری ماشینی طراحی شده‌اند، CPUها و GPUهای موبایل امروزی هم می‌توانند برای اجرای کاربردهای فناوری ماشینی مورد استفاده قرار گیرند. کتابخانه محاسباتی (Compute Library) تلاش‌های ARM را با هم ترکیب می‌کند. این کتابخانه یک مجموعه فراگیر از توابع برای پروژه‌های پردازش تصویر و دید کامپیوتری را به‌همراه چارچوب‌های کاری یادگیری ماشینی مانند TensorFlow گوگل، در بر می‌گیرد. هدف کتابخانه مذکور ایجاد کد قابل انتقالی است که بتواند روی پیکربندی‌های گوناگون سخت‌افزار ARM اجرا شود.

ARM تنها شرکتی نیست که به توسعه‌دهندگان امکان می‌دهد برای سخت‌افزارها کد قابل انتقال تولید کنند. کوالکام هم Hexagon SDK را معرفی کرده است تا در بهره‌گیری از قابلیت‌های DSP موجود در پلتفرم‌های موبایل اسنپ‌دراگون خود، به توسعه‌دهندگان کمک کند.

کوالکام شامل Symphony System Manager SDK است، که به‌منظور قدرت بخشیدن به محاسبات نامتجانس برای توسعه الگوریتم سطح پایین و پردازش تصویر/دیتا، شامل یک مجموعه از APIها با طراحی اختصاصی می‌شود. شاید کوالکام از یک واحد اختصاصی استفاده کند، اما در عین حال از DSP خود برای صدا، تصویر، ویدئو و سایر کاربردهای متداول گوشی هوشمند هم بهره می‌گیرد.

نیاز به پردازنده اختصاصی

اگر بعد از خواندن مطالب فوق تعجب کرده‌اید که چرا یک OEM باید خود را برای پیاده‌سازی یک مولفه سخت‌افزاری اختصاصی برای شبکه‌های عصبی به زحمت بیندازد، باید بگوییم که چنین سخت‌افزار سفارشی هنوز مزایای مهمی را فراهم می‌کند: عملکرد بالا و بازدهی مصرف برق. برای مثال هوآوی مدعی است که NPU سفارشی‌سازی شده‌اش در داخل Kirin 970 با توان عملیاتی ۱/۹۲ ترافلاپس برای FP16 رده‌بندی شده است. این بیش از سه برابر چیزی است که واحد پردازش گرافیکی Mali-G72 در Kirin 970 می‌تواند به آن برسد (حدود ۰/۶ ترافلاپس برای FP16).

اگرچه آخرین طراحی CPU و GPU شرکت ARM از بهبودهایی در زمینه بازدهی مصرف برق و عملکرد یادگیری ماشینی برخوردارند، اما سخت‌افزار بهینه‌سازی شده برای وظایف بسیار خاص و مجموعه محدودی از عملیات، همیشه بازدهی بیشتری خواهد داشت.

مساله مهم برای مصرف‌کنندگان این است که بهبود خط لوله پردازش در CPUها و GPUهای تولیدی سال آینده، منجر به افزایش بهبود یادگیری ماشینی حتی روی گوشی‌های ارزان‌تر خواهد شد که پردازنده شبکه‌ای عصبی اختصاصی ندارند. این موضوع در نهایت منجر به سرمایه‌گذاری و توسعه بیشتر از سوی سازندگان و موارد استفاده جالب‌تر برای مصرف‌کنندگان خواهد شد، که در واقع وضعیت برد-برد را برای کاربران فراهم می‌کند.