پردازنده عصبی (NPU) چیست و چرا مهم است؟

12 اسفند 1403 - خواندن 13 دقیقه - 302 بازدید



پردازنده های عصبی، سالیان متوالی در پردازنده های مبتنی بر ساختار و معماری ARM وجود داشته است، در ابتدا فقط در پلتفرم موبایل پردازنده های ARM موجود بوده و سپس، در نسخه های دسکتاپ معماری ARM و سپس x86 نیز وارد حیات شد، در سمت کامپیوتر سرورها، پردازنده های توانا در پردازش های هوش مصنوعی قبل تر وجود داشتند، اما مجدد نه به صورت تخصصی!، از برخی دلایل پیدایش پردازنده های مبتنی بر پردازش های هوش مصنوعی، مانند (NPU)، می توان به موارد زیر اشاره کرد:

  1. مدیریت بهتر منابع و بهینگی در مصرف انرژی
  2. عدم نیاز کاربر به اتصال دائم اینترنت، جهت پردازش های مبتنی بر هوش مصنوعی
  3. آزادسازی بار اضافه پردازشی، از پردازنده های مرکزی (CPU) و پردازنده های گرافیکی (GPU)
  4. تغییرات اساسی در عملکرد گیمینگ (Gaming) کاربران و موارد بیشتر

NPU چیست؟ ابتدا باید دو ساختار و معماری پایه و اصلی تمامی پردازنده های تجاری جهان را بشناسیم، زیرا از ادبیات اصلی و پیش نیاز پردازنده های هوش مصنوعی می باشد:

  1. معماری “x86”
  2. معماری “ARM”

به صورت کلی، تمامی پردازنده های تجاری حال حاضر در جهان، مبتنی بر دو نوع معماری پایه و اساسی می باشند و باتوجه به نوع معماری و ساختار اصلی، سازنده پردازنده، می تواند حول محور ساختار اصلی، اقدام به طراحی معماری انحصاری خود کند. این دو معماری ARM و x86 می باشند.

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

پردازنده های مبتنی بر معماری ARM:

پردازنده های مبتنی بر ساختار و معماری آرم، پردازنده هایی با مصرف انرژی بسیار پایین تر به نسبت پردازنده های x86 می باشند. معماری ARM، معماری تقویت شده و به روز شده و انحصاری، از خانواده مدل معماری کامپیوتری “Reduced Instruction Set Computing (RISC)” می باشد، یعنی از مجموعه دستورالعمل های ساده تر به نسبت مدل معماری کامپیوتری CISC برای پردازش پروسه ها استفاده می کند و خروجی این مدل از فرآیند، پردازنده های به شدت بهینه در مصرف انرژی می باشند، اما در مقابل پروسه های پیچیده، عموما دارای عملکردی ضعیف تر، به نسبت مدل معماری کامپیوتری CISC می باشند. بنیان گذار معماری ARM، شرکت “Acorn” می باشد و ARM به اختصار یعنی “Acorn RISC Machine”.

از انواع پردازنده های مبتنی بر معماری ARM می توان به دو گروه زیر اشاره کرد:

  1. شخصی سازی شده تحت گواهینامه ARM

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

  1. مبتنی بر ساختار اصلی ARM:

مجموعه پردازنده هایی که شرکت طراحی کننده، مجاز در ایجاد تغییرات ساختار اصلی پردازنده، مانند هسته های پردازشی نمی باشد و باید از میان هسته های پردازشی اصلی ARM گزینش کند، مانند انواع هسته های سری “Cortex”

اما شرکت های طراحی کننده، مانند سامسونگ، برای بخش های دیگر پردازنده های خود، از ساختار معماری های انحصاری خود، عموما مبتنی بر معماری منبع باز RISC-V استفاده می کنند، مانند بخش انحصاری "NPU". از انواع پردازنده های مبتنی بر ساختار اصلی ARM می توان به پردازنده شرکت های مطرح صنعت تکنولوژی و نیمه هادی زیر اشاره کرد:

Samsung و Qualcomm و Mediatek

پردازنده های مبتنی بر معماری x86:

