ИНТЕРЕСНАЯ СТАТЬЯ О ТОМ КАК НАЧИНАЛСЯ МАЙНИНГ БИТКОИНОВ И ПРО GPU FPGA ASIC И ДАЛЕЕ…

ЗДАРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРОВА;)
НАЛОВИЛ В ТЕКУЧЕМ ПРОСТРАНСТВЕ ЗНАНИЙ В СОТВОРЕНИИ И ДАЛЕЕ АООООООУМ ПРОБУЖДАЯ ИСТИНЫ МУДРОСТИ БЕЗДН ТАЙН И ОСМЫСЛЕНИЯ:)
ИНТЕРЕСНАЯ СТАТЬЯ О ТОМ КАК НАЧИНАЛСЯ МАЙНИНГ БИТКОИНОВ И ПРО GPU FPGA ASIC И ДАЛЕЕ…

(источник фото)
Ранее нами рассматривались основные принципы, которым следуют при майнинге биткоинов.
В этот раз рассмотрим историю развития вычислительных систем, предназначенных для добычи биткоинов, а также технологические достижения и трудности, которые встретились на этом пути.

CPU: Первое поколение майнеров

Если заглянуть в исходный код майнера биткоинов, то окажется, что он на удивление прост. Основная часть выглядит примерно следующим образом:

while (1)
{
  HDR[kNoncePos]++;
  IF (SHA256(SHA256(HDR)) < (65535 << 208)/ DIFFICULTY)
    return;
}

Вычисление SHA256 выполняется над 512-битными блоками данных и включает в себя 64 раунда шифрования, требующих множества 32-битных сложений, сдвигов и битовых операций. Каждый последующий раунд шифрования зависит от результатов предыдущего, создавая цепочку зависимостей. Хотя выполнение отдельных раундов шифрования не может быть распараллелено, проверка каждого отдельного хэша может выполняться параллельно, что делает вычисления прекрасно поддающимися параллелизации.
Производительность таких майнеров достигает 33 MH/s на процессор (Core i7 990x). Больше добавить особенно нечего.

GPU: Второе поколение майнеров

В октябре 2010 был опубликован код первого open-source OpenCL майнера, после чего тот был быстро адаптирован и оптимизирован стараниями энтузиастов сообщества. Подобные майнеры состояли из реализации bitcoin-протокола на языке вроде Java или Python и алгоритма перебора в виде OpenCL-файла, который надлежало скомпилировать под ISA соответствующего GPU.

Огромное разнообразие OpenCL-реализаций объяснялось попытками выжать из компиляторов всё, на что те были способны, в погоне за улучшением качества кода. Кроме того, часть кода, не относящаяся к OpenCL напрямую, отвечала за вызов OpenCL API с целью перепроверки результатов или управления параметрами GPU в ответ на температурный режим и пользовательские настройки.
Поскольку предполагалось, что подобное оборудование будет работать месяцами, пользователи пускались во все тяжкие, играя с напряжением питания (понижая, чтобы снизить стоимость накладных расходов на майнинг, или повышая вместе с частотой, чтобы увеличить производительность), ядром GPU и такими параметрами кода, как число потоков. Всё ради того, чтобы увеличить пропускную способность в рамках разумной стабильности работы и температуры.
Читать далее «ИНТЕРЕСНАЯ СТАТЬЯ О ТОМ КАК НАЧИНАЛСЯ МАЙНИНГ БИТКОИНОВ И ПРО GPU FPGA ASIC И ДАЛЕЕ…»

ИНТЕРЕСНЫЕ СТАТЬИ САЙТА EZOLIFE.INFO