Майнинг это добыча криптовалюты на компьютере. Отсюда возникает закономерный вопрос — можно ли майнить на центральном процессоре. Это такой же вычислительный ресурс, как видеокарта. Но стоит ли оно того? Короткий ответ «Да», правильный — «не всё так просто».
Что такое процессор (CPU) и как на нем майнить?
Центральный процессор занимается выполнением кода, вроде JavaScript во вкладке браузера, подгружает видео на YouTube и запускает программы с жесткого диска. Иногда в CPU устанавливают интегрированное графическое ядро, чтобы он отрисовывал «Косынку» и выводил изображение страницы Фейсбука, но не больше.
Сам процессор состоит из вычислительных блоков, кэша в котором хранятся результаты работы и соединительных элементов. Процессор выполняет вычисления по циклам — один цикл, один набор операций. Каждое ядро процессора воспринимается системой как «поток», который выполняет задания последовательно.
Так, четыре потока могут выполнять четыре задачи за один цикл. Современные процессоры, вроде Ryzen 3 3100 или Intell I5 7400 способны решать 2 и даже 3 задачи одним ядром за один цикл. Это как если бы вы писали реферат, заваривали кофе и жонглировали одновременно. Называется такой род вычислений «Параллелизм» или «Суперскалярность», когда выполняется N-задач, но одновременно друг-другу.
Центральный процессор разработан для общей нагрузки — он может выполнить любую математическую задачу, например майнинг криптовалюты. Как работник, который не оканчивал Массачусетский Технологический, но умеет собирать роботов, правда делает это медленно и непрофессионально. Процессор рассчитан на общие задачи, но пасует перед сложными, как то отрисовка кадров для видео или рендер 3D моделей.
Майнинг криптовалют на видеокарте
Видеокарта — графический ускоритель, он же GPU, он же визуальный акселератор, он же лучший друг геймера. Занимается отрисовкой волос на голове у Геральта и кнопок «Скачать», проживает в системнике.
Но что делает видеокарты крутыми? Вспоминаем определение «Параллелизма» и историю. В начале 70-х процессоры были медленные, они могли лопнуть от попытки отрисовать картинку и ЭВМ ограничивались работой в текстовом режиме. В 80-х годах компьютерные инженеры поняли, что отрисовку изображения придется отделить от CPU и придумали графические ускорители.
Так в 1987 году появился «MDA» от IBM, или Monochrome Display Adapter, который поддерживал работу с изображением 720 на 320 точек. Выглядело жутко, цветов не было, зато был текст — но рабочее время процессора теперь выделялось на более важные задачи.
Вот так выглядела графика в 1980-х годах на ПК — консоли в то время были чуть лучше и умели в цвет. Значительно позже появились видеокарты, вроде RX 580, которые умеют отрисовывать красивые текстуры в играх.
Наглядную иллюстрацию разницы работы процессора и видеокарты показывали еще Адам Сэвидж и Джейми Хайнеман из «Разрушителей Легенд» в далеком 2009 году на выставке Nvidia.
Разберем на примере RX580 — сколько задач за одну секунду она способна решать, хотя бы теоретически?
Внутри видеокарты есть два типа ядер — шейдерные и текстурные. К ним идут вспомогательные модули вывода рендера и обобщение «вычислительные блоки». В майнинге нас интересуют шейдерные ядра, которые созданы, чтобы выполнять сложные задачи параллельно, а не последовательно, как в CPU.
У 580-й есть 2034 шейдерных ядра, каждое из которых занимается обработкой одного маленького участка изображения в кадре. Каждое шейдерное ядро получает равномерную нагрузку одновременно, а процессору для этого нужны дополнительные циклы. Пока процессор думает, как распределить нагрузку по четырем ядрам, чип видеокарты уже нагрузил все 2034 шейдерных ядра и получил ответ.
Теперь математика: за один такт RX580 решает, условно, 2034 задачи. Тактовая частота видеокарты 1.2 Ггц и 1.3 Ггц при ускорении, или 1 200 000 000 циклов в секунду. Так, за одну секунду видеокарта решает 2 440 800 000 000 уравнений, это два с половиной триллиона. На практике же, если учесть оптимизацию выполняемого кода, видеокарта выдает 6 терафлопс, или 6 000 000 000 000 решений за секунду.
Что такое 6 триллионов? Давайте добавим контекста. Как писал Яков Перельман в своей замечательной книге «Числовые Великаны»: «Одним триллионом кирпичей можно было бы покрыть все материки равномерным сплошным пластом высотой почти с четырёхэтажный дом». Найти эту цитату можно на странице 152, издания 1954 года. В наших с вами телах содержится 30 триллионов клеток, учитывая кровяные тельца, кожу, кости, мышцы, мозг и другие ткани. Вот где-то посредине сидит RX580, которая решает шесть триллионов уравнений за секунду.
Майнинг на процессоре
Криптовалюту можно добывать путем решения математических формул, называется этот процесс PoW-майнинг. Решать уравнения можно и на бумаге, как это делал Кен Шифф в своем видеоролике.
Проблема только в том, что вырисовывать ручкой символы и решать формулы это долго. Прибыльность такого занятия низкая. Нужно выполнять задачи быстрее, иначе добывать Эфир на бумаге прийдётся до пенсии. Выгоднее будет создать свою ферму и добывать на ней Эфир. В нашей статье подробно описано, как собрать майнинг ферму и начать зарабатывать на ней.
Подключим процессор, берем за условие, что один поток может решить две задачи. Так, за один цикл CPU с четырьмя потоками решит восемь задач. Допустим, речь идет о процессоре с тактовой частотой 3.4 Ггц. Выходит, наш условный процессор выполняет 3 400 000 000 циклов за секунду.
Умножаем на количество операций за цикл и получаем 24 000 000 000 миллиарда решений за одну секунду. Впечатляюще. Это прибыль Джеффа Безоса в 2020 году на фоне пандемии.
Но есть одно «Но». Ядер всего четыре, пусть они и быстрые, но их четыре и они не оптимизированы для сложных параллельных вычислений. А видеокарте нормально, она за секунду решает в шесть раз больше решений, чем понадобится кирпичей для обкладки всех материков мира четырёхэтажками.
Прибыльность майнинга на CPU
Вот только есть криптовалюта, специально оптимизированная для добычи на процессоре — Monero. Её майнинг на процессорах оправдан, правда это должны быть многопоточные ЦПУ, вроде Ryzen 9 5900X или Ryzen 7 1700x.
Ниже — данные по прибыльности за Декабрь 2020 года, они могли устареть, пока вы читали статью. Поэтому мы прикрепим ссылки на актуальную прибыльность для каждого процессора.
На скриншоте — хешрейт Ryzen 9 5900X, который составляет 12 кило-Хешей в секунду. Согласно счётчику Cryptocompare это 27 долларов в месяц на Монеро или 328 в год. Актуальная прибыль для R9 5900X на Монеро.
А если майнить на процессоре Threadripper 3990X?
Самый крутой процессор на рынке, Threadripper 3990X со 128 потоками, будет приносить три доллара в сутки на Monero или 1125 USD в год, при стоимости в 4500 USD.
О Celleron или Pentium даже не говорим, там профит исчисляется десятыми долями центов. Но о майнинге Monero подробнее в отдельной статье.
А RX580 будет приносить по доллару в день на пуле Hashalot.io уже сегодня. Присоединяйтесь!