پردازنده های مبتنی بر معماری x86، پردازنده هایی با مصرف انرژی بسیار بالا می باشند، مانند انواع پردازنده های اینتل و ای ام دی. معماری x86 معماری تقویت شده و به روز شده و انحصاری، از مدل معماری کامپیوتری “Complex Instruction Set Computing (CISC)” استفاده می کند، یعنی برای پردازش پروسه ها، از مجموعه دستورالعمل های پیچیده استفاده می کند. بنیان گذار معماری x86، شرکت اینتل می باشد.


ساختار سیستم روی چیپ ها را بشناسیم “(SOC) System On Chip”:

به دلیل پیشرفت ماشین های صنعت نیمه هادی، مانند ماشین های لیتوگرافی (ماشین های تولید قطعات نیمه هادی و پردازنده ها)، صنعت نیمه هادی دست خوش تغییرات بزرگ و بنیادی شده است. یکی از دستاوردهای بزرگ این پیشرفت ها، امکان ادغام بخش های پردازشی مختلف یک سیستم کامپیوتری داخل یک بخش واحد مجتمع می باشد، یعنی “SOC”. دو واحد پردازشی اصلی یک سیستم کامپیوتری، پردازنده مرکزی “CPU” و پردازنده گرافیکی “GPU” می باشد. ساختار “SOC” این امکان را فراهم می کند، تا این دو بخش اصلی پردازشی + بخش های دیگر، مانند میکرو پردازنده صدا و تصویر، میکرو پردازنده کنترلر ورودی و خروجی ها “I/O” و نسل جدید انواع پردازنده های تخصصی و یا به عبارتی Coprocessorها، مانند پردازنده عصبی “NPU” و بخش های متعدد دیگر پردازشی در یک چیپست مجتمع “Silicon Die” گردهم بیایند. این تکنولوژی باعث کاهش هزینه ها، مدیریت بهتر منابع و کاهش اتلاف انرژی می شود و در نهایت باعث افزایش بهره وری و عملکرد پردازشی می شود.

Coprocessor چیست؟

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

در واقع کوپروسسورها، پردازنده هایی اختصاصی، برای پردازش های کاملا مشخص و انحصاری می باشند و به غیر از نوع مشخص شده الگوریتم پردازشی خودشان، پردازش دیگری نمی توانند انجام دهند.

انواع کوپروسسور می تواند به موارد زیر اشاره کرد:

NPU, I/O Chip, Audio Chip, South Bridge Chip, North Bridge Chip

و بدانیم CPU و GPU جزو پردازنده های اصلی و به عبارتی پردازنده های General می باشند، زیرا در حال پردازش طیف وسیع و متفاوتی از پروسه ها، با الگوریتم های منطقی و محاسباتی گوناگون می باشند.


نمونه تصویر تئوری، از واحدهای تشکیل دهنده یک ساختار ‘’SOC’’:


نمونه تصویر واقعی، از یک پردازنده مبتنی بر ساختار SOC، مبتنی بر معماری x86 موبایل:


ساختار ماژولار چیپلت ها را بشناسیم “Chiplet Base”:

