Доктор Ракеш Кумар из Иллинойсского университета в Урбане-Шампейне в своей работе "Майнинг биткоинов с приближением" описал механизм, при помощи которого можно увеличить прибыль от майнинга биткоинов на 30% — в пересчёте на единицу потраченных процессорных мощностей. Метод основан на использовании приблизительных расчётов – если допустить появление небольшого количества ошибок, результирующая эффективность подсчётов вырастает.
Приближённые расчёты часто используются в науке для упрощения математических выкладок. Доктор Кумар подсчитал, что при использовании железа, считающего с определённой, но не 100%-й точностью, можно повысить эффективность майнинга на 30%.
При майнинге биткоинов необходимо рассчитывать хэши от неких начальных значений. Необходимо получить хэш определённого вида, а поскольку предсказать вид хэша до его вычисления невозможно, необходимо проводить расчёты, и тем самым доказывать, что процессорное время было потрачено.
В связи с постоянным плановым увеличением сложности расчётов биткоинов, майнеры постепенно переходили с CPU на GPU, FPGA или ASIC. Увеличение сложности требует увеличения потребления энергии процессорами. Кумар со своими студентами задумались – нельзя ли разобраться в технологии майнинга и уменьшить потребление энергии, увеличив прибыль?
В результате они обратились к идее приблизительных расчётов. По утверждению Кумара, довольно много приложений, работающих на компьютере,- например, визуализация,-
могут работать с расчётами, точными не на 100%. Такие программы устойчивы к ошибкам и могут спокойно работать даже на неточно работающем железе. Исследователи выяснили, что майнинг биткоинов обладает теми же свойствами и «прощает» некоторые неточности.
Исследователи обнаружили, что процессор, обязанный гарантировать 100%-ю точность операций, в некоторых случаях потребляет энергии в 2 раза больше, чем процессор, который должен выдавать 99%-ю точность.
Майнинг биткоинов можно выполнять в несколько параллельных процессов, и железо, используемое для этого, состоит из независимых модулей. Если какой-то из модулей допускает ошибку, на работу других это не влияет.
Как поясняет Кумар, ошибки майнинга могут быть двух типов – правильное решение, которое ошибочно посчитали неправильным (ложно-негативное), и неправильное, ошибочное принятое за правильное (ложно-позитивное). Поскольку вероятность нахождения правильного решения очень мала, то ложно-позитивными можно пренебречь – их будет мало. И их всё равно можно отправлять в сеть – всё равно его проверят и отсеют другие майнеры при обновлении цепочки блоков. А ложно-негативное решение представляет собой упущенную возможность – правильное решение, которое не было реализовано.
Доктор Кумар утверждает, что использование железа, считающего хэши приблизительно, позволит упаковать большее количество модулей в то же самое пространство, по сравнению с обычным железом. В результате, время для подсчёта хэша уменьшается вдвое – майнер может генерить в два раза больше хэшей в единицу времени. Из-за периодических ошибок реальная производительность увеличивается примерно на 30%.
Доклад на основе своей работы доктор Кумар будет делать в июне 2016 года на конференции, посвящённой дизайну электроники и автоматизации.
Автор: SLY_G