دوشنبه ۱۷ تیر ۱۳۹۸ - ۱۵:۴۶

اخبار دانش و فناوری قدس آنلاین

تفاوت‌های "CPU" و "GPU" در چیست؟!

میلاد شکری

CPU & GPU

SoCs گوشی های هوشمند مدرن با تعداد زیادی از اجزای پردازش مختلف پر می شوند، اما دو تا از رایج ترین آنها عبارتند از واحد پردازش مرکزی (CPU) و واحد پردازش گرافیکی (GPU) هستند.

به گزارش گروه اقتصادی قدس آنلاین، SoCs گوشی های هوشمند مدرن با تعداد زیادی از اجزای پردازش مختلف پر می شوند، اما دو تا از رایج ترین آنها عبارتند از واحد پردازش مرکزی (CPU) و واحد پردازش گرافیکی (GPU) هستند، در حالی که کلمات اختصاری ممکن است از طریق مقدار زیادی از داده ها مشابه باشند اما اختلاف عمده بین تکنولوژی CPU و GPU وجود دارد.

قبل از وارد شدن به تفاوت های کلیدی GPU و CPU، با برخی از مفاهیم مشترک آنان آشنا می‌شویم.

هسته های پردازنده های یکسان، از یک انتخاب زیر بلوک های تکنولوژیکی ساخته می شوند، که هر یک از آنها وظایف خاصی را که پردازنده باید انجام دهد، انجام می دهد. این بلوک ها بسته به معماری micro-architecture طراحی شده اند.

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

CPU چیست؟

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

CPU ها اغلب در تنظیمات چند هسته ای، بین 4 تا 8 تا در تلفن همراه و 16 و بالاتر در محیط های دسکتاپ و سرور یافت می شوند، طرح های چند هسته ای CPU اجازه می دهد تا برای برنامه های چندگانه و موضوعات کاری برای بهبود بهره وری انرژی و قابلیت های عملکرد به طور همزمان اجرا شوند.

هر هسته پردازنده در سرعت های معمولی بین 2 تا 3 گیگاهرتز در تلفن همراه و تا 5 گیگاهرتز در داخل دسکتاپ ها اجرا می شود، CPU ها همچنین می توانند با مقادیر مختلف حافظه با سرعت بالا، مورد استفاده برای ذخیره دستورالعمل ها و داده‌هایی که در حال حاضر وجود دارند، مورد استفاده قرار بگیرند و به عنوان حافظه پنهان شناخته می شوند. حافظه کش می تواند به هر هسته CPU مشترک باشد و برای سرعت بخشیدن به اجرا و تعویض بین وظایف دستگاه ضروری است.

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

                                              به عنوان مثال، هر پردازنده Cortex-A77 دارای موتور ریاضی NEON، واحد نقطه شناور و 3 مخزن در هر هسته، همراه با ALU های استاندارد و پیش بینی شاخه آن است.

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

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

GPU چیست؟

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

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

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

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

پردازنده های گرافیکی مخصوص پردازنده‌های اختصاصی هستند که برای رندر 3D مورد نیاز است.

 به عنوان مثال، GPU PowerVR شامل شش هسته اجرایی است که هر کدام با هسته های ALU در حال افزایش است، توجه داشته باشید که چگونه این هسته ها همه واحد های حافظه و زمانبندی را به اشتراک می گذارند.

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

سرعت های GPU معمولا کمتر از سرعت CPU هستند، اغلب در صدها مگاهرتز با فرکانس پایین تر، این به خاطر محدودیت های گرما و قدرت است، زیرا پردازش موازی توده ای به ترانزیستورهای بیشتری نیاز دارد تا شما در ALU CPU پیدا کنید، ما همچنین باید توجه داشته باشیم که ریاضیات جرم را می توان برای رندر گرافیکی بیشتر استفاده کرد. رندر ویدئو، الگوریتم های یادگیری ماشین مانند تشخیص شی و الگوریتم های رمزنگاری نیز می توانند بسیار سریعتر در یک GPU موازی با سخت افزار CPU محدود تر اجرا شوند.

GPU و CPU به طور خلاصه

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

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

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

انتهای پیام/