Вы здесь

Почему видеокарты майнят лучше процессоров?

Задумывались ли вы когда-нибудь, почему майнинг на видеокартах в разы эффективней майнинга на процессоре? В этой небольшой статье мы попробуем дать ответ на этот вопрос.

Почему видеокарты майнят лучше процессоров?

Для начала давайте уточним:

CPU – центральный процессор (или просто процессор), является частью компьютера, исполняющей задачи программного обеспечения и указывающей всем остальным частям компьютера, что они должны делать в соответсвии с командами программ и пользователя.

GPU — графический процессор, является частью видео подсистемы компьютера. Основная функция GPU – рендеринг 3D графики и визуальных эффектов.

И GPU и CPU – являются процессорами, но сконструированны они были для выполнения различных задач. Эта конструктивная разница и делает GPU более производительным при майнинге в Bitcoin.
Короткий ответ:

Ядро CPU обрабатывает 4 32-битных инструкции за такт (SSE), или 8 32-битных инструкций за такт (AVX), в то время как GPU Radeon HD 5970 способно обработать 3200 32-битных инструкции за такт (используя свои 3200 ALU или шейдеров). Получается что в этом примере GPU способно обработать в 800 (или в 400 (при AMX)) раз больше инструкций за такт чем СPU.

Даже не смотря на то, что с 2011 года производятся CPU c 6, 8 и 12 ядрами, и тактовой частотой в районе 2000-3000 МГц и более, GPU Radeon HD 5970 (с тактовой частотой 750 МГц) остаётся более чем в 5 раз быстрее четырёх 12-ядерных CPU с частотой 2,3 ГГц (при стоимости последних в районе $4700, в отличии от $350 за HD5970).

CPU - «начальник»

CPU, в первую очередь, разрабатывались для того, чтобы принимать решения в соответствии с указаниями программы. Например, если вы печатаете документ и сохраняете его, то работа CPU заключается в том, чтобы преобразовать ваш документ в соответствующий тип файла и дать указание жёсткому диску записать этот файл. Процессор также способен выполнять математические расчёты, в каждом CPU есть один или несколько ALU, способен следовать инструкциям «если произошло это - сделай то, иначе сделай что то другое». Большое количество элементов CPU занимаются отслеживанием того, способны ли остальные элементы переключиться на выполнение новой задачи в необходимый момент.

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

  • ограничение привилегий между пользовательскими программами и операционной системой
  • создание «иллюзии» виртуальной памяти для выполняемых программ
  • обеспечение обратной совместимости для выполнения устаревших программ и инструкций

GPU - «рабочий»

GPU были разработаны для обработки видео. Да, GPU могут делать и математические расчёты и многие другие задачи, но сконструированы они были именно для обработки видео, а не для принятия решений. Обработка видео представляет из себя большие объёмы однотипной работы, при которой пикселям на экране монитора постоянно указывается, что они должны делать. Для эффективного выполнения такой работы GPU сконструированы так, что могут быстро обрабатывать большие объёмы повторяющихся операций, но при этом довольно медлительны в переключении на новую задачу. GPU содержат в себе большое количество ALU, значительно большее, чем содержат в себе CPU. В результате чего GPU выполняет громоздкие математические вычисления намного быстрее чем CPU.

Аналогия:

Представим себе что CPU — это маленькая группа очень умных людей. Они способны быстро справиться с любой поставленной задачей. Тогда GPU — это большая группа «бездарей», каждый из которых не в состоянии быстро выполнить какую-либо задачу, но которых можно научить выполнять повторяющиеся действия. В таком случае производительность большого числа «бездарей» делающих однотипную повторяющуюся работу окажется выше чем производительность небольшого числа очень умных людей выполняющих ту же работу.

Это вовсе не означает что CPU жирный, избалованный или ленивый. И CPU и GPU — изготовлены из миллиардов микроскопических транзисторов, размещённых на маленьком кусочке кремния, при этом то, что позволяет CPU хорошо делать свою работу — это более сложная структура каждого элемента. Сложнее структура — больше площади занимает каждый элемент, а площадь на кремниевом чипе стоит дорого. В отличие от CPU, в GPU структура каждого элемента проста и мала по площади, что позволяет разместить на одном чипе большее количество «бездарных» элементов.

ALU в GPU разбиваются на группы, в которых каждый участник в составе группы выполняет ту же операцию что и остальные (и не может выполнять какую то иную операцию). Они все будут работать над почти идентичной вариацией одной задачи, в идеальной синхронизации друг с другом, либо будут простаивать. При майнинге в Bitcoin выполняется одна постоянная операция - обработка хэш-функций, отличающихся друг от друга только одним символом — эта задача очень хорошо подходит для обработки на GPU.

