تصور کنید که برای خرید خودرویی به نمایشگاه اتومبیل مراجعه کرده و مبنای اصلی محصول مورد نظر خود را تنها و تنها بر پایه سرعت و شتاب آن قرار دادهاید. مطمئناً در اینگونه مواقع اهمیت دیگر فاکتورهایی از جمله امنیت، قدرت، زیبایی و ... کاسته و عمده توجه فرد به سمت و سوی خرید ماشینی با حداکثر سرعت و شتاب موجود جهت فتح جادهها و کسب قهرمانی در مسابقات معطوف میگردد، حال مثال فوق را در نظر داشته و توضیحات را به قالب حوزه استخراج بیتکوین بسط دهید.
سرعت حفر و استخراج ارز دیجیتال بیتکوین در میان انبوه دیگر افراد شرکتکننده در این عرصه و رقیبان از اهمیت بسیار بالایی برخوردار میباشد که این مهم نیز مستقیماً به قدرت پردازشی رایانه و سیستم مورد استفاده باز میگردد. تصور کنید که با اتومبیلی کم قدرت در میان انبوهی از ابر ماشینها در حال حرکت و مسابقه میباشید، اما هر چقدر که پدال گاز را تا انتها فشار داده و شیره وجود خودرو را تا انتها بکشید، بازهم دیگر رقیبان به دلیل برتری قابل توجه در قدرت نهان در موتور خود میتوانند در یک چشم بر هم زدن پیشی گرفته و به خط پایان نزدیک و نزدیکتر شوند.
اگر شما نیز اخیراً به کسب اطلاعات در خصوص ورود به حوزه استخراج بیتکوین مبادرت ورزیده باشید، مطمئناً با یکی از مهمترین سؤالات موجود در این زمینه، یعنی استفاده از پردازنده مرکزی (CPU) و یا تراشه شتابدهنده گرافیکی (GPU) نیز برخوردی داشته و به جستجوی پاسخ پرسشهای خود اقدام نمودهاید. بررسیهای به عمل آورده شده از مقایسه واحدهای پردازنده مرکزی و تراشههای شتابدهنده گرافیکی حاکی از برتری بسیار قابل توجه تراشههای فوق نسبت به پردازشگرهای مشابه خود میباشند، اما علت این موضوع واقعاً چیست و چرا تناقض موجود در میان آنها در اختلاف فراوانی با یکدیگر قرار دارند؟
همانطور که مستحضر هستید، فرآیند حفر و استخراج بیتکوین در گذشته با استفاده از واحدهای پردازنده مرکزی انجام میپذیرفته است، اما ورود شرکتکنندگان بیشتر به این حوزه و افزایش تعداد رقیبان موجود، فزونی پیچیدگی نرمافزارهای ماین و عدم اجرای آنها بر روی رایانههای ضعیفتر، ساخت و پرداخت تعدادی از بلوکهای زنجیره و کاهش پاداش اعطایی از بابت یافت پاسخ هر بلوک و ... همگی در کاهش بازدهی پردازندههای نامبرده و نیاز به سختافزاری قدرتمندتر جهت برقراری تعادل در میان فاکتورهای موجود و کسب سود در گرایش ماینرها به سوی کارتهای گرافیک مزید بر علت گشتند.
نرمافزارهای حل بلوکها و استخراج بیتکوین در گذشته از سطح پیچیدگیهای کمتری برخوردار و به دلیل مشخصات سختافزاری اندک اغلب توانایی اجرا در قالب طیف گستردهای از رایانههای شخصی را دارا بودهاند، اما افزایش محبوبیت ارز دیجیتال مذکور در میان مصرفکنندگان و فزونی تراکنشهای انجام پذیرفته در طی روزهای متوالی سبب گشت تا درجه همتافتی برنامههای نامبرده نیز گسترش یافته و به طبع آن مشخصات مورد نیاز سیستم نیز با فزونی قابل توجهی همراه شود که بر همین اساس یک پردازنده مرکزی دیگر پاسخگوی حجم عظیم پردازشهای سرازیر شده به سمت خود نبوده و استفاده از دیگر سختافزارهای قدرتمند باید در دستور کار قرار گیرد، اما یک تراشه شتابدهنده گرافیکی چگونه از قدرت بسیار بیشتری در مقایسه با یک پردازنده مرکزی برخوردار است؟
در ساختار هر کدام از واحدهای پردازشی موجود در بطن پردازندههای مرکزی تحت عنوان هسته (Core)، مدار الکترونیکی ویژهای به نام "واحد محاسبه و منطق" یا بهعبارتیدیگر "ALU" قرار گرفته است که طراحی آن نیز از ترکیبی از واحدهای مختلف بهمنظور محاسبه دستورالعملهای گوناگون ... تشکیل شده است.
یک هسته موجود در بطن پردازنده مرکزی قادر است تا تعداد چهار دستورالعمل 32 بیت را بهوسیله یک واحد 128 بیت پردازش دستورات SSE بر واحد زمان (ثانیه) به اجرا درآورد که این رقم در صورت استفاده از واحد AVX به هشت عدد (256 بیت) افزایش پیدا میکند، حال از ضرب دستورات اشاره شده در تعداد هستههای پردازنده مرکزی (بهعنوان مثال چهار هسته) به رقم 16 و یا 32 دستورالعمل دست پیدا میکنیم که مقدار آن در مقایسه با یک کارت گرافیک Radeon HD 5970 که قادر است تعداد 3200 دستورالعمل 32 بیت را در هر ثانیه به اجرا درآورد بسیار کمتر میباشد. این رقم در مقایسه با یک واحد پردازنده مرکزی برتری 400 و یا 800 برابری تراشه شتابدهنده گرافیکی در پردازش دستورات مختلف را کاملاً مشهود مینماید.
در حال حاضر سریعترین واحدهای پردازنده مرکزی رده مصرفکننده موجود در بازار تعداد چهار تا دوازده هسته را در بطن خود نهان ساختهاند که این مهم فاصله موجود در میان تناقض قدرتی یک تراشه شتابدهنده گرافیکی را با کاهش بیشتری همراه نموده است، اما با این حال بازهم یک کارت گرافیک HD 5970 که بیش از چندین سال از عرضه آن میگذرد نسبت به یک پردازنده مرکزی نوین و گران قیمت فعلی از قدرتی معادل ده تا دوازده برابر بیشتر (با احتساب فرکانس) برخوردار میباشد، حال استفاده از سختافزارهای جدیدتر نیز این مهم را همچنان با فزونی بیشتری همراه میسازند.
نکته دیگری که در مقایسه واحدهای پردازنده مرکزی و تراشههای شتابدهنده گرافیکی باید مدنظر قرار داد فرکانس از پیش تعیین شده بهمنظور پردازش دستورالعملهای ورودی میباشد. پردازندههای مرکزی حال حاضر از فرکانسی در محدوده 3 تا 4 مگاهرتز برخوردار هستند. این خود بدان معنی است که یک هسته موجود در بطن پردازشگر فوق توانایی اجرای تعداد 12 میلیون دستورالعمل 32 بیت در هر ثانیه را دارا میباشد که ضرب این مقدار در تعداد هستههای موجود قدرت پردازشی بیشتری را در اختیار قرار میدهد. علاوه بر آن ذکر این نکته نیز ضروری است که تمامی واحدهای پردازشگر داخلی پردازندههای مرکزی ممکن است از فرکانسی یکسان بهرهمند نبرده و برخی با سرعت کمتری به فعالیت بپردازند.
تراشههای شتابدهنده گرافیکی (GPU) تعداد فراوانی از هستههای مختلف تحت عنوان CUDA و یا Stream Processor را در بطن خود جای دادهاند که هرکدام توانایی فعالیت بهمانند یک واحد ALU مستقل را برخوردار میباشند. فزونی تعداد واحدهای نامبرده در مقایسه با یک پردازنده مرکزی مستقیماً بهاندازه کوچکتر آنها و به طبع پتانسیل کمتر در انجام برخی از دستورات پیچیده بازگردانی میگردد، اما با این وجود عملکرد واحدهای کوچک فوق جهت انجام فرآیند استخراج بیتکوین بسیار مناسب است.
اندازه کوچکتر و تعداد فراوان واحدهای پردازشی تراشههای شتابدهنده گرافیکی منجر به فزونی چشمگیر فرکانس کاری هسته گشته است که این مقدار در گل سرسبد ماینرها، یعنی کارت گرافیک Radeon RX 570 برابر با 1280 مگاهرتز یا بهعبارتیدیگر 1.28 گیگاهرتز میباشد، حال از ضرب تعداد شیدر/واحدهای محاسبه و منطق تراشه فوق در فرکانس کاری به رقم بسیار خیرهکننده 2621 هزار میلیارد دستورالعمل 32 بیت بر هر ثانیه دست پیدا میکنیم که مقدار آن در مقایسه با تعداد دستورات پردازش شده توسط یک پردازنده مرکزی 16 هستهای گران قیمت (192 میلیون) بسیار بیشتر میباشد.
توضیحات ذکر شده تا به اکنون سناریو برتری چشمگیر تراشههای شتابدهنده گرافیکی در مقایسه با واحدهای پردازنده مرکزی را از نگاه مهندسی و ریاضیات مورد بررسی قرار داده است، اما جهت درک بهتر موضوع و فهم بیشتر مطلب با ارائه مثالها و قیاسهای مختلف ادامه نوشته را به پیش میبریم.
واحدهای پردازنده مرکزی در درجه اول بهمنظور فعالیت به عنوان یک سختافزار اجراگر و تصمیم گیرنده تحت توسعه قرار گرفتهاند که مبنای اصلی فرمانهای خود را مستقیماً از نرمافزارها دریافت مینمایند. بهعنوان مثال عملیات تایپ یک سند وُرد و تبدیل آن به نوع فایل مناسب و سپس هدایت قطعه دیسک سخت جهت ذخیرهسازی آن در قالب یک فایل تماماً توسط واحد نامبرده انجام میپذیرد. علاوه بر آن انجام تمامی محاسبات و معادلات ریاضی نیز با عنایت به واحدهای محاسبه و منطق موجود در بطن آنها نیز امکانپذیر بوده و انجام فرآیندهای تصمیمگیری در خصوص گزارههای "اگر"، "آنگاه" نیز تماماً بهوسیله پردازنده مرکزی صورت داده میشوند. ذکر این نکته نیز ضروری است که توده انبوه و بزرگی از مدار الکترونیکی واحد پردازنده مرکزی نیز در جهت آماده به کار بودن همیشگی پردازشگر جهت تغییر وظیفه در یک چشم بر هم زدن و در سریعترین زمان ممکن به کار گرفته میشود (بهعنوان مثال عملیات سویچ از نرمافزار به نرمافزاری دیگر).
تراشههای شتابدهنده گرافیکی در طرف مقابل از ساختاری بسیار متفاوت نسبت به مغز رایانه بهره میبرند. اگرچه تراشههای نامبرده نیز با عنایت به واحدهای محاسباتی قرار گرفته در بطن خود از توانایی انجام محاسبات ریاضی و تصمیمگیریهای اگر، آنگاه برخوردار میباشند، اما ساختار و معماری آنها بهگونهای طراحی و توسعه یافتهاند تا در انجام پردازشهای ویدئویی از قدرت بسیار شگرفی برخوردار گردند که این مهم منجر به ضعف آنها در فعالیتهای محاسباتی شده است.
پردازشهای ویدئویی در قالب فعالیتهای تکراری طبقهبندی میگردند، زیرا تراشه شتابدهنده گرافیکی پیوسته در حال رسم تصاویر و مقداردهی به انبوهی از نقاط رنگی منحصر به فرد یا بهعبارتیدیگر پیکسلهای تشکیلدهنده صفحه نمایشگر میباشد. بر همین اساس ساختار پردازشگرهای فوق در جهت صورت دادن کارهای تکراری پیوسته بسیار بهینه شده و عملیات تغییر وظایف و فرآیندهای تصمیمگیری بر عهده دیگر واحدهای ساختمان رایانه شخصی واگذار گشتهاند.
واحد پردازنده مرکزی بهمانند یک اتاق دربردارنده گروه کوچکی از افراد بسیار باهوش و خبره (دانشمند) میباشد که از توانایی فوقالعادهای در انعطاف با شرایط و تغییر وظایف خود در یک چشم بر هم زدن برخوردار بوده و تصمیمگیریها و محاسبات پیچیدهای را میتوانند به انجام رسانند. تراشه شتابدهنده گرافیکی در مقابل بهمانند یک گروهی بسیار بزرگ از اشخاص با بهره هوشی پایینتری نمایان میکند که اگرچه از سرعت و عملکرد کمتری در انجام محاسبات بهره بوده، اما تعداد فراوان آنها در کسب برتری در انجام مکرر و چندین باره یک کار، تا زمانی که پیوستگی فعالیت آنها بر هم نخورده و یا نیاز به انجام تصمیمگیری نباشد بسیار مثمرالثمر واقع میگردد. مطمئناً در این حالت واگذاری یک عملیات محاسباتی ساده (بهعنوان مثال جمع و یا ضرب تعدادی از اعداد با یکدیگر) به هر دو گروه خروجی سریعتر تراشه شتابدهنده گرافیکی را پی دارد.
فرآیند حفر و استخراج بیتکوین نیز در قالب فعالیتهای تکراری طبقهبندی میگردد، زیرا فرآیند جستجو و یافتن پاسخ برای توابع هش (Hash) تولیدی از جانب الگوریتمهای کریپتوگرافی جهت افزودن یک بلوک به زنجیره نیز نیازمند انجام چندین و چند باره محاسبات دریافتی ورودی در هر اندازهای و تبدیل آنها به سایز ثابت میباشد (چندین میلیارد و یا حتی بیشتر) که این عمل نیازمند حل معادلات فیزیک کپرنیک و یا کوانتوم نبوده و تنها با استفاده از چهار عملگر اصلی علم ریاضیات، یعنی ضرب، تقسیم، جمع و تفریق انجام میپذیرد؛ عملی که افراد عادی و با درجات تحصیلی نسبتاً پایین نیز قادر به انجام آن میباشند.
یک کارت گرافیک RX 570 تعداد 2048 پردازشگر جریانی تحت عنوان Stream Processor را در بطن خود جای داده است که هرکدام بهمانند یک ALU میتوانند به فعالیت بپردازند. واحدهای محاسباتی (Compute Unit) موجود در بطن تراشههای شتابدهنده گرافیکی از گروهبندی شمارشی از پردازشگرهای فوق تشکیل میشوند که تعداد آن در سختافزار مورد بحث برابر با 32 عدد (64 شیدر در ساختار هر واحد) میباشد.
پردازشگرهای جریانی قرار گرفته در ساختار هر واحد محاسباتی منابع مدیریتی را در میان خود به اشتراک میگذارند. این مهم بدان معنی است که تمامی شیدرهای قرار گرفته در ساختار یک CU باید در آن واحد به پردازش یک عملکرد پرداخته و یا کاملاً از فعالیت باز ایستند. درست مانند خط تولید یک کارخانه بزرگ که بروز مشکل در یک بخش به توقف خروجی منتهی میگردد. بر همین اساس ازآنجاییکه هدف اصلی نهان در پشت پرده طراحی و توسعه تراشههای شتابدهنده گرافیکی انجام کارهای تکراری مانند رسم پیکسلهای تشکیلدهنده تصاویر بوده و فرآیند استخراج بیتکوین نیز در این قالب دستهبندی میگردد، لذا یک کارت گرافیک به لطف برتری بسیار چشمگیر خود در انجام این مهم انتخابی کاملاً ایده آل برای ماینرها به شمار میرود.
نتیجهگیری
بررسی و مقایسه واحدهای پردازنده مرکزی و شتابهای دهنده گرافیکی با یکدیگر برتری کاملاً مشهود و چشمگیر تراشههای نامبرده از هر لحاظ را نمایان میسازد که این مهم تنها و تنها به لطف تعداد بسیار بیشتر شیدرها حاصل گشته است. علاوه بر آن دخیل نمودن دیگر فاکتورهایی همچون قیمت نهایی سیستم حفر، میزان مصرف انرژی و حرارت تولیدی نیز همگی در استفاده از تراشه شتابدهنده گرافیکی مزید بر علت میگردند. یک سختافزار کارت گرافیک Radeon RX 570 در هنگام عرضه از قیمتی معادل 170 دلار برخوردار بوده است که نسبت به یک پردازنده مرکزی Core i7 8700K (شش هسته، دوازده رشته پردازشی و قیمت اولیه 359 دلار) قدرت بسیار فراتر استخراج و صرفهجویی در مصرف انرژی را به ارمغان میآورد، بنابراین استفاده از واحدهای پردازنده مرکزی در حال حاضر به هیچ عنوان عقلانی به شمار نمیرود.
در انتها اشاره به این موضوع نیز خالی از لطف نیست که سختافزارهای توسعه یافته بهمنظور انجام فرآیند استخراج بیتکوین که تحت عنوان دستگاه ASIC نیز مورد شناخت قرار میگیرند در مقایسه با یک کارت گرافیک همچنان قدرت بسیار فراتری را تحت اختیار فرد قرار میدهند. تراشههای موجود در بطن این دسته از دستگاهها تنها و تنها برای فرآیند بیتکوین ماینینگ توسعه یافته و با برخورداری از تعداد واحدهای مشابه، فرکانسی در محدوده 200 گیگاهرتز و یا حتی بیشتر را برای ماینر به ارمغان میآورند.