реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Выравнивание производительности FPGA и ASIC на функциях хэширования, keccak
jojo
сообщение May 4 2018, 12:30
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Коллеги, есть вопрос.

Я хочу придумать решение, выравнивающее производительность FPGA и ASIC в задачах хэширования.
Первая идея, что пришла мне в голову - добавить большой мультиплексор на входе и выходе конвейера.

block'=MUX(block, select);
hash'=Keccak(block');
hash=MUX(block', select);

Таким образом конвейер Keccak в ASIC-е обрастает мультиплексорами, на которые тратится площадь кристалла.
В FPGA мультиплексоры и так есть в коммутационных ресурсах, но нужно собрать тьму прошивок под каждое значение входа select и грузить их по Selectmap.


Можно поставить аналогичные мультиплексоры внутрь конвейера между раундами. Но я бы не хотел это делать, т.к. хэш будет уже не Keccak.

Какие примерно параметры мультиплексора мне нужны, чтобы эта идея начала работать?
Исходный код конвейера прилагается, если кому не лень собрать и прокомментировать, буду рад.

Прикрепленные файлы
Прикрепленный файл  keccak.zip ( 3.9 килобайт ) Кол-во скачиваний: 15
 
Go to the top of the page
 
+Quote Post
yes
сообщение May 4 2018, 17:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



сомневаюсь в эффективности - входные мультиплексоры в ПЛИС достаточно маленькие и их структура скрыта от пользователя (в старых тулзах ксайлинса была доступна визуализация switch matrix-ов, но вот отреверсить их не получалась, даже какие-то предположения у меня не получилось сделать - там не мультиплексоры N->1, а какие-то хитрые наборы ключей, которые перемыкали между собой линии трассировки неким псевдослучайным, с точки зрения стороннего наблюдателя, образом. наверно, чтобы экономить конфигурационную память)

ну и в АЗИКе мультиплексор достаточно маленькая логика (кажется, что для большинства библиотек, ячеек нужно log4 от числа входов, что фигня)

кажется, помогло бы размазывание входных переменных по большой площади - но это и для ПЛИС вредит, но меньше
Go to the top of the page
 
+Quote Post
jojo
сообщение May 4 2018, 19:48
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Да, надо ещё подумать. Трудящиеся страдают от наплыва АСИКов.
У них появился интерес к ПЛИС, но нынешние алгоритмы все АСИК-незащищённые. Труба им всем, если ничего не сделать.

А 1600 шт. мультиплексоров 1600 в 1 много места займут? Я понимаю, что вопрос странный, но много или мало по сравнению с чем-нибудь известным - SHA1, например?

Моя идея сделать что-то вроде старого crypt, в котором соль влияла не на данные, а на связи внутри ядра.
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение May 5 2018, 23:13
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
Трудящиеся страдают от наплыва АСИКов.
У них появился интерес к ПЛИС, но нынешние алгоритмы все АСИК-незащищённые. Труба им всем, если ничего не сделать.

Кому труба и почему?
И вообще, что плохого в том, что появляется специализированное железо именно для вычисления хэш-функций?
Go to the top of the page
 
+Quote Post
jojo
сообщение May 6 2018, 03:18
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Цитата(one_eight_seven @ May 6 2018, 03:13) *
Кому труба и почему?
И вообще, что плохого в том, что появляется специализированное железо именно для вычисления хэш-функций?


Труба, главным образом, наступает для GPU. Ну, и что говорить, FPGA.

Специализировнное железо выпускается в неконтролируемых количествах, и только производитель получает с него навар. Проблема только в тираже, с технической стороны всё, конечно, идеально.

Производитель хитёр. Он долгое время скрытно использует своё железо перед тем, как его продать буратинам. Каждая партия железа уменьшает финансовый результат для конечных пользователей. И только производитель в выигрыше.

Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение May 6 2018, 06:51
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Вы сейчас не про хэш-функции ведь и не про GPU, и не про FPGA говорите. А про какое-нибудь спецприменение, типа криптовалют. А ни хэш-функции, ни GPU, ни FPGA создавались не для криптовалют, так что ничему не труба, и никто не пропадёт.

Сообщение отредактировал one_eight_seven - May 6 2018, 06:53
Go to the top of the page
 
+Quote Post
yes
сообщение May 6 2018, 12:28
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(jojo @ May 4 2018, 22:48) *
А 1600 шт. мультиплексоров 1600 в 1 много места займут?


ну в АЗИКе тоже никто не будет набирать из 2-1 мультиплексоров. синтезирует логическую функцию с ~1600 входами, у ячейки в стандартной библиотеки 4 входа (но если надо, то многовходовые ячейки-мультиплексоры можно специально разработать, чуть дороже дизайн выдет) - если не ошибаюсь, то что-то типа (1600/4)*log(1600,4) приблизительно 2К ячеек, что ничто

я имею поверхностное представление об алгоритмах криптовалют, но кажется очевидное решение - брать хэш от большого объема данных, как делают в "процессоро-ориентированных" коин-алгоритмах. за счет того, что ПЛИС имеют DDR контроллеры и сразу идут в больших корпусах, где много ножек и т.п. - то за счет этого можно резко поднять вложения в разработку АЗИКа (то еcть добавить DDR PHY, разрабатывать сразу под большой корпус и т.д. - главное, невозможность сделать такой АЗИК на дешевых 130нм/90нм технологиях)

upd: еще ПЛИС имеют внутреннюю память и DSP блоки - то есть добавив какие-то "очень широкие слова" и операции * - можно выиграть. но это ес-сно, в предположении, что ПЛИС мы имеем на 3-4 поколения новее, чем АЗИК - например, 28нм против 130нм

я не знаю размеров вложений в коин-азики, но может переход от 100К к 10М по стоимости разработки, охладит пыл
Go to the top of the page
 
+Quote Post
Shivers
сообщение May 8 2018, 14:47
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Если честно, я вообще не понял о чем топик стартер написал - для меня первый пост как на китайском. Но если нужен очень быстрый многовходовой мультиплексор, то раньше часто использовали буферы с третьим состоянием (tribuf) и подтяжкой (bushold). Можно было делать мультиплексоры и 16 в 1 и 32 в 1 - работало очень быстро. Я не уверен, что это хорошее решение на финфетах или даже суб-100нм (из-за паразитов), но если очень надо то имеет смысл проверить.
Go to the top of the page
 
+Quote Post
jojo
сообщение May 8 2018, 16:23
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Цитата(Shivers @ May 8 2018, 18:47) *
Если честно, я вообще не понял о чем топик стартер написал - для меня первый пост как на китайском. Но если нужен очень быстрый многовходовой мультиплексор, то раньше часто использовали буферы с третьим состоянием (tribuf) и подтяжкой (bushold). Можно было делать мультиплексоры и 16 в 1 и 32 в 1 - работало очень быстро. Я не уверен, что это хорошее решение на финфетах или даже суб-100нм (из-за паразитов), но если очень надо то имеет смысл проверить.


Смысл в том, что я вынуждаю разработчиков микросхемы ставить мультиплексор туда, где у меня его не будет. У меня 1000 немного отличающихся прошивок FPGA, а в ASIC мультиплексоры на 1000 входов перед каждым триггером.

Пример.
В большом Kintex-7, допустим, получится 10 конвейеров * 500 МГц = 5 гигахэшей/сек.
Специализированный вычислительный блок (т.н. АСИК) даст сопоставимую производительность по порядку величины. Но их, блоков, продают 100500 шт, они дешевые, и net hashrate улетает в небеса.

Цель модифицировать алгоритм хэша так, чтобы он от этого стал хуже реализовываться в ASIC.
Go to the top of the page
 
+Quote Post
yes
сообщение May 8 2018, 18:35
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



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

про мультиплексоры - сорри за повтор, но не нагрузите этим АЗИК - подумайте про готовое IP : PCIE - то есть обмен с ПК, MIG - то есть внешняя память - эти два для больших объемов данных, внутренняя память - какие-то сверхширокие слова - этим и GPU можно уделать, наверно, DSP блоки - используйте умножение, по-моему вполне возможно для "перемешивания битов" - не вырождается множество, и т.д
то есть нужно сделать такую функцию, которая не параллелится легко, ну то есть 1 ПЛИСину не получится заменить 10 АЗИКами

это может дать некотурую фору - так то АЗИК всегда выиграет, но из-за большого (большЕго) в случае использования HARD IP порога стоимости, можно порезвиться пока кто-то рискнет вложиться в АЗИК
Go to the top of the page
 
+Quote Post
Shivers
сообщение May 10 2018, 10:14
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Библиотеки бывают разные, даже для одной технологии. Если вы покупаете библиотеку за деньги, то имеете право затребовать нужный элемент. Может, С-элемент вам и не сделают, но три-буф с бас-холдом обязаны, т.к. это совершенно обычные элементы. Сделать три-буф очень просто - надо просто разломить надвое защелку. Один инвертор для управления и один ключ на 4-х транзисторах, итого 6 транзисторов. Всего лишь.
Синтезаторы действительно очень не любят, когда на шине больше одного драйвера. Но мультиплексоры, о которых я говорю, можно писать сразу на гейт-левеле, минуя синтез. Потом делается топология этого мультиплексора в P&R туле, выписывается либ и леф .. собственно и всё, его можно использовать в дизайне. STA отлично такие мультиплексоры видит. Не нужен ни аналоговый бэк-энд, ни характеризация, только обычные цифровые бэкэнд тулы.
Go to the top of the page
 
+Quote Post
Doka
сообщение May 10 2018, 15:47
Сообщение #12


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(jojo @ May 4 2018, 15:30) *
Можно поставить аналогичные мультиплексоры внутрь конвейера между раундами. Но я бы не хотел это делать, т.к. хэш будет уже не Keccak.

почему это проблема? потенциальное снижение криптостойкости?...
не факт.. алгоритм же не упрощается, а фактически дополнительные динамические перестановки добавляются


Цитата(yes @ May 4 2018, 20:01) *
там не мультиплексоры N->1, а какие-то хитрые наборы ключей, которые перемыкали между собой линии трассировки неким псевдослучайным

у xilinx на эту тему много патентов - оттуда можно часть информации взять, там действительно дикие switching matrix


Цитата(jojo @ May 6 2018, 06:18) *
Специализировнное железо выпускается в неконтролируемых количествах, и только производитель получает с него навар. Проблема только в тираже, с технической стороны всё, конечно, идеально.
Производитель хитёр. Он долгое время скрытно использует своё железо перед тем, как его продать буратинам. Каждая партия железа уменьшает финансовый результат для конечных пользователей. И только производитель в выигрыше.

ага.. а еще он может своё железо по предзаказу продавать... отличная модель.. время == деньги laughing.gif


Цитата(yes @ May 6 2018, 15:28) *
я имею поверхностное представление об алгоритмах криптовалют, но кажется очевидное решение - брать хэш от большого объема данных, как делают в "процессоро-ориентированных" коин-алгоритмах. за счет того, что ПЛИС имеют DDR контроллеры и сразу идут в больших корпусах, где много ножек и т.п. - то за счет этого можно резко поднять вложения в разработку АЗИКа (то еcть добавить DDR PHY, разрабатывать сразу под большой корпус и т.д. - главное, невозможность сделать такой АЗИК на дешевых 130нм/90нм технологиях)


Увы, и DDR давно не останавливает, хотя имеет ограниченную применяемость для алгоритмов:
делают SiP: само ядро с DDR PHY + кристалл DDR, получается компактно, удобно, молодёжно (и с точки зрения схемотехники майнеров не меняется ничего


Цитата(yes @ May 6 2018, 15:28) *
upd: еще ПЛИС имеют внутреннюю память и DSP блоки - то есть добавив какие-то "очень широкие слова" и операции * - можно выиграть. но это ес-сно, в предположении, что ПЛИС мы имеем на 3-4 поколения новее, чем АЗИК - например, 28нм против 130нм

это теплее.. у меня самого первой мыслью было задействование FPGA-специфичных блоков, навроде UltraRAM (Xilinx), на которую очень хорошо ложится scrypt например,
но в целом солидарен: ситуация неутешительная - при паритете технологий не переиграть, единственная вещь, на которой можно сыграть:
скорость разработки ASIC vs RTL для FPGA
Это надо принять, и этим пользоваться, дарю бизнес-модель: разрабатываем RTL для альткоина под FPGA, выбрасываем на рынок прошивку для распространённых плат с вкомпиленым devfee, одновременно с этим договариваемся с одним из асик-игроков о продаже RTL (тайм-ту-маркет, все дела) - итого в запасе будет 4...7мес, в зависимости от бизнес-процессов игрока. laughing.gif laughing.gif laughing.gif


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
jojo
сообщение May 10 2018, 15:51
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Цитата(Doka @ May 10 2018, 19:34) *
почему это проблема? потенциальное снижение криптостойкости?...
не факт.. алгоритм же не упрощается, а фактически дополнительные динамические перестановки добавляются


В общем да, не факт, что снижение. Это нужно проверить.

Как я понял, нужно задействовать всю пропускную способность PCI Express и DDR4,
только тогда изготовители ASIC немного отстанут.

С другой стороны, тогда можно просто сделать полезное решение HPC,
а обыватель вполне может купить FPGA для него при условии нормальной окупаемости (а обыватель майнит на всём что шевелится).
Проблема в том, что я ещё не идентифицировал такое решение, а те кто знает, делиться информацией не спешат.
Go to the top of the page
 
+Quote Post
Doka
сообщение May 10 2018, 16:04
Сообщение #14


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(jojo @ May 8 2018, 19:23) *
Смысл в том, что я вынуждаю разработчиков микросхемы ставить мультиплексор туда, где у меня его не будет. У меня 1000 немного отличающихся прошивок FPGA, а в ASIC мультиплексоры на 1000 входов перед каждым триггером.


вот еще идейка в порядке мозгового штурма:
ставить ПЛИСы на плате в кортеж: FPGA1 -> FPGA2 -> FPGA3 -> FPGA4 (направление датастрима, но нужно кастомное железо или вариант объединять платы с ПЛИС через встроенные MGT/GTX)
и заливать туда разные прошивки, которые будут являться частью одного алгоритма, т.о. начиная от определенной ёмкости ПЛИС, понадобится 4 асика, выполняющих эти 4 разные функции...
но это только концепция - чувствую чего-то я в ней явно не доглядел...



Цитата(jojo @ May 10 2018, 18:51) *
В общем да, не факт, что снижение. Это нужно проверить.

Как я понял, нужно задействовать всю пропускную способность PCI Express и DDR4,
только тогда изготовители ASIC немного отстанут.

ну, DDR легко и просто обходися упаковкой в SiP, хоть сколько кристаллов DDR клади рядом (притом на фото не кристаллы, а закорпусированные, можно сделать еще компактнее):


А с PCI-E надо решить что и ради чего там будет гоняться,
т.е. подразумевается что должен задействоваться хост-процессор для части функций, которые нереализуемы/дорогореализуемы на FPGA/ASIC ???

Цитата(jojo @ May 10 2018, 18:51) *
С другой стороны, тогда можно просто сделать полезное решение HPC,
а обыватель вполне может купить FPGA для него при условии нормальной окупаемости (а обыватель майнит на всём что шевелится).
Проблема в том, что я ещё не идентифицировал такое решение, а те кто знает, делиться информацией не спешат.


так для ML/NN сейчас куча решений выпускается для вставки в слот, не?..


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
jojo
сообщение May 10 2018, 16:10
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Цитата(Doka @ May 10 2018, 20:04) *
вот еще идейка в порядке мозгового штурма:
ставить ПЛИСы на плате в кортеж: FPGA1 -> FPGA2 -> FPGA3 -> FPGA4 (направление датастрима, но нужно кастомное железо или вариант объединять платы с ПЛИС через встроенные MGT/GTX)
и заливать туда разные прошивки, которые будут являться частью одного алгоритма, т.о. начиная от определенной ёмкости ПЛИС, понадобится 4 асика, выполняющих эти 4 разные функции...
но это только концепция - чувствую чего-то я в ней явно не доглядел...

ну, DDR легко и просто обходися упаковкой в SiP, хоть сколько кристаллов DDR клади рядом (притом на фото не кристаллы, а закорпусированные, можно сделать еще компактнее):


А с PCI-E надо решить что и ради чего там будет гоняться,
т.е. подразумевается что должен задействоваться хост-процессор для части функций, которые нереализуемы/дорогореализуемы на FPGA/ASIC ???

так для ML/NN сейчас куча решений выпускается для вставки в слот, не?..


На большинстве отладочных плат стоит 1 FPGA.
Хост лучше задействовать, чтобы снизить масштабируемость.
ML/NN я еще не щупал. Что-нибудь для примера есть стоящее?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th April 2024 - 21:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01503 секунд с 7
ELECTRONIX ©2004-2016