Возьмём, к примеру, GPU Radeon HD 5970 — это популярная и высокопроизводительная видеокарта для майнинга содержит в себе 3200 ALU, которые можно рассматривать как 3200 «бездарных исполнителей», обученных делать одни и те же повторяющиеся задачи до тех пор, пока им не придётся прерываться для принятия каких либо решений. Radeon HD 5970 сконструирован по архитектуре VLIW-5, это означает что 3200 исполнителей объединены в 640 групп, и каждая группа способна выполнить 5 операций за 1 такт. Для сравнения возьмём 4-х ядерный CPU, способный моментально переключаться на новые задачи и принимать решения, он содержит в себе всего 4 (или небольшое кратное 4 количество) ALU. Так как ALU выполняет всю работу необходимую для майнинга в Bitcoin, то скорость майнинга напрямую зависит от количества ALU.

Вот причины по которым майнинг на GPU гораздо эффективнее майнинга на CPU: майнинг в Bitcoin не требует принятия решений, а представляет собой повторяющиеся математические операции. Принятие решений состоит только в определении «у меня есть блок» или «у меня нет блока». Это великолепная работа для выполнения на GPU.

Почему GPU AMD больше подходят для майнинга чем GPU Nvidia?

Во-первых, AMD конструирует свои GPU с использованием большого количества простых ALU (VLIW-архитектура), работающих на низких тактовых частотах (в среднем 1120-3200 ALU на частотах 625-900 МГц), в то время как конструкция GPU Nvidia состоит из меньшего числа более сложных ALU, что компенсируется повышением тактовой частоты ( в среднем 448-1024 ALU на частотах 1150-1544 МГц). Из-за разниц в архитектуре GPU ALU Nvidia занимают большую площадь, чем ALU AMD, соответственно Nvidia размещает в чипе меньшее количество ALU. Это и приводит к выигрышу GPU AMD в решении задач, в которых важнейшим является производительность ALU:

  • AMD Radeon HD 6990: 3072 ALU x 830 МГц = 2550 миллиардов 32-битных инструкций в секунду
  • Nvidia GTX 590: 1024 ALU x 1214 МГц = 1243 миллиардов 32-битных инструкций в секунду

Эта примерно 2х-3х кратная разница в производительности наблюдается во всём диапазоне линеек GPU от AMD и Nvidia, что сказывается в скорости решения всех ALU-связанных задач, таких как Bitcoin, подбор пароля (брутфорс) и т.д.

Во-вторых, алгоритм майнинга в Bitcoin основан на SHA-256, основная операция которого исполняется 1 инструкцией в GPU AMD (BIT_ALIGN_INT), но требует исполнения 3 инструкций в GPU Nvidia (2 shifts + 1 add), что даёт выигрыш производительности GPU AMD в 1,7 раза по сравнению с GPU Nvidia (около 1900 инструкций для AMD и около 3250 инструкций для Nvidia исполняются для функции сжатия SHA-250).

Суммарно эти 2 фактора делают производительность GPU AMD в 3-5 раз выше при майнинге в Bitcoin.

Категория: 
Криптовалюты
4
Ваша оценка: Нет Средняя: 3.7 (3 оценок)
115703 / 0
Аватар пользователя anon
Публикацию добавил: anon
Дата публикации: пн, 10/19/2015 - 22:12

Что еще почитать:

Комментарии:

вован1

спасибо, всё понятно.

пн, 08/07/2017 - 06:43

Анонимус

просто понятно доступно

вт, 08/08/2017 - 09:37

Василий

мерси, а то я не мог врубиться, нафига графика для обработки данных, которые обычно обрабатываются процессором

ср, 08/30/2017 - 03:00

Дядя Петя

Благодарю, очень понятно и доступно всё изложено

сб, 12/16/2017 - 21:03

АнтиМайнер

Да это понятно всё. Вы бы лучше объяснили вот что - когда человек работает реально, то это приносит пользу обществу, а человек вознаграждение, а какую пользу развитию общества приносит процесс майнинга? Идёт тупое расходование природных ресурсов в... никуда по сути.

сб, 03/10/2018 - 07:00

Алекс

Вы правы, так и растёт мыльный пузырь неподдержаных финансов, через определённое время случается кризис , падающий на население. По сути это огромная афёра.

чт, 02/11/2021 - 06:48

Колотушка

Майнер, в первую очередь майнит чтобы заработать. А заработанные деньги потом - потратить. Он купит товар или воспользуется услугой, который делает или предоставляет тот самый реальный человек, приносящий пользу обществу... и все останутся довольны!

сб, 03/10/2018 - 21:45

Евгений-Вселенский

Наверняка майнинг приносит пользу! Только, по моему ИМХО, эта польза поступает к рептилоидам или другим существам ино(внутри)планетной организации. Логично - целая планета дурачков использует свои ресурсы для раскодирования (к примеру, генома других существ, коих полно во вселенной) необходимой информации, для создания нового вида существ или чего подобного, а для большего интереса - создание некого вознаграждения..... все четко, как чечетка!!! ))) Дали нам, человечкам компьютеры, интернет, криптовалюту(а в тайне дешифруют что-то нужное, только ИМ!!!), потом еще что то появится, а потом АБЗДЕЦ!!!!! ))))))))))

пт, 04/20/2018 - 17:18

олег рязанский ...

комент насчёт инопланетного вмешательства позабавил.может итак кто знает?

вс, 06/17/2018 - 09:38

Тимур

Пиши слитно слово "не смотря"

пт, 07/12/2019 - 22:10