Как я пишу это самые быстрые шахтеры ZEC являются Claymore v5 и Optiminer v 0.3.1. Только вчера silentarmy v5 был быстрее, чем Claymore v4, но затем Claymore v5 перепрыгнула silentarmy. Но дни удвоения производительности ЗКА шахтеров закончены, так как программное обеспечение приближаются пределы производительности аппаратной части графического процессора (по крайней мере, графические процессоры AMD). Для того, чтобы понять, почему это помогает понять немного об алгоритме zcash equihash. Для математических кретинов, он основан на алгоритме Вагнера для решения обобщенной задачи на день рождения. В частности, 2 миллиона псевдослучайных чисел генерируются с использованием blake2b (см http://blake2.net/). Каждый из этих чисел 200 бит (25 байта), и они сортируются, чтобы найти пары чисел, которые приводят к столкновениям на первых 20 битах. В среднем, около 2 миллионов пар, которые сталкиваются на первых 20 битов. Эти пары операции XOR, и полученные цифры сортируются на следующие 20 битов. Это продолжается в течение 8 раундов, до 40 бит не осталось, где будет 2 (фактически 1,88) столкновения на последних 40 бит. Эти последние 2 столкновения решения к equihash доказательства работы.
Начиная с 25 байт данных, естественный выбор для структуры данных будет записи 32 байт каждый. В реализации silentarmy (https://github.com/mbevand/silentarmy) Эти записи называются слотами. Хотя оригинальный алгоритм equihash (CPU на базе) использует базисный род, самый быстрый алгоритм сортировки для equihash является бен родом, с 2 ^ 20 (1 миллиона) бункеров (silentarmy называет их ряды). На каждом раунде, следующие 20 битов определяют бункер для сохранения данных в XOR, а затем с помощью сканирования всех бункеров, чтобы найти те, по крайней мере 2 записей (временных интервалов), заполненных. В среднем 2 миллиона записей по 32 байта каждая, это 64 МБ данных для сканирования каждого раунда. Можно подумать, что есть также 64 МБ записываемых данных (в закрома) каждый раунд, но на AMD GPU, будет 128 МБ ОЗУ записи в для хранения данных в закромах. Причина заключается в том, что каналы памяти AMD 64 бита в ширине и GDDR5 передает как минимум 8-битовые взрыва, так что графические процессоры AMD передавать как минимум 64 байт данных в оперативную память одновременно. Кроме того, если ядро графического процессора записывает меньше, чем 64 последовательных байт в то время, контроллер памяти будет считывать 64 байта, изменить некоторые из байт, а затем записать 64 обратно в ОЗУ. Поэтому писать 2 32-байтовые слотов в бункер включает в себя чтение 64 байт, написание 64 байт, и повторяя еще раз. Поэтому достаточно эффективная реализация equihash будет делать 5 * 64 * 1 миллион байт (320MB) Ио за один раунд. С 9 раундов, что означает 2.88GB за itteration, или 77,8 itterations в секунду на Rx 470 с ОЗУ с тактовой частотой 7Gbps (пропускной способности памяти 224GB / с). При 1,88 решений на итерации, это в среднем 146 решений / сек, или приблизительно на 25% быстрее, чем Клэймор v5.
Теоретический предел производительности equihash на Rx 470, вероятно, около 25% быстрее, чем 146 решений, но это предполагает использование структуры данных 64 байт, что требует намного больше памяти. Так много памяти, что я думаю, что это не будет возможно с 4 Гб карты. По крайней мере, это будет что-то для владельцев 8GB Rx 480 карт, чтобы быть счастливым о.