پردازنده عصبی (NPU) چیست و چرا مهم است؟
علی جوان
زمان مطالعه: 19دقیقه
پردازندههای عصبی، سالیان متوالی در پردازندههای مبتنی بر ساختار و معماری ARM وجود داشته است، در ابتدا فقط در پلتفرم موبایل پردازندههای ARM موجود بوده و سپس، در نسخههای دسکتاپ معماری ARM و سپس x86 نیز وارد حیات شد، در سمت کامپیوتر سرورها، پردازندههای توانا در پردازشهای هوش مصنوعی قبلتر وجود داشتند، اما مجدد نه به صورت تخصصی!، از برخی دلایل پیدایش پردازندههای مبتنی بر پردازشهای هوش مصنوعی، مانند (NPU)، میتوان به موارد زیر اشاره کرد:
1. مدیریت بهتر منابع و بهینهگی در مصرف انرژی
2. عدم نیاز کاربر به اتصال دائم اینترنت، جهت پردازشهای مبتنی بر هوش مصنوعی
3. آزادسازی بار اضافه پردازشی، از پردازندههای مرکزی (CPU) و پردازندههای گرافیکی (GPU)
4. تغییرات اساسی در عملکرد گیمینگ (Gaming) کاربران و موارد بیشتر
NPU چیست؟، ابتدا باید دو ساختار و معماری پایه و اصلی تمامی پردازندههای تجاری جهان را بشناسیم ، در مقاله قبلی به نام: تحولات در راه است!، همکاری غیرمنتظره دو غول صنعت نیمه هادی، اینتل و AMD، در رابطه با دو معماری جامع و اساسی تمامی پردازندههای تجاری حال حاضر جهان اشاراتی کردم و مختصر توضیحی دادم، اما در این مقاله به صورت تخصصیتر به آنها میپردازم، زیرا از ادبیات اصلی و پیش نیاز پردازندههای هوش مصنوعی میباشد:
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 استفاده کند، مانند سری جدید پردازندههای شرکت اپل و گوگل و انویدیا
2. مبتنی بر معماری اصلی 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” را تصور کنید، این پنج قسمت هر یک مستقل میباشد و با استفاده از یک مدار و گذرگاه پرسرعت، میتواند با بخشهای دیگر ارتباط برقرار کند، یکی از چیپستها مثلا “NPU” میباشد، تا زمانی که کاربر هیچگونه درخواستی برای “NPU” ارسال نکند، بخش “NPU” کاملا خاموش باقی میماند و نتیجه این امر، مدیریت تخصصی منابع و حرارت میباشد و از دیگر مزایا: توسعه دهنده، مجبور نیست از یک تکنولوژی واحد لیتوگرافی برای توسعه چیپست “Silicon Die” خود استفاده کند، مثلا سری جدید پردازندههای اینتل “Core Ultra”، اینتل فقط برای توسعه “CPU Tile” از فرآیند لیتوگرافی خودش، یعنی “Intel 4” استفاده کرده است و Tile” (کاشی/بخش)های دیگر” با تکنولوژی لیتوگرافی شرکت نیمه هادی “TSMC” صورت گرفته است.
نکته مهم پردازندههای چند بخش : (Chiplet design)چیپلتها درواقع ساختارهای ترکیبی هستند و همزمان از ساختار “SOC” پیروی میکنند، “System On Chip”، یعنی چیپستهای متعدد و مختلف پردازشی، مانند CPU” و “GPU میتواند، در یک چیپست مستقل مجتمع، گردهم آید.
نمونه تصویر تئوری، از واحدهای تشکیل دهنده یک ساختار ماژولار‘’Chiplet’’
نمونه تصویر واقعی، از پردازنده نوین اینتل، مبتنی بر ساختار ماژولار ‘’Chiplet’’، مبتنی بر معماری ‘’x86’’ موبایل، اتصال بخشهای مختلف به یکدیگر، کاملا مشخص است:
حال پردازنده عصبی "NPU" چیست؟
پردازنده عصبی ‘’NPU’’ به اختصار ‘’Neural Processing Unit’’، نسل جدیدی از پردازندههای نوین میباشد و به صورت تخصصی، صرفا پردازشهای مبتنی بر الگوریتمهای یادگیری ماشین و هوش مصنوعی را انجام میدهد و یک واحد کاملا مستقل و جدا از دو واحد اصلی، یعنی پردازنده مرکزی و پردازنده گرافیکی میباشد، ساختار داخلی این پردازندهها همانند شبکه عصبی مغز انسان میباشد و فرآیند شبکه عصبی مغز انسان را به صورت ساختاری باینری و نیمه هادی، تقلید و شبیه سازی میکنند.
همچنین قابل ذکر است، ‘’NPU’’ دارای نامهای مختلف دیگر، مانند ‘’AI Chips’’ و ‘’AI accelerators’’ نیز میباشد و حال حاضر، پس از شروع حیات پردازندههای عصبی، در پردازندههای مبتنی بر معماری x86، با نماد و نامی تجاری، عصر جدید کامپیوترهای هوش مصنوعی آغاز شده است، مهم است بدانیم: ‘’NPU’’ یک پردازنده کامل مستقل نمیباشد و به دلیل موجودیت تکنولوژی ‘’SOC’’، ‘’NPU’’ بخشی جدید از بخشهای متعدد پردازشی موجود در یک پردازنده نوین میباشد، پردازندههای گرافیکی، به دلیل دارا بودن تعداد هستههای پردازشی بالا و الگوریتم پردازشی به مراتب موازیتر و متفاوتتر به نسبت پردازندههای مرکزی، قادر به پردازش قدرتمندتر پردازشهای مبتنی بر هوش مصنوعی به نسبت ‘’NPU’’ میباشند، اما به دلیل عدم مدیریت کافی منابع و بهینهگی در مصرف انرژی، در کنار ‘’NPU’’، اقدام به یاری پردازشهای مبتنی بر هوش مصنوعی در صورت ناکافی بودن منابع ‘’NPU’’ میکنند، اما به دلیل پیشرفتهتر شدن پردازندههای عصبی، نسل به نسل، دیگر نیاز کمکی به پردازندههای گرافیکی، جهت پردازش بهتر هوش مصنوعی در (نسل جدید کامپیوترهای خانگی) نمیباشد، معیار سنجش میزان قدرت پردازندههای هوش مصنوعی با ‘’TOPS’’ سنجیده میشود، به معنای واژه زیر است:
“trillions of operations per second”.
قابل ذکر است، شرکت انویدیا، از پیشتازان صنعت جدید تکنولوژی هوش مصنوعی میباشد، انویدیا در پردازندههای گرافیکی نسل جدید خود، از گروه هستههای ‘’Tensor’’ استفاده میکند و وظیفه این هستهها، صرفا، پردازش الگوریتمهای مبتنی بر هوش مصنوعی میباشد، به عنوان مثال، در کارت گرافیکهای سری خانگی ‘’RTX’’، برای کاربران خانگی، امکانات فوق پیشرفته (گیمینگ) به ارمغان آورده شده است، مثلا برای دریافت نرخ فریم تصویر بیشتر در بازیها، با استفاده از تکنولوژی سخت افزاری/نرم افزاری ‘’DLSS’’، بازی مد نظر میتواند در رزولوشون تصویر پایینتر توسط هستههای ‘’CUDA’’ پردازش شده و سپس توسط هستههای ‘’Tensor’’ به رزولوشن اصلی صفحه نمایش ارتقا یابد، یعنی (Upscale) شود، البته کاربردهای ‘’Tensor’’ فقط به مصارف (گیمینگ) ختم نمیشود، شرکت انویدیا، در مدل پردازندههای گرافیکی تخصصی هوش مصنوعی مراکز داده خود، از تعداد بسیار بالای هستههای تخصصی ‘’Tensor’’ استفاده کرده است و عملکردی قابل ستایش برای ابر شرکتها و کاربران و صنعت هوش مصنوعی به ارمغان آورده است.
نمونه پردازشهایی که توسط NPUها انجام میشوند، چه پردازشهایی میباشند؟
انواع پردازشهای مبتنی بر تصویر و ویدئو، مانند تغییر پویا و در لحظهای محیط پشت کاربران، تار کردن محیط پشت کاربران، تغییرات مختلف و مصنوعی و در لحظهای در چهره افراد، جدا سازی سوژه از تصویر، قابلیت حذف سوژه و اشیا در تصاویر، قابلیت استخراج متن از تصاویر، قابلیت ایجاد تغییرات باورپذیر در تصاویر، قابلیت ایجاد تصاویر مصنوعی و موارد بیشتر، قابل توجه است، تمامی این پردازشها بدون نیاز به هیچ دانش بالا و نرم افزار تخصصی، میتواند در نرم افزار بسیار سادهای، مانند گالری کاربران صورت پذیرد!.
از موارد دیگر، میتوان به پردازشهای مبتنی بر صدا اشاره کرد، مانند پردازش ویژگی Noise Cancelation .
و پردازش های مختلف در بازیهای کامپیوتری، مانند پردازش دقیق و واقعی گرایانهتر الگوریتمهای هوش مصنوعی دشمنان، امکان پردازش الگوریتمهای پیشرفته جهت ارتقای سرعت عملکرد بازی مانند DLSS.
جلوگیری از کاهش سرعت و عملکرد سیستم عامل و نرم افزارها در طولانی مدت به دلیل یادگیری عادتهای کاربران و تجزیه و پردازش به موقع پروسههای تکراری.
ارتقای هوشمند امنیت سایبری دستگاههای آسیب پذیر و موارد بیشتر، قابل ذکر است، به دلیل تازه وارد بودن پردازندههای عصبی در معماری x86، نیازمند زمانی بیشتر برای درک بهتر و مصارف بیشتر از پردازندههای هوش مصنوعی میباشیم.
شاید با خود بگویید، تمامی موارد گفته شده، توسط پردازنده مرکزی و گرافیکی میتواند به خوبی پردازش شود!، یبه صحیح میباشد، واقعا تمامی پردازشهای ذکر شده میتوانند توسط پردازنده مرکزی و گرافیکی، حتی بهتر از پردازندههای عصبی پردازش شوند، اما نکته مهم و قابل توجه را خدمتتان عرض میکنم:
در سالیان گذشته، در زمان پدر بزرگان تکنولوژی، رابطهای گرافیکی به صورت امروزه وجود خارجی نداشتند و تمامی تعاملات در یک محیط مبتنی بر دستورات متنی صورت میپذیرفت، مانند CMD
پس از ظهور سیستم عامل و نرم افزارهای گرافیکی، انقلابی در بخش سخت افزار نیز رخ داد، یعنی ظهور اولین پردازندههای گرافیکی، برای چه؟
زیرا پردازندههای مرکزی، برای پردازش پروسههای منطقی و محاسباتی ساخته شدهاند و پردازش رابطهای گرافیکی، در کنار طیف اصلی پردازشی خود، باعث کاهش بهرهوری و تضعیف عملکرد اصلیشان میشد، ظهور پردازندههای نوین گرافیکی در آن زمان، باعث شد، تا بار پردازشهای اضافه از پردازنده مرکزی برداشته شود.
در طی سالیان متوالی، پردازندههای مرکزی و گرافیکی بیشتر از هر زمان دیگری عمومیتر شدند و عملا قادر به پردازش تمامی پروسههای پردازشی شدند، اما کوپروسسورهایی مانند NPU، بارهای اضافی پردازشی را، از روی دوش دو پردازنده اصلی حذف میکنند و باعث افزایش بهرهوری آنها و در نتیجه افزایش بهینهگی در مصرف انرژی و مدیریت منابع میشوند.
لازم به ذکر است بدانیم، معماری x86 صرفا در انحصار دو شرکت نیمه هادی، یعنی اینتل و ایامدی میباشد و بداینم معماری پردازندههای گرافیکی بسیار متفاوت بوده و به صورت کاملا واحد مبتنی بر x86 و یا ARM نمیباشد.
در مقالات بعدی، در رابطه با انواع معماریهای مادر پردازشی یا به عبارتی تخصصی: instruction set architecture، مانند: RISC و CISC و RISC-V و SIMT توضیحاتی تکمیلی، اما با بیانی ساده، شرح خواهم داد.
با احترام
ممنون از همراهی شما با توت بلاگ
آرزوی موفقیت دارم، برای تمام آن افرادی، که به واقع، به دنبال رسیدن به مقاصد سفید میباشند.
بخش نظرات
ورود
اولین نفر باشید که نظر خود را ثبت میکنید.