در ساختار SOC، طراح و توسعه دهنده پردازنده، بخش های متعدد اساسی پردازشی و محاسباتی را قادر بود در یک چیپست واحد و مجتمع کنار یکدیگر ادغام کند، در یک “Single Silicon Die”. این تکنولوژی و فرآیند در پردازنده های موبایل، مانند پردازنده موجود در تلفن های هوشمند جیبی و لپ تاپ ها و کنسول های بازی، در سالیان اخیر مورد استفاده قرار می گرفت و می گیرد، اما حال، با استفاده از تکنولوژی و ساختار نوین ماژولار “Chiplet”، توسعه دهندگان پردازنده، می توانند بخش های مختلف محاسباتی و پردازشی یک سیستم کامپیوتری “Processor Tile” را به صورت ماژولار و مستقل در کنار یکدیگر قرار دهند. مزیت این فرآیند، بهینه تر شدن مصرف انرژی و مدیریت به مراتب بهتر منابع می باشد، زیرا به دلیل جدا بودن چیپست ها از یکدیگر و اتصال آن ها با استفاده از یک مدار سیلیکونی مجتمع به یکدیگر، هر یک از چیپست ها، هنگامی که نیاز به استفاده از آن ها نباشد، به صورت کامل می تواند خاموش شود. پنج چیپست مختلف مستقل “Silicon Die” را تصور کنید، این پنج قسمت هر یک مستقل می باشد و با استفاده از یک مدار و گذرگاه پرسرعت سیلیکونی، می تواند با بخش های دیگر ارتباط برقرار کند، یکی از چیپست ها مثلا سری نسبتا جدید پردازنده های اینتل “Core Ultra 100”، اینتل فقط برای توسعه “CPU Tile” از فرآیند لیتوگرافی خودش، یعنی “Intel 4” استفاده کرده است و “Tile” (کاشی/بخش)های دیگر” با تکنولوژی لیتوگرافی شرکت نیمه هادی “TSMC” صورت گرفته است.

نکته مهم پردازنده های چند بخش: (Chiplet design) چیپلت ها در واقع ساختارهای ترکیبی هستند و هم زمان از ساختار “SOC” نیز پیروی می کنند.


نمونه تصویر تئوری، از واحدهای تشکیل دهنده یک ساختار ماژولار‘’Chiplet’’ (پردازنده موبایل Core Ultra 100)


حال پردازنده عصبی "NPU" چیست؟

پردازنده عصبی ‘’NPU’’ به اختصار ‘’Neural Processing Unit’’، نسل جدیدی از پردازنده های نوین می باشد و به صورت تخصصی، صرفا پردازش های مبتنی بر الگوریتم های یادگیری ماشین و هوش مصنوعی را انجام می دهد و یک واحد کاملا مستقل و جدا از دو واحد اصلی، یعنی پردازنده مرکزی و پردازنده گرافیکی می باشد. ساختار داخلی این پردازنده ها همانند شبکه عصبی مغز انسان می باشد و فرآیند شبکه عصبی مغز انسان را به صورت ساختاری باینری و نیمه هادی، تقلید و شبیه سازی می کنند.

هم چنین قابل ذکر است، ‘’NPU’’ دارای نام های مختلف دیگر، مانند ‘’AI Chips’’ و ‘’AI accelerators’’ نیز می باشد و حال حاضر، پس از شروع حیات پردازنده های عصبی، در پردازنده های مبتنی بر معماری x86، با نماد و نامی تجاری، عصر جدید کامپیوترهای هوش مصنوعی آغاز شده است. مهم است بدانیم: ‘’NPU’’ یک پردازنده کامل مستقل نمی باشد و به دلیل موجودیت تکنولوژی ‘’SOC’’، بخشی جدید از بخش های متعدد پردازشی موجود در یک پردازنده نوین می باشد. پردازنده های گرافیکی، به دلیل دارا بودن تعداد هسته های پردازشی بالا و الگوریتم پردازشی به مراتب موازی تر و متفاوت تر به نسبت پردازنده های مرکزی، قادر به پردازش قدرتمندتر پردازش های مبتنی بر هوش مصنوعی به نسبت ‘’NPU’’ می باشند، اما به دلیل عدم مدیریت کافی منابع و بهینگی در مصرف انرژی، در کنار ‘’NPU’’، اقدام به یاری پردازش های مبتنی بر هوش مصنوعی در صورت ناکافی بودن منابع ‘’NPU’’ می کنند، اما به دلیل پیشرفته تر شدن پردازنده های عصبی، نسل به نسل، دیگر نیاز کمکی به پردازنده های گرافیکی، جهت پردازش بهتر هوش مصنوعی در (نسل جدید کامپیوترهای خانگی) نمی باشد. معیار سنجش میزان قدرت پردازنده های هوش مصنوعی با ‘’TOPS’’ سنجیده می شود، به معنای واژه زیر است:

“trillions of operations per second”.

