اشنایی با OpenCL

0 دوستدار 0 امتیاز منفی
63 بازدید
سوال شده آبان 20, 1397 در موضوعات متفرقه توسط hanter Newbie (10 امتیاز)

کارت‌های گرافیکی در طول دهه گذشته، از شتاب‌دهنده‌های ساده پردازش گرافیک به موتورهای محاسباتی چند منظوره تبدیل شده‌اند. نخستین کارت‌های گرافیک مخصوص کامپیوترهای رومیزی، در عمل وظیفه نگه‌داری موقت فریم‌های تصویر را بر عهده داشتند. این کارت‌ها حافظه‌ای را در اختیار داشتند که می‌توانستید اعداد نشان‌دهنده ارزش رنگ‌ها را در آن‌ها بنویسید و یک مبدل دیجیتال به آنالوگ، وظیفه تولید سیگنال و ارسال آن به CRT را بر عهده داشت. اما پردازنده‌ های گرافیكی  مدرن و امروزی، وظایف و عملکرد بسیار پیشرفته‌تری را در اختیار قرار می‌دهند. به عنوان مثال، کارت گرافیکی Radeon HD 5800، 2,15 میلیارد ترانزیستور دارد. این تعداد از تعداد ترانزیستورهای تعبیه شده در پردازنده‌های شش هسته‌ای Xeon که در سرورها مورد استفاده قرار می‌گیرند، نیز بیشتر است.


کارت‌های گرافیکی قدیمی، تنها برای عملکردهای گرافیکی استفاده می‌شدند، اما پردازنده‌های گرافیكی یا GPU  پیشرفته امروزی یک موتور محاسباتی قدرتمند به شمار می‌آیند. همین موضوع ما را ترغیب می‌کند تا از پردازنده گرافیکی، برای کارهایی غیر از پردازش تصاویر استفاده کنیم که در این صورت باید به سراغ مفاهیم و مباحث مرتبط با OpenCL برویم. این استاندارد نیز همانند OpenGL، مجموعه‌ای از APIهای انتزاعی به شمار می‌رود که چگونگی و جزئیات پیاده‌سازی درخواست‌ در پردازنده گرافیكی  را از دید شما پنهان می‌کند. اما OpenCL بر خلاف OpenGL، نه برای پردازش‌های گرافیکی صرف، بلکه برای پیاده‌سازی انواع مختلفی از محاسبات مورد نیاز شما کاربرد خواهد داشت.در این مقاله، نگاهی خواهیم داشت بر مفاهیم پس‌زمینه و مرتبط با OpenCL  و یک برنامه ساده را ایجاد خواهیم کرد که از OpenCL  استفاده می‌کند (پیاده‌سازی Conway’s Game of Life)1 می‌توانید كدهای مورد نیاز این مقاله را از این آدرس دریافت كنید.

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


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


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

 

لطفا وارد شده یا عضو شوید تا بتوانید سوال بپرسید

324 سوال

561 پاسخ

327 دیدگاه

6,246 کاربر

به بخش پرسش و پاسخ تخصصی سایت ماینینگ باکس خوش آمدید, مکانی برای پرسش سوال و دریافت پاسخ از دیگر کاربران این مجموعه در حوزه بیتکوین و کریپترکارنسی ها.


لطفا قوانین سایت را مطالعه فرمایید.

با سپاس
MiningBox

محبوب ترین برچسب ها

ماینینگ دستگاه استخراج بیت کوین استخراج استخر استخراج antminer s9 استخراج بیتکوین بیت کوین، بیت کوین مبتدی انتماینر s9 کارت گرافیک 8 گیگ کارت گرافیک رمزارز ماینینگ، کارت گرافیکی کیف پول پنل استخراج از طریق cpuو gpu antminer ایتریوم نرم افزار pool اموزش، سرمایه گذاری بررسی آنتایم ماینینگ ، نحوه واریز کوین ها از استخر به کیف پول،مبتدی ریگ اتریوم بلاکچین تریدکردن آموزش دستگاه استخراج بیت کوین ،برق مصرفی ماینینگ،استخراج، استخراج کوین خرید بیتکوین مادربورد کنترل پنل استخراج مونرو، استخراج بیت کویین کیف‌پول نسبت قیمت و بیشترین بازدهی مونرو کلود مایینیگ نصب mining pool کاهش،هش،ریت سیاکوین a3 استخراج با کارت گرافیکی، تجربه ( ، )اطلاعات، تجربیات بیتکویین،لایت کویین dual mining هش ریت، درامد معاملات ارزی ارزشگذاری بهترین کارت گرافیک کسب بیتکوین استخراج،ماینینگ،ماینر،بیت کوین،بهترین دستگاه،پول antminer، برق مصرفی antminer a3 ماینینگ ، کارت گرافیک ماینر گیت zclassic نرم افزار ماینینگ،سیستم عامل ماینینگminergate،ethos، دستگاه استخراج اتریوم بهترین قطعات برای استخراج اتریوم d3 اعتماد، پشتوانه antminer s7 تامین برق هش ریت، ماینرینگ استخراج.org سختی استخراج exchanger کوین استخراج زیکش لایت کوین s9 ایتریم کلاسیک قدرت ايتريوم ppnls fpps بیت کویین ، پرویت کد انت ماینر ماینرz9 ماینرa3 کوین یاب استخراج،بیتکوین،antminer s9 btcp 51% واتس ماینر m3 بات تلگرام استخراج سیاکوین، siacoin، ماينر، بيتكوين، etn x3 750 ti decred انتخاب سخت افزار استخراج
...