چرا از FPGA به جای CPU و GPU استفاده میشود ؟؟
اگر شما هم با اسم FPGA به عنوان یک سخت افزار پردازشی مواجه شده باشید حتما این سوال برای شما هم به وجود آمده که چرا به جای FPGAها از CPU و همچنین GPU ها استفاده نمیشود .این نکته قابل تامل است که اینتل شرکت آلترا (Altera) که یکی از توید کنندگان FPGA ها بود را در سال 2015 خریداری کرده است . و این FPGA ها در دیتاسنتر های مایکروسافت و آمازون استفاده میشود. اما بریم سراغ ویژگی ها این FGPAوCPU ها ... پس با مقالات آموزشی مرصاپ همراه باشید
اگر شما به انجام یک محاسبه ای نیاز داشته باشید چندین راه روبه روی شما است یکی اینکه خودتون حساب کنید ( (: ?) یا هم با نوشتن یک برنامه ای برای سخت افزار های مبتنی بر دستورات (instruction based architecture ) به عنوان مثال CPU ها و GPU ها یا هم میتوانید مداری را برای این محاسبه خاص طراحی کنید این نوع مدارات که برای کاربرد های خاص استفاده میشود و به صورت مدار مجتمع الکترونیکی هستند به آن ها سخت افزار (ASIC (Application Specific Integrated Circuits میگویند.
یک راه دیگر که این مقاله نیز به آن مربوط است . آرایه گیت های قابل برنامه ریزی که FPGA هست یا همان (field programmable Gate array) که ی مدار مجتمع الکترونیکی قابل برامه ریزی مجدد است یعنی شما میواند با برنامه ریزی که برای این سخت افزار انجام میدهید کار یک مدار مجتمع شما را انجام دهد و میتوانید آن را برای مدار دیگری نیز آماده کنید .
فرق بین FPGA ها و CPU ها در این است که CPU ها به صورت نرم افزاری پیکره بندی میشوند ولی FPGA ها با یک مدار مشخص پیکره بندی میشود .
اما حالا در مورد هر کدام از این ها بیشتر صحبت میکنیم .
تاخیر کم زمانی اهمیت پیدا میکند که شما دارید برای Auto Pilot یک جنگنده برنامه میریزید در این صورت باید زمان بین رسیدن ورودی ها و پاسخ سیستم ما بسیار کوتاه باشد تا این Auto pilot به صورت کامل و به بهترین وجه کارش را انجام دهد اینجاست که FPGA خودش را از CPU و GPU ها جدا میکند .
در FPGA ها شما میتوانیدتاخیر کمتر 1 میکروثانیه داشته باشید در حالی که در CPU ها تاخیر کمتر از 50 میکروثانیه یک تاخیر خیلی خوب به حساب میاید .دلیل این تاخیر کم این است که FPGA ها خیلی بیشتر از CPU تخصصی میشود و برای یک کار مخصوص استفاده میشوو و نیازی به سیستم عامل برای انجام محاسبات ندارد و همچنین برای ارتباط با بیرون از خودش هم BUS های عمومی مانند PCI ها و USB ندارد .
در اتصال ورودی ها به FPGA ها شما میتوانید هر ورودی را به FPGA ها متصل کنید مانند ورودی شبکه یا سنسور ها میتوانند به طور مستقیم به پین های FPGA متصل بشود که این برخلاف CPU ها است که در CPU ها باید حتما بایک درگاه انتقال یا Bus استاندارد مانند usb اتصال را برقرار کرد و همچنین به سیستم عامل هم مربوط میشود که چگونه ورودی ها متصل شوند .
اتصال مستقیم هر ورودی به خود پین های FPGA پهنای باند بیشتری را در اختیار ما قرار میدهد
بحث انرژی همیشه و در همه جا امروزه مهم است مثلا در استخراج بیت کوین شما میتوانید از CPU ها استفاده کنید اما هم از نظر قدرت و هم مصرف انرژی مشکل دارد ولی اگر مدارات ASIC خواسته باشید استفاده کنید خب بحث پیچیدگی طراحی ، ساخت و سرمایه گذاری و همچین باید تعداد زیادی از این چیپ ها ساخته شود تا ارزش استفاده داشته باشد ولی در FPGA قضیه فرق میکند FPGA هم بهره انرژی دارد و هم سرعت بالا در انجام محاسبات که برای کاری مانند استخراج بیت کوین میتواند یکی از گزینه های استفاده باشد
خیلی از اوقات ما در محاسبات کامپیوتری و الگوریتم های مختلف از اعداد اعشاری استفاده می کنبم . و در این زمینه GPU ها خیلی خوب کار میکنند . در FPGA های قدیمی انجام محاسبات اعداد اعشاری بسیار ناکارآمد بود و هزینه زیادی را در بر داشت .
درنهایت :
امیدوارم که بهره لازم رو برده باشید ممنون میشم نظرتون رو هم ارسال کنید به این امید که مطالب بهتری رو برای شما آماده کنم ?