قابل ذکر است، شرکت انویدیا، از پیش تازان صنعت جدید تکنولوژی هوش مصنوعی می باشد، انویدیا در پردازنده های گرافیکی نسل جدید خود، از گروه هسته های ‘’Tensor’’ استفاده می کند و وظیفه این هسته ها، صرفا، پردازش الگوریتم های مبتنی بر هوش مصنوعی می باشد، به عنوان مثال، در کارت گرافیک های سری خانگی ‘’RTX’’، برای کاربران خانگی، امکانات فوق پیشرفته (گیمینگ) به ارمغان آورده شده است، مثلا برای دریافت نرخ فریم تصویر بیشتر در بازی ها، با استفاده از تکنولوژی سخت افزاری/نرم افزاری ‘’DLSS’’، بازی مد نظر می تواند در رزولوشون تصویر پایین تر توسط هسته های ‘’CUDA’’ پردازش شده و سپس توسط هسته های ‘’Tensor’’ به رزولوشن اصلی صفحه نمایش ارتقا یابد، یعنی (Upscale) شود، البته کاربردهای ‘’Tensor’’ فقط به مصارف (گیمینگ) ختم نمی شود، شرکت انویدیا، در مدل پردازنده های گرافیکی تخصصی هوش مصنوعی مراکز داده خود، از تعداد بسیار بالای هسته های تخصصی ‘’Tensor’’ استفاده کرده است و عملکردی قابل ستایش برای ابر شرکت ها و کاربران و صنعت هوش مصنوعی به ارمغان آورده است.

نمونه پردازش هایی که توسط NPUها انجام می شوند، چه پردازش هایی می باشند؟

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

از موارد دیگر، می توان به پردازش های مبتنی بر صدا اشاره کرد، مانند پردازش ویژگی Noise Cancelation .

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

جلوگیری از کاهش سرعت و عملکرد سیستم عامل و نرم افزارها در طولانی مدت به دلیل یادگیری عادت های کاربران و تجزیه و پردازش به موقع پروسه های تکراری.

ارتقای هوشمند و Real Time امنیت سایبری دستگاه های آسیب پذیر و موارد بیشتر، قابل ذکر است، به دلیل تازه وارد بودن پردازنده های عصبی در معماری x86، نیازمند زمانی بیشتر برای درک بهتر و مصارف بیشتر از پردازنده های هوش مصنوعی می باشیم.

شاید با خود بگویید، تمامی موارد گفته شده، توسط پردازنده مرکزی و گرافیکی می تواند به خوبی پردازش شود!، بله صحیح می باشد، واقعا تمامی پردازش های ذکر شده می توانند توسط پردازنده مرکزی و گرافیکی، حتی بهتر از پردازنده های عصبی پردازش شوند، اما نکته مهم و قابل توجه را خدمتتان عرض می کنم:

در سالیان گذشته، در زمان پدر بزرگان تکنولوژی، رابط های گرافیکی به صورت امروزه وجود خارجی نداشتند و تمامی تعاملات در یک محیط مبتنی بر دستورات متنی صورت می پذیرفت، مانند CMD

پس از ظهور سیستم عامل و نرم افزارهای گرافیکی، انقلابی در بخش سخت افزار نیز رخ داد، یعنی ظهور اولین پردازنده های گرافیکی، برای چه؟

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

در طی سالیان متوالی، پردازنده های مرکزی و گرافیکی بیشتر از هر زمان دیگری عمومی تر شدند و عملا قادر به پردازش تمامی پروسه های پردازشی شده اند، اما کوپروسسورهایی مانند NPU، بارهای اضافی پردازشی را، از روی دوش دو پردازنده اصلی حذف می کنند و باعث افزایش بهره وری آن ها و در نتیجه افزایش بهینگی در مصرف انرژی و مدیریت منابع می شوند.

لازم به ذکر است بدانیم، معماری x86 صرفا در انحصار دو شرکت نیمه هادی، یعنی اینتل و ای ام دی می باشد و بدانیم معماری پردازنده های گرافیکی بسیار متفاوت بوده و به صورت کاملا واحد مبتنی بر x86 و یا ARM نمی باشد.



با احترام و ارادت.

علی جوان