Мультиклеточный чип для майнинга

Россия произвела микропроцессор, который в 35 раз эффективнее видеокарт майнит Ethereum

В России разработали мультиклеточный чип, который оказался в 35 раз эффективнее для майнинга криптовалют, чем видеокарты. Об этом в интервью проекту «Вертикаль власти» рассказал интернет-омбудсмен Дмитрий Мариничев.

“Это уникальная разработка из советских времен — математически смоделированный мультиклеточный чип, он совершенно отличен от привычной архитектуры и подходит для поддержания блокчейна. На основе этого микропроцессора мы создаем универсальный майнер для поддержки любого блокчейна, а не для майнинга криптовалют как таковых. Хотя он может составить конкуренцию привычным майнерам на видеокартах”, — сообщил Мариничев.

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

“Чип будет доступен для потребителей не раньше чем через 10 месяцев. Мы заинтересованы, чтобы люди это покупали”, — заявил интернет-омбудсмен.

Напомним, в сентябре Госдума РФ рассмотрит законопроект о легализации криптовалют, однако положений о налоговом регулировании он не содержит. Кроме того, в России уже запущены отдельные проекты по тестированию национальной криптовалюты.

Подписывайтесь на новости Forklog в Telegram!

Источник

Российский суперпроцессор для майнинга разогнали до 2 ГГц. Он превосходит новейший чип Nvidia

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

Усовершенствованный Multiclet

Как выяснил CNews, российской компании «Мультиклет» из Екатеринбурга удалось повысить тактовую частоту своих процессоров с оригинальной мультиклеточной архитектурой с 1,6 до 2 ГГц, благодаря чему они по отдельным параметрам превосходят сходные по классу новейшие чипы Nvidia.

Первое сообщение о том, что компанией была проведена глубокая оптимизация RTL-кода (от англ. register transfer level, уровень регистровых передач) мультиклетки процессора MultiClet S1 для увеличения его частоты, появилось на сайте разработчика еще 30 июня 2020 г. Однако тогда компания сообщить CNews подробности оказалась не готова.

Напомним, MultiClet S1 на данный момент можно считать центральной разработкой компании. На старте проекта в августе 2017 г. на волне популярности технологии блокчейн и криптовалют MultiClet S1 позиционировался в качестве процессора, который должен был сделать майнинг (добычу криптовалют) «в 35-200 раз более эффективным».

После того как в начале 2018 г. курс основных мировых криптовалют катастрофически обрушился, а коммерческий майнинг на долгое время стал бесперспективным, позиционирование разработок «Мультиклета», по ряду признаков, претерпело сильные изменения.

В свежей публикации компании на «Хабре» (гендиректор и соучредитель «Мультиклета» Борис Зырянов подтвердил CNews, что ее автор — его сотрудник) сообщается, что организация концептуально переходит от создания отдельных процессоров к разработке мультиклеточной платформы (набора процессорных компонентов, обеспечивающих создание вычислительной среды) на основе MultiClet B — базового элемента, состоящего из четырех клеток.

«При создании MultiClet B были проведены множественные оптимизации ядра, что позволило увеличить тактовую частоту ядра до 2 ГГц на топонорме 28 нм и одновременно на 15-20% ускорить исполнения кода на этой частоте, — говорится в материале. — Ускорение было достигнуто за счет сокращения времени прохождения команд по тракту исполнения. В частности, было уменьшено время обработки команд в буфере арифметико-логического устройства и обеспечена передача адреса нового параграфа клеткам по отдельному тракту. Компилятор был обновлен до LLVM 11.0.0, что также дало ускорение скомпилированного кода».

MultiClet S1 в сравнении с Nvidia

В начале 2019 г. предполагалось, что 28-нанометровый MultiClet S1 с частотой 1,6 ГГц после завершения разработки будет иметь 64 клетки, 8 МБ памяти на кристалле при площади кристалла в 40 кв. мм. и энергопотребление 6 Вт. Процессор должен был поддерживать до 16 ГБ памяти RAM стандарта DDR4 3200MHz.

В свежем сравнительном тесте моделирование проводилось для процессора MultiClet S1, состоящего из 16 мультиклеток. «Данные по производительности платы получены расчетным путем, — говорится в публикации компании. — Для сравнения была выбрана старшая модель платы компании Nvidia, которая спроектирована специально для майнинга и выпуск которой намечен на 2021 г. Данные по ее планируемой производительности взяты с сайта компании»

Оценка использования мультитклеточной платформы для майнинга проводилась на примере получения криптовалюты Ethereum. «Мультиклет» это обосновывает тем, что «алгоритм подсчета хэшей Ethash написан для мультиклеточного процессора на ассемблере как можно более оптимально, поэтому компилятор здесь не играет роли, что позволяет более точно оценить предельную вычислительную мощность процессора; в отличие от других задач, для майнинга очень важно энергопотребление, чем мультиклеточная архитектура действительно отличается от существующих процессоров».

«Результаты показывают, что при близкой производительности, плата использующая процессоры MultiClet S1, по удельным показателям, эффективна более чем в два раза по сравнению с Nvidia 90HX», — говорится в публикации.

В цитируемой публикации компании также были приведены результаты различных синтетических тестов, сравнивающих MultiClet B с ядром Intel Kaby Lake. С этими результатами можно ознакомиться по ссылке с сайта разработчика.

Задержка создания Multiclet S1

Напомним, в июне 2018 г. CNews со ссылкой на участников проекта сообщал, что Multiclet S1 уже находится в финальной стадии создания. Процессор тогда был ориентирован на майнинговый проект RMC, основанный интернет-омбудсменом, главой и владельцем компании «Радиус груп» Дмитрием Мариничевым. Первые образцы Multiclet S1 должны были увидеть свет в сентябре 2018 г. («плюс минус месяц»), а первые устройства-майнеры на его основе — в ноябре того же года.

В декабре 2019 г. Мариничев и Зырянов сообщили CNews, что проект по ряду причин замедлился, но свернут не был. По оценкам Зырянова того времени, Multiclet S1 планировалось выпустить на TSMC во второй половине 2020 г. Его готовность с точки зрения разработки в «Мультиклете» оценивали в 70%.

Не исключено, что на динамику разработки повлиял тот факт, что с тех пор, как выяснил CNews в ноябре 2020 г. все бизнес-активы Мариничева, включая и вышеупомянутый «Радиус групп», были признаны банкротами.

Дополнения «Мультиклета»

Через некоторое время после публикации с CNews связался Борис Зырянов. «Проект Multiclet S1 заморожен в некотором состоянии, достигнутом на момент приблизительно год после прекращения финансирования, и ECAD оценки на 7 нм сделаны исключительно для этой статьи на “Хабре”, — отметил он. — Частота Multiclet S1 лимитирована памятью DDR4, и 2 ГГц получены для того, чтобы иметь запас для топологического проектирования. На самом деле, в проекте больше 1,6 ГГц не требуется. Более поздние работы ведутся уже над проектом нейровычислителя Multiclet S2 и базового элемента мультиклеточной платформы Multiclet B — все это моделируется для топонорм 28, 12, 7 нм. Во всех этих проектах, разумеется, есть общие части RTL-кода, поскольку все они являются мультиклеточными; есть и существенные отличия. Собственно, мультиклеточная платформа, как это и показано в статье, представляет собой множество разнообразных мультиклеточных процессоров, отличающихся, в том числе, на уровне кода ядра (мультиклетки)».

Источник

Дмитрий Мариничев создал прототип чипа для майнеров

Russian Mining Company (RMC) интернет-омбудсмена Дмитрия Мариничева, бизнесменов Сергея Бобылева и Бориса Зырянова в августе запускает производство прототипа «Мультиклета», или мультиклеточного процессора для майнеров нового поколения для добычи криптовалют — Multiclet S1. В октябре планируется запустить производство самого майнера Multiclet S1. Об этом Дмитрий Мариничев сообщил в Телеграм-чате компании 12 августа и раскрыл для «Инвест-Форсайта» некоторые подробности. Это будет первый чип «русской» разработки для майнеров Multiclet S1, которые можно обменивать на токены RMC.

Фото: pixabay.com

«Мультиклет» и прототип

«На этой неделе, в четверг, приезжает fpga-эмулятор. И должны на нем запустить прототип “Мультиклета”», — написал Дмитрий Мариничев в воскресенье, 12 августа, в Телеграм-чате инвесторам компании.

Fpga — field-programmable gate array эмулятор — это программа микросхемы, на основе которой будет создан новый чип «Мультиклет». Новый чип для майнеров Multiclet S1 был анонсирован год назад на пресс-конференции. Главное его отличие от существующих чипов — в высокой энергоэффективности. Энергоэффективность «Мультиклета» — в 35-200 раз выше, чем энергоэффективность майнеров на видеокартах. Новый процессор делают бытовым: на 28 нанометров (нм), 256 клеток, с вычислительной мощностью 22,2 Th/s; он сможет майнить любые альткойны, работающие на технологии Proof-of-Work, в том числе биткоин. Эти параметры компания и собирается соблюсти, по словам Дмитрия Мариничева. Разработала дизайн чипа «Мультиклет» одноименная компания из Екатеринбурга, созданная президентом компании «Микрон» Борисом Зыряновым и партнерами. Зырянов еще год назад сказал, что идеологически новый процессор готов, его разработка завершилась месяц назад, и он не сомневается в возможности его производства. Процессор будет работать на новой архитектуре: в отличие от существующих процессоров, на которых работают в том числе ASIC-майнеры, в нем вычисления будут идти не последовательно, а параллельно, меньше обращаясь к оперативной памяти. Это и создаст большую скорость. Документация о новом чипе и программном обеспечении Multiclet S1 доступна на сайте разработчика. Последняя новость по процессору — от 5 июля этого года — о создании математической библиотеки и библиотеки librt.

Обмен на токены

RMC собрала на ICO $43,2 млн для запуска производства майнеров биткоина нового поколения под брендом Sunrice, а также майнера Multiclet на одноименном чипе. $10 млн, как сказано в White Paper проекта, пойдет на разработку мультиклеточного процессора. Остальные деньги — на производство санрайзов. В начале ноября прошлого года RMC завершила ICO и через десять месяцев после размещения пообещала вывести на рынок новое устройство. Прошло девять месяцев — готов прототип «Мультиклета».

«За пару месяцев мы закончим топологию процессора (или схему кристалла) и будем размещать заказ на производстве фабрики TSMC», — говорит Дмитрий Мариничев.

TSMC — это тайваньская компания, один из крупнейших контрактных производителей микросхем (чипов). 10 757 токенов RMC будут обмениваться на Multiclet S1 в соотношении один к одному. Обмен запланирован непосредственно перед заказом на их производство в компанию TSMC, то есть в октябре.

Где производить чип «Мультиклет»?

Майнер Multiclet S1 немного запаздывает с выходом.

«Здесь просто разночтения присутствуют. Создание самого чипа в финальной стадии, — комментирует ситуацию Мариничев. — Разночтения в технологических периодах, разработчиках чипа, производстве чипа».

RMC вдумчиво выбирала компанию, где заказать производство чипа. Хотя изначально, по словам Мариничева:

«Ориентировались на TSMC (Taiwan Semiconductor Manufacturing Company) и их Ainy-блоки. Первая версия чипа была на TSMC выпущена. И инженерам легче».

Были варианты выбора производителя чипа между GlobalFoundries, Samsung и TSMC. TSMC делает свои чипы энергоэффективнее и экономичнее решений Samsung. Все комплектующие нового майнера: платы, микросхемы, процессоры, вентиляторы, радиаторы, программы — все, кроме чипов — будет производиться в России. Когда RMC объявляла о производстве собственных майнеров для майнинга криптовалют, она была единственной российской компанией с подобными планами. Сейчас в России появились и другие потенциальные производители майнингового оборудования: речь идет прежде всего о компании «Криптоюниверс».

Однако собственные чипы для майнеров в России до сих пор не разрабатывал и не делал никто. Количество производителей майнеров для криптовалют в мире выросло за год. Кроме Bitmain и BitFury заметными на этом рынке стали компании Ebang Communication и Canaan Creative. В августе Canaan презентовала устройство для майнинга криптовалют AvalonMiner A9 с 7-нанометровым чипом и хешрейтом 30 Th/s. Японский интернет-гигант GMO объявил о выпуске майнера для биткоина на базе 7-нанометровых ASIC-чипов, хешрейт новой модели достигает 33 Th/s. Эти машины превосходят по мощности Multiclet S1.

Сегодня стоимость одного токена RMC — $3900. Если на «Мультиклете» майнить биткоин, он будет проигрывать в производительности обычному асику, по словам Мариничева. Последняя модель асика от Bitmain — Asic S9 — стоит от $550, дешевле Multiclet S1.

«“Мультиклет” больше предназачен для альткоинов и построения нейросетей», — говорит Мариничев.

Помимо производства майнеров, Мариничев и компаньоны создали ферму для добычи криптовалюты на территории бывшего автозавода «Москвич». Она составляет ядро пула майнеров Bitcoin-Russia, доля которого в мировом объеме майнинга меньше полупроцента. Но RMC участвует в майнинге Эфириума и входит в пул etherdig.net. Этот пул пока не входит в число крупных пулов.

Автор: Наталья Кузнецова

Подписывайтесь на канал «Инвест-Форсайта» в «Яндекс.Дзене»

Источник

RMC холдинг, мультиклет майнер и ICO-генератор: полный отчет

Характеристики.

Планируется достичь следующих показателей:

  1. Количество клеток: 64
  2. Техпроцесс: 28 нм
  3. Тактовая частота: 1.6 ГГц
  4. Размер памяти на кристалле: 8 Мб
  5. Площадь кристалла: 40мм2
  6. Энергопотребление: 6 Вт

Реальные цифры будут анонсированы по результатам тестов изготовленных образцов в 2020 году. Помимо характеристик самого кристалла, процессор будет поддерживать до 16 Гб RAM стандарта DDR4 3200MHz, шину PCI Express и PLL.
Надо заметить, что техпроцесс 28 нм – это самый низкий бытовой диапазон, не требующий специальных разрешений на использование, поэтому был выбран именно он. По количеству клеток рассматривались разные варианты: 128 и 256, но с увеличением площади кристалла растёт процент брака. Остановились на 64 клетках и, соответственно, сравнительно небольшой площади, что даст больший выход годных кристаллов на пластине. Дальнейшее развитие возможно в рамках СвК (система в корпусе), где можно будет объединить несколько 64-клеточных кристаллов в один корпус.

Необходимо сказать, что назначение и применение процессора кардинально меняется. S1 будет не предназначенным для встраивания микропроцессором, какими были P1 и R1, а ускорителем вычислений. Так же, как GPGPU, плату с S1 можно будет вставить в PCI Express материнской платы обычного ПК и использовать для обработки данных.

Также производители асиков выпускают новые модели для X11 алгоритма и криптовалюты DASH

Компания PinIdea обновила ассортимент своей продукции новым ASIC устройством X11 Miner DR-100, мощность которого составляет 17 Гх/с. Новый асик не отстает от своих конкурентов компаний Bitmain и Innosilicon, которые также недавно анонсировали новые устройства для алгоритма X11. В настоящее время на сайте компании продажи устройств приостановлены, в связи с большим интересом покупателей и ограниченной серией устройств. Цена на сайте — 2.81255781 биткойна.

Технические характеристики: ASIC X11 Miner DR-100хэшрейт: 17000M(+-5%) потребляемая мощность: 820W (+-5%) внешние размеры: 28cm x 18cm(h) x 15cm(w) вес устройства: 5KG Интерфейс сетевого подключения: Lan(100m/1000m) охлаждение: 2 x 14038 Double ball fan (55DB) рабочая температура: 0℃

Antminer D3 (15GH/s) Dash

Лидирующий китайский производитель майнеров (асиков) Bitmain представляет новое поколение своего оборудования для добычи Dash. Новое устройство, на сегодняшний день, одно из наиболее эффективных в своем классе, получило очередной индекс — Antminer D3 (15 GH/s.) По сравнению с предыдущим поколением, эффективность нового майнера повысилась почти в 10 раз. Сегодня на сайте bitmain.com можно заказать устройство за 1450 долларов с датой поставки на конец ноября.

Технические характеристики: Antminer D3хэшрейт: 15 GHS/sec для алгоритма X11 (+/-5%). потребляемая мощность: 1200 Вт из розетки ( с блоком питания APW3 от Bitmain, энергоэффективность 93% при температуре окружающего воздуха 25 градусов по Цельсию). внешние размеры: 320мм x 130мм x 190мм.

INNOSILICON A5 DashMaster

INNOSILICON, мировой поставщик ASIC устройств, с гордостью представляет устройство следующего поколения X11, A5 DashMaster, со скоростью 30,2 Гх/с в режиме энергопотребления 750 Вт (заводская настройка по умолчанию) и может достигать 38 Гх/с в разогнанном режиме. Действительно, очень современная модель, до 2.5 раз превышающая хешрейт конкурентных устройств без увеличения энергопотребления. Как обещает производитель — устройство должно служить намного дольше своих аналогов и давать большую прибыль даже при быстром росте сложности сети. Цена устройства на сайте указана очень странно — 4.22 биткойна или 9999 USD; 254.23 LTC , что на текущий момент совсем несопоставимые цифры, будем надеяться, что к выходу новой партии на предзаказ, разработчики скорректируют это недоразумение.

Технические характеристики: INNOSILICON A5 DashMasterхэшрейт:30.2GH/s(+/-8%, in 750w без разгона) 38 GH/s(+/-8%, in 1250w в разгоне) потребляемая мощность: 750W (энергоэффективность 93% при температуре окружающего воздуха 25°C) чип: A5 DashMaster ASIC внешние размеры: 400mm(L) x 135mm(W) x 158mm(H) вес: 4.8KG рабочая температура: 0°C—85°C интерфейс сетевого подключения: Ethernet

Архитектура

В S1 минимальной вычислительной единицей теперь выступает “мультиклетка”: набор из 4 клеток, исполняющих некую последовательность команд. Сначала планировали объединять мультиклетки в группы под названием кластер для совместного исполнения команд: кластер должен был содержать 4 мультиклетки, всего на кристалле 4 раздельных кластера. Однако, каждая клетка имеет полную связь со всеми остальными клетками в кластере, и при увеличении группы связей становится слишком много, что резко усложняет топологическое проектирование микросхемы и снижает её характеристики. Поэтому, приняли решение отказаться от кластерного деления, поскольку усложнение не оправдывает полученные результаты. К тому же, для максимальной производительности выгоднее всего запускать код параллельно на каждой мультиклетке. Итого, сейчас процессор содержит 16 раздельных мультиклеток.
Мультиклетка, хоть и состоит из 4 клеток, отличается от 4-клеточного R1, в котором каждая клетка имела свою память, свой блок выборки команд, своё ALU. S1 устроен немного по-другому. ALU имеет 2 части: блок арифметики с плавающей точкой и блок целочисленной арифметики. Каждая клетка имеет отдельный целочисленный блок, но блоков с плавающей точкой в мультиклетке только два, и поэтому две пары клеток делят их между собой. Сделано это было, в основном, для уменьшения площади кристалла: 64-битная арифметика с плавающей точкой, в отличие от целочисленной арифметики, занимает очень много места. Иметь такой блок ALU на каждой клетке оказалось избыточным: выборка команд не обеспечивает загрузки ALU и они простаивают. При сокращении числа блоков ALU и сохранении темпов выборки команд и данных, как показала практика, общее время решения задач практически не меняется или меняется незначительно, а блоки ALU загружаются полностью. К тому же, арифметика с плавающей точкой используется не так часто, как с целочисленной.

Читайте также:  Модель оценки доходности долгосрочных финансовых активов

Схематический вид блоков процессоров R1 и S1 приведен на схеме ниже. Здесь:

  • CU (Control Unit) – блок выборки инструкций
  • ALUFX – арифметическо-логическое устройство целочисленной арифметики
  • ALUFP – арифметическо-логическое устройство арифметики с плавающей точкой
  • DMS (Data Memory Scheduler) – блок управления памятью данных
  • DM – память данных
  • PMS (Program Memory Scheduler) – блок управления памятью программ
  • PM – память программ

Архитектурные отличия S1:

  1. Команды теперь могут обращаться к результатам команд из предыдущих параграфов. Это очень важное изменение, позволяющее существенно ускорить переходы при ветвлении кода. В процессорах P1 и R1 не было другого выбора, кроме как записывать нужные результаты в память и тут же считывать их обратно первыми же командами в новом параграфе. Даже при использовании памяти на кристалле, операции записи и чтения занимают от 2 до 5 тактов каждая, которые можно сэкономить, просто обратившись к результату команды из предыдущего параграфа
  2. Запись в память и регистры теперь происходит сразу, а не по окончанию параграфа, что позволяет начать выполнение команд записи до окончания параграфа. В результате, уменьшается потенциальный простой между параграфами.
  3. Оптимизирована система команд, а именно:
      Добавлена 64-битная целочисленная арифметика: сложение, вычитание, умножение 32-битных чисел, возвращающее 64-битный результат.
  4. Изменен способ чтения из памяти: теперь для любой
    команды в качестве аргумента можно просто указать адрес, с которого нужно прочитать данные, при этом сохраняется очерёдность выполнения команд чтения и записи.

Это также сделало отдельную команду чтения из памяти устаревшей. Вместо этого, используется команда загрузки значения в коммутатор load

(ранее –
get
), указывая в качестве аргумента адрес в памяти:
.data foo: .long 0x1234 .text habr: load_l foo ; загрузит в коммутатор адрес метки foo load_l [foo] ; загрузит в коммутатор 0x1234 add_l [foo], 0xABCD ; прочитать значение и сложить с константой ; одной командой complete

Добавлен формат команд, позволяющий использовать 2 константных аргумента. Раньше можно было указывать константу только в качестве второго аргумента, первым аргументом всегда должна была быть ссылка на результат в коммутаторе. Изменение касается всех двухаргументных команд. Поле константы всегда 32 битное, поэтому такой формат позволяет, например, генерировать 64-битные константы одной командой.
Было:

load_l 0x12345678 patch_q @1, 0xDEADBEEF Стало: patch_q 0x12345678, 0xDEADBEEF

  • Изменены и дополнены векторные типы данных. То, что раньше называлось «упакованными» типами данных теперь смело можно называть векторными. В P1 и R1 операции над упакованными числами принимали только константу в качестве второго аргумента, т.е., например, при сложении, каждый элемент вектора складывался с одним и тем же числом, и этому не нашлось толкового применения. Теперь аналогичные операции можно применять над двумя полноценными векторами. Более того, такой способ работы с векторами полностью соответствует механизму векторов в LLVM, что теперь позволит компилятору генерировать код с использованием векторных типов. patch_q 0x00010002, 0x00030004 patch_q 0x00020003, 0x00040005 mul_ps @1, @2 ; результат — 00020006000C0014
  • Убраны процессорные флаги.
    Как следствие, убрано около 40 команд, опирающихся исключительно на значения флагов. Это позволило значительно сократить количество команд и, соответственно, площадь кристалла. А вся необходимая информация теперь хранится непосредственно в ячейке коммутатора.
    • При сравнении с нулём, вместо флага нуля теперь используется просто значение в коммутаторе
    • Вместо флага знака теперь используется бит, соответствующий типу команды: 7й для byte, 15й для short, 31й для long, 63й для quad. Благодаря тому, что знак размножается вплоть до 63го бита вне зависимости от типа, можно сравнивать числа разных типов: .data long: .long -0x1000 byte: .byte -0x10 .text habr: a := load_b [byte] ; В коммутатор попадет значение 0xFFFFFFFFFFFFFFF0, ; согласно типу byte 7й бит размножился до 63го. b := loadu_b [byte] ; В коммутатор попадет значение 0x00000000000000F0, ; т.к. команда loadu_b не размножает знак c := load_l [long] ; В коммутатор попадет значение 0xFFFFFFFFFFFFF000. ge_l @a, @c ; Результатом команды «больше либо равно» будет 1: ; сравнение учитывает 31й бит, согласно своему типу. lt_s @a, @b ; 1, т.к. b прочиталось как положительное число complete

    Флаг переноса больше не нужен, так как есть 64-битная арифметика

    Не так давно екатеринбургская начала программу по активной популяризации своего микропроцессора, основанного на уникальной мультиклеточной архитектуре. Для продвижения микропроцессора компанией была разработана тестовая плата НW1-MCp04, которая вначале продавалась за нереальные 45 тыс. руб. Но сейчас ценник упал до 16 тыс. руб., и к тому же ОАО «Мультиклет» развернуло компанию по тестовому удаленному доступу к отладочной плате:

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

    Тема отечественной электроники мне очень интересна, и я пристально слежу за новостями в этой сфере по личным причинам. Я учился на кафедре микроэлектроники и полупроводниковых приборов в самый разгар перестройки, когда развалили всё что можно, а нового не построили. Интернета не было, а был полный информационный вакуум, немного разбавленный конференциями ФИДО. Упор в учебе делался только на теорию — математика, физика твердого тела, кристаллическая химия. По технологии разработки микросхем не было ни одного курса, и мы не знали ничего про Verilog, VDHL, библиотеки стандартных ячеек. Топологию микросхем предполагалось разводить «врукопашную», ни о какой автоматизации процесса речи не шло. Да вот, пожалуйста, пример из 2005 года такого же ВУЗа:

    читаем раздел «Проектирование топологии полупроводниковых ИМС». Хоть учебный материал уже и не перестроечный, а воз и ныне там, этакий привет из восьмидесятых.

    В общем, как вы понимаете, по специальности я никогда не работал. Все практические знания ограничены пятёркой электронных самоделок, самые сложные из которых — самодельное светодиодное табло «бегущая строка» 64×8 на комплекте К580 и самодельная голосовая сигнализация в автомобиле с прошивкой оцифровки голоса в микросхемы К573РФ2. Но тема отечественной микроэлектроники мне близка, и я, что называется, душой болею за все события, которые происходят в этой сфере.

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

    Время на вдумчивое чтение документации я так и не нашел, только пару раз силой заставлял себя засунуть в мозги материалы с сайта multiclet.com. В тестировании меня больше интересовала производительность микропроцессора — в любых «попугаях», лишь бы было с чем сравнивать. Я расчитывал сделать тройку программ. Первую (естественно, с большим количеством итераций) для тестирования элементарных арифметические операций с целочислительными значениями, вторую — со значениями с плавающей точкой, а третья программа с тригонометрическими функциями должна была проверить по большей части не вычислительные возможности самого процессора, а качество математических библиотек. Такие же программы я хотел впоследствие запустить на имеющейся у меня Arduino Uno, чтобы получить сравнительную производительность Мультиклета в «Ардуинах ATmega328p». Понятно, что такое сравнение очень некорректно (и битность не та, и архитектура другая), но некоторое представление о производительности дать сможет.

    Мультиклеточная архитектура — это начинающее сейчас развиваться направление в вычислительных системах. Традиционные микропроцессоры опираются на фон-нейманскую или гарвардскую архитектуру, в которой вычислительное устройство последовательно выполняет поток команд. Микропроцессор «Мультиклет» построен по так называемой пост-фон-нейманской архитектуре, в которой поток команд одновременно выполняется на нескольких вычислительных устройствах (клетках), и основной вопрос состоит в том, как распределять команды по клеткам. Впрочем, алгоритм распределения команд довольно прост, и его можно понять из следующих документов:

    Концепция мультиклеточного процессора

    Краткий обзор архитектуры

    Говоря другими словами, в «Мультиклет» используется как явный параллелизм, задаваемый в машинном коде компилятором, так и «аппаратный» параллелизм, позволяющий эффективно распараллеливать код на клетки на аппаратном уровне в реальном времени (распарралеливание триад с ожиданием готовности данных).

    Удаленное подключение к стенду

    Тестовый стенд представлял собой компьютер с операционной системой Linux, к которому подключена тестовая плата НW1-MCp04. Изначально не было информации, что за операционка стоит на стенде. Для подключения к стенду необходимо было использовать RDP-протокол, а в рекомендациях по подключению было написано следующее:

    Для получения доступа Вам необходимо набрать в строке браузера: https://тутнашIP/remacc/ляляля» Для подключения к удаленному рабочему столу используется протокол RDP

    На вопрос «Это значит что нужно заходить в Windows через браузер Internet Explorer? Уточните, пожалуйста, среду, в которой возможен вход», был ответ:

    Пуск/все программы/стандартные/подключение к удаленному рабочему столу

    Всё указывало на то, что тестирование будет проводиться в среде ОС Windows. Но по факту оказалось, что тестовая машина работает на Linux Fedora 18. А протокол RDP был выбран для того, чтобы обеспечить простое подключение Windows пользователей. Но так как у меня на домашнем компьютере Windows отсутствует, пришлось срочно разбираться, чем в Linux можно работать через RDP протокол.

    В начале я попробовал подключиться через рекомендованное гуру Remmina. Но оказалось, что начиная с какого-то релиза в Remmina разломали декодирование картинки десктопа, поэтому человеческая работа была невозможна:

    В принципе, консоль кое-как отрисовывалась (если не двигать окно), и ее было бы достаточно, но проблема в том, что было неясно, что вообще на этом стенде делать. Куда подключена плата? Где искать компиляторы? Есть ли тестовые примеры? Как оказалось, авторы заботливо положили на рабочий стол файл с говорящим названием read.me, но Remmina не могла отрисовать содержимое рабочего стола, и поэтому наличие этого файла не было вообще видно.

    Поигравшись с настройками Remmina я понял, что правильно работать её не заставишь. Поэтому решил подключиться через rdesktop. Поначалу и им невозможно было прицепиться, так как по-умолчанию выставлялась русская раскладка (даже если в системе при запуске rdesktop стояла английская, раскладка, видимо, определялась по локали), а логин-пароль нужно было на английском набирать. Копи-паст не работал. При попытке переключить язык клавишами Shift+ALT выдавалась ошибка:

    Решить проблему удалось с помощью явного указания языка в опциях:

    rdesktop -k en-us -g 1024×768

    После чего можно было увидеть нормальный рабочий стол и начать исследовать Multiclet. Серьезно мешающая проблема была только одна: через rdesktop не работал буфер обмена (в Remmina, кстати, работал), поэтому невозможно было оперативно записывать свои действия и быстро копипастить что-то из своих заготовок. Кое-как обошелся сервисом paste.bin.org (браузер работал, доступ в интернет был), но это было очень неудобно и в разы уменьшало производительность труда.

    И еще одна проблема — в системе не был настроен переключатель раскладки, так что можно было писать только латинскими символами. Поэтому в специально созданой теме на Linux.Org.Ru мне приходилось писать транслитом, если я писал с удаленной машины.

    Посмотрев первые пару примеров, я обнаружил, что они делают такие действия, которые невозможно удаленно проверить. Например, мигают лампочками на тестовой плате. Если бы к компьютеру была подключена веб-камера, направленная на плату, свои действия можно было бы увидеть воочию. Но вебкамеры небыло, поэтому протестировать Мультиклет можно было только передавая и получая байтики.

    Я решил разбить тестирование на несколько этапов:

    1. Протестировать факт что вообще работает флешер и прошивку можно загонять в плату Multiclet. Прошивку брать из тестового комплекта ПО;

    2. Протестировать компилирование простого кода через компилятор и окончательную сборку бинарника;

    3. Протестировать возможность заливки самостоятельно изготовленного на этапе 2 бинарника;

    4. Протестировать возможность получения каких-нибудь байтов от платы;

    5. Написать и протестировать примитивный эхо-сервер;

    6. Написать и выполнить программу, передающую лог своей работы через порт;

    7, 8, 9. Протестировать программы с целочислительной и вещественной арифметикой, протестировать тригонометрические функции.

    Сразу скажу, что мне удалось добраться только до пункта 4.

    Тестирование флешера прошло быстро и просто. Бинарники шустро закачивались на плату. В логе работы флешера ошибок не обнаруживалось. Так что я убедился, что плата живая, подключена к компьютеру, и прошивается. Как оказалось, это был преждевременный вывод, ибо дальше меня ждал сюрприз.

    Тестирование компиляции в принципе прошло успешно. Для компиляции ненужно было пользоваться отдельно компилятором и отдельно линкером, так как в наборе ПО была готовая исполняемая программа mc-lcc, которая создавала бинарный файл. Пример команды компиляции следующий:

    mc-lcc -v -target=mcp -Wp-I/usr/local/include/Multiclet/MCp0411100101/ -Wa—arch=MCp0411100101 -Wl-L/usr/local/lib/Multiclet/MCp0411100101/ -Wl-lmath -Wl-M -o image.bin /usr/local/lib/Multiclet/MCp0411100101/crt0.o example_01.c

    Долго не мог понять, как скомпилировать программу, которая использует библиотеку UART:

    Ведь без нее ничего протестировать не получилось бы. Оказалось, что для компиляции надо было добавить опцию:

    Решение простое и очевидное, тем более что в глубинах документации об этой опции было написано. Но по факту потратил на эту проблему много времени.

    Но самый главный сюрприз меня ждал на третьем этапе, когда я попытался залить самостоятельно скомпилированную программу в Multiclet. Процесс заливки бинарника через программу mc-ploader доходил до 100% и шел далее. В какой-то момент происходил сегфолт и на этом все заканчивалось:

    $ mc-ploader image.bin info: selected device: «PicoTAP A» info: erasing device: 100% info: image loading: 1484%Segmentation fault (core dumped)

    На этом примере видно, что залилось аж 1484% машинного кода. Я бился с этой проблемой, пока не решил самостоятельно скомпилировать стандартный пример с UART библиотекой и залить его в Multiclet. Оказалось, что даже стандартный пример после компиляции не заливается в Multiclet. А предкомпилированный кем-то бинарник с этим же примером заливается без проблем.

    Как позже выяснилось, была какая-то проблема в Linux-флешере, и он мог корректно заливать только те бинарники, которые были созданы через компилятор, входящий в комплект SDK под Windows. Поэтому предкомпиленные бинарники примеров заливались нормально (они были собраны в Windows), а скомпилированные непосредственно в Linux — нет. Не сказать, чтобы вообще флешер не работал — ведь пару раз мне удалось залить свои бинарники. Но при каких обстоятельствах, и что повлияло на положительный результат заливки, я так и не понял. Позже авторы сообщили, что ошибка в Linux-загрузчике была исправлена, и была сделана краткая инструкция по сборке проекта.

    В конечном итоге я добрался до четвертого этапа, и был готов к тому, чтобы начать получать байтики от Multiclet. Я смог скомпилировать и залить стандартный пример из документации, который после истечения некоторого времени отправляет в виртуальный COM-порт, под которым видится Multiclet, значение 0xAB:

    Чтобы увидеть ответ от Multiclet, я воспользовался программой CuteCom, которая была обнаружена в Fedora. После настройки параметров порта, я увидел заветный байт:

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

    Результат тестирования следующий: российский микропроцессор Мультиклет и его отладочная плата реально существуют и работают. В настоящий момент дорабатываются инструменты разработчика, и они уже позволяют полноценно работать с платой. Учитывая, что проблемы оперативно решаются, можно сказать что мы видим инновационный и конкурентноспособный продукт, который обязательно займет достойное место в своей области применения.

    Что касается нестабильно работающей процедуры заливки прошивки на плату Multiclet (который на момент написания статьи уже исправлен), я хочу сказать что в той же мегапопулярной Arduino дела под Linux обстоят не лучшим образом: в какой-то момент заливка перестает работать, и приходится совершать нетривиальные магические действия, чтобы флешер все-таки смог залить программу без перезапуска компьютера разработчика.

    В любом случае хочу пожелать команде Мультиклет дальнейшего развития и совершенствования. Они большие молодцы, что разработали свою архитектуру и смогли ее воплотить в железе. Я очень рад, что архитектура работоспособна и опирается на глубокие научные познания коллектива разработчиков. Мультиклеточный микропроцессор показал свою состоятельность, и я желаю этому продукту широко выйти на российский и международный рынок, чтобы обеспечить получение прибыли, которая окупит и этап НИОКР, и этап разработки и все этапы производства. Ведь именно это мы понимаем под термином «инновационная экономика».

    Компилятор на базе LLVM

    Компилятор языка C для S1 аналогичен R1, и так как архитектура принципиально не изменилась, то и проблемы, описанные в предыдущей статье, к сожалению, не исчезли.
    Однако, в процессе реализации новой системы команд количество выходного кода снизилось само по себе, просто благодаря обновлению системы команд. Помимо этого, есть ещё множество мелких оптимизаций, которые позволят сократить количество команд в коде, некоторые из которых уже сделаны (например, генерация 64-битных констант одной командой). Но есть ещё более серьёзные оптимизации, которые необходимо сделать, и их можно выстроить в порядке возрастания одновременно как эффективности, так и сложности реализации:

      Возможность генерации всех двухаргументных команд с двумя константами.
      Генерация 64-битной константы через patch_q – это всего лишь частный случай, а нужен общий. На самом деле, смысл этой оптимизации в том, чтобы позволить командам подставлять именно первый аргумент как константу, так как второй аргумент всегда мог быть константой, и это давно реализовано. Это не слишком частый случай, но, например, когда нужно вызвать функцию и записать на вершину стека адрес возврата из неё, то можно

    load_l func wr_l @1, #SP оптимизировать до wr_l func, #SP

  • Возможность подставлять обращение к памяти через аргумент в любой команде. Например, если нужно сложить два числа из памяти, можно load_l [foo] load_l [bar] add_l @1, @2 оптимизировать до add_l [foo], [bar] Эта оптимизация – расширение предыдущей, однако здесь уже нужен анализ: такую замену можно проводить только в том случае, если загруженные значения используется только один раз в этой команде сложения и нигде более. Если результат чтения используется даже всего в двух командах, то выгоднее прочитать из памяти один раз отдельной командой, а в остальных двух ссылаться на неё через коммутатор.
  • Оптимизация переноса виртуальных регистров между базовыми блоками. Для R1 перенос всех виртуальных регистров был сделан через память, что порождает очень большое количество чтений и записей в память, но другого способа переносить данные между параграфами просто не было. S1 позволяет обращаться к результатам команд предыдущих параграфов, поэтому, теоретически, многие операции с памятью можно убрать, что дало бы наибольший эффект среди всех оптимизаций. Однако, такой подход все равно ограничен коммутатором: не более 63 предыдущих результатов, поэтому далеко не каждый перенос виртуального регистра можно так реализовать. Как это сделать – задача нетривиальная, и анализ возможностей ее решения еще только предстоит. Исходники компилятора, возможно, появятся в открытом доступе, поэтому если у кого-нибудь есть идеи, и вы желаете присоединиться к разработке, то вы сможете это сделать.
  • Анонс новинки

    Весной этого года в Москве прошла конференция «Бизнес и майнинг». Она была посвящена последним тенденциям в мире криптографических денег, а также показу нового оборудования для майнинга. Однако, на деле мероприятие оказалось куда более важным, нежели предполагалось изначально, событием.

    Подтверждением тому служит состав участников. Здесь присутствовала и Оксана Бобылева, являющаяся главой отдела по вопросам blockchain Партии Роста, и Элина Сидоренко, которая возглавляет группу по изучению оборота электронных денег, созданную правительством, и, наконец, Дмитрий Мариничев, занимающий должность интернет-омбудсмена и обладающий членством в автономной некоммерческой организации «Агентства стратегических инициатив», а кроме того, руководящий .

    Открывала конференцию Оксана Бобылева. Она поприветствовала всех участников встречи от лица Партии Роста. Ее бессменный лидер Борис Титов является Уполномоченным при Президенте Российской Федерации и выступает в защиту технологии blockchain от уголовного преследования. Стоит упомянуть, что партия даже разрабатывает свою площадку на основе блокчейна и применяет собственную цифровую валюту.

    Первым выступал руководитель Сергей Бобылев. В краткой форме он изложил основные тезисы технологии блокчейна, далее поведал о значимости майнеров в инфраструктуре любой электронной валюты, сделав особый акцент на сегодняшней обстановке в сфере майнинга. Сейчас осталось фактически всего лишь 2 крупных производителя, специализирующихся на выпуске асиков — Bitmain и Bitfury. Первый зарекомендовал себя преимущественно в работе с физическим лицами, второй же, напротив, ориентируется на более объемные заказы. Доля Bitmain на рынке специализированного оборудования превышает 65%, доля Bitfury же составляет не менее 20%. В то же время именно чипы от последнего считаются одними из самых энергоэффективных.

    Разрешение этого недоразумения взяла на себя южнокорейская фирма Pantech. Ей была произведена линейка майнеров: 2 асика серии SX5 и SX6 с воздушным охлаждением, также 2 девайса с жидкостным охлаждением под номерами WX6 и W6 соответственно, представляющие в сущности обогревательное оборудование. Наибольший интерес заслуживает модель Pantech SX5.

    Окупаемость техники по подсчетам Сергея разнится в диапазоне 12-16 месяцев. Впрочем, показатель можно и повысить. Например, применить высоковольтный источник питания для майнера. Другой способ заключается в использования тепла, которое излучает асик. Если возникает необходимость тратить электроэнергию на обогрев, к примеру, дачного коттеджа, зачем обращаться к традиционным вариантам, когда можно воспользоваться техникой для майнинга. Помимо вполне реальной пользы, она даст возможность окупить расходы на электричество и получить неплохую прибавку к основному источнику заработка.

    При этом, по мнению Сергея, именно асик от южнокорейской компании больше всего приспособлен к российским условиям. Он обладает массивным радиатором, защищающим детали устройства от перегрева. Благодаря этому сокращается расход электричества, поскольку отпадает необходимость в активном охлаждении. Наконец, результаты испытаний продемонстрировали, что Pantech SX5 имеет значительно больший потенциал для разгона, нежели чипы от Bitmain или Bitfury.

    Бенчмарки

    Так как процессор еще не выпущен на кристалле, сложно оценить его реальную производительность. Однако, RTL код ядра уже готов, а значит можно сделать оценку с помощью симуляции или FPGA. Для запуска следующих бенчмарков использовалась симуляция с помощи программы ModelSim, чтобы вычислить точное время выполнения (в тактах). Так как сделать симуляцию всего кристалла сложно и это занимает очень много времени, поэтому моделировалась одна мультиклетка, и результат умножался на 16 (если задача предназначена для многопоточности), поскольку каждая мультиклетка может работать совершенно независимо от других.
    Параллельно проводилось моделирование мультиклетки на Xilinx Virtex-6 для проверки работоспособности процессорного кода на реальном железе.

    CoreMark

    CoreMark – набор тестов для комплексной оценки производительности микроконтроллеров и центральных процессоров, а также их C-компиляторов. Как вы можете заметить, процессор S1 не является ни тем, ни другим. Однако, он предназначен для исполнения абсолютно арбитрарного кода, т.е. любого, который мог бы быть запущен на центральном процессоре. А значит CoreMark подходит для оценки производительности S1 ничуть не хуже.
    CoreMark содержит работу со связными списками, матрицами, машиной состояний и подсчетом суммы CRC. В общем, большинство кода получается строго последовательным (что проверяет на прочность мультиклеточный аппаратный параллелизм) и с множеством ветвлений, из-за чего возможности компилятора играют значительную роль в итоговой производительности. Откомпилированный код содержит довольно много коротких параграфов и несмотря на то, что скорость перехода между ними увеличилась, ветвление включает в себя работу с памятью, чего хотелось бы избегать по максимуму.

    Сравнительная таблица показателей CoreMark:

    Multiclet R1 (llvm compiler) Multiclet S1 (llvm compiler) Эльбрус-4С (R500/E) Texas Inst. AM5728 ARM Cortex-A15 Baikal-T1 Intel Core i7 7700K
    Год выпуска 2015 2019 2014 2018 2016 2017
    Тактовая частота, МГц 100 1600 700 1500 1200 4500
    Общий показатель CoreMark 59 18356 1214 15789 13142 182128
    CoreMark/MHz 0.59 11.47 5.05 10.53 10.95 40.47

    Результат одной мультиклетки – 1147, или 0.72 / MHz, что выше, чем у R1. Это говорит о преимуществах развития мультиклеточной архитектуры в новом процессоре.

    Whetstone

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

    1. Array elements
    2. Array as parameter
    3. Conditional jumps
    4. Integer arithmetic
    5. Trigonometric functions (tan, sin, cos)
    6. Procedure calls
    7. Array references
    8. Standard functions (sqrt, exp, log)

    Они разбиваются на категории: модули 1, 2 и 6 измеряют производительность операций с плавающей точкой (строки MFLOPS1-3); модули 5 и 8 — математических функций (COS MOPS, EXP MOPS); модули 4 и 7 — целочисленной арифметики (FIXPT MOPS, EQUAL MOPS); модуль 3 — условных переходов (IF MOPS). В таблице ниже вторая строка MWIPS – общий показатель.
    В отличие от CoreMark, Whetstone будет сравниваться на одном ядре или, как в нашем случае, на одной мультиклетке. Так как количество ядер сильно отличается в разных процессорах, то, для чистоты эксперимента, рассмотрим показатели в расчёте на мегагерц.

    Сравнительная таблица показателей Whetstone:

    Процессор MultiClet R1 MultiClet S1 Core i7 4820K ARM v8-A53
    Частота, MHz 100 1600 3900 1300
    MWIPS / MHz 0.311 0.343 0.887 0.642
    MFLOPS1 / MHz 0.157 0.156 0.341 0.268
    MFLOPS2 / MHz 0.153 0.111 0.308 0.241
    MFLOPS3 / MHz 0.029 0.124 0.167 0.239
    COS MOPS / MHz 0.018 0.008 0.023 0.028
    EXP MOPS / MHz 0.008 0.005 0.014 0.004
    FIXPT MOPS / MHz 0.714 0.116 0.998 1.197
    IF MOPS / MHz 0.081 0.196 1.504 1.436
    EQUAL MOPS / MHz 0.143 0.149 0.251 0.439

    Whetstone содержит гораздо больше непосредственно вычислительных операций, чем CoreMark (что очень заметно, глядя на код ниже), поэтому здесь важно помнить: количество блоков ALU с плавающей точкой сокращено в два раза. Однако, скорость вычислений почти не пострадала, в сравнении с R1.
    Некоторые модули очень хорошо ложатся на мультиклеточную архитектуру. Например, модуль 2 считает в цикле множество значений, и благодаря полной поддержке чисел с плавающей точкой двойной точности как процессором, так и компилятором, после компиляции получаются большие и красивые параграфы, где по настоящему раскрываются вычислительные возможности мультиклеточной архитектуры:
    Большой и красивый параграф на 120 команд
    pa: SR4 := loadu_q [#SP + 16] SR5 := loadu_q [#SP + 8] SR6 := loadu_l [#SP + 4] SR7 := loadu_l [#SP] setjf_l @0, @SR7 SR8 := add_l @SR6, 0x8 SR9 := add_l @SR6, 0x10 SR10 := add_l @SR6, 0x18 SR11 := loadu_q [@SR6] SR12 := loadu_q [@SR8] SR13 := loadu_q [@SR9] SR14 := loadu_q [@SR10] SR15 := add_d @SR11, @SR12 SR11 := add_d @SR15, @SR13 SR15 := sub_d @SR11, @SR14 SR11 := mul_d @SR15, @SR5 SR15 := add_d @SR12, @SR11 SR12 := sub_d @SR15, @SR13 SR15 := add_d @SR14, @SR12 SR12 := mul_d @SR15, @SR5 SR15 := sub_d @SR11, @SR12 SR16 := sub_d @SR12, @SR11 SR17 := add_d @SR11, @SR12 SR11 := add_d @SR13, @SR15 SR13 := add_d @SR14, @SR11 SR11 := mul_d @SR13, @SR5 SR13 := add_d @SR16, @SR11 SR15 := add_d @SR17, @SR11 SR16 := add_d @SR14, @SR13 SR13 := div_d @SR16, @SR4 SR14 := sub_d @SR15, @SR13 SR15 := mul_d @SR14, @SR5 SR14 := add_d @SR12, @SR15 SR12 := sub_d @SR14, @SR11 SR14 := add_d @SR13, @SR12 SR12 := mul_d @SR14, @SR5 SR14 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR15, @SR12 SR15 := add_d @SR11, @SR14 SR11 := add_d @SR13, @SR15 SR14 := mul_d @SR11, @SR5 SR11 := add_d @SR16, @SR14 SR15 := add_d @SR17, @SR14 SR16 := add_d @SR13, @SR11 SR11 := div_d @SR16, @SR4 SR13 := sub_d @SR15, @SR11 SR15 := mul_d @SR13, @SR5 SR13 := add_d @SR12, @SR15 SR12 := sub_d @SR13, @SR14 SR13 := add_d @SR11, @SR12 SR12 := mul_d @SR13, @SR5 SR13 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR15, @SR12 SR15 := add_d @SR14, @SR13 SR13 := add_d @SR11, @SR15 SR14 := mul_d @SR13, @SR5 SR13 := add_d @SR16, @SR14 SR15 := add_d @SR17, @SR14 SR16 := add_d @SR11, @SR13 SR11 := div_d @SR16, @SR4 SR13 := sub_d @SR15, @SR11 SR4 := loadu_q @SR4 SR5 := loadu_q @SR5 SR6 := loadu_q @SR6 SR7 := loadu_q @SR7 SR15 := mul_d @SR13, @SR5 SR8 := loadu_q @SR8 SR9 := loadu_q @SR9 SR10 := loadu_q @SR10 SR13 := add_d @SR12, @SR15 SR12 := sub_d @SR13, @SR14 SR13 := add_d @SR11, @SR12 SR12 := mul_d @SR13, @SR5 SR13 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR15, @SR12 SR15 := add_d @SR14, @SR13 SR13 := add_d @SR11, @SR15 SR14 := mul_d @SR13, @SR5 SR13 := add_d @SR16, @SR14 SR15 := add_d @SR17, @SR14 SR16 := add_d @SR11, @SR13 SR11 := div_d @SR16, @SR4 SR13 := sub_d @SR15, @SR11 SR15 := mul_d @SR13, @SR5 SR13 := add_d @SR12, @SR15 SR12 := sub_d @SR13, @SR14 SR13 := add_d @SR11, @SR12 SR12 := mul_d @SR13, @SR5 SR13 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR15, @SR12 SR15 := add_d @SR14, @SR13 SR13 := add_d @SR11, @SR15 SR14 := mul_d @SR13, @SR5 SR13 := add_d @SR16, @SR14 SR15 := add_d @SR17, @SR14 SR16 := add_d @SR11, @SR13 SR11 := div_d @SR16, @SR4 SR13 := sub_d @SR15, @SR11 SR15 := mul_d @SR13, @SR5 SR13 := add_d @SR12, @SR15 SR12 := sub_d @SR13, @SR14 SR13 := add_d @SR11, @SR12 SR12 := mul_d @SR13, @SR5 SR13 := sub_d @SR15, @SR12 SR16 := sub_d @SR12, @SR15 SR17 := add_d @SR14, @SR13 SR13 := add_d @SR11, @SR17 SR14 := mul_d @SR13, @SR5 SR5 := add_d @SR16, @SR14 SR13 := add_d @SR11, @SR5 SR5 := div_d @SR13, @SR4 wr_q @SR15, @SR6 wr_q @SR12, @SR8 wr_q @SR14, @SR9 wr_q @SR5, @SR10 complete

    popcnt

    Для отражения характеристик самой архитектуры (без зависимости от компилятора) измерим что-нибудь, написанное на ассемблере с учетом всех особенностей архитектуры. Например, подсчет единичных бит в 512-ти битном числе (popcnt). Для очевидности будем брать результаты одной мультиклетки, чтобы их можно было сравнить с R1.
    Сравнительная таблица, количество тактов на один цикл расчёта 32-х бит:

    Алгоритм Multiclet R1 Multiclet S1 (одна мультиклетка)
    BitHacks 5.0 2.625

    Здесь были использованы новые обновленные векторные инструкции, что позволило сократить количество инструкций в два раза, по сравнению с таким же алгоритмом, реализованным на ассемблере R1. Скорость работы, соответственно, увеличилась в почти в 2 раза.
    popcnt

    bithacks: b0 := patch_q 0x1, 0x1 v0 := loadu_q [v] v1 := loadu_q [v+8] v2 := loadu_q [v+16] v3 := loadu_q [v+24] v4 := loadu_q [v+32] v5 := loadu_q [v+40] v6 := loadu_q [v+48] v7 := loadu_q [v+56] b1 := patch_q 0x55555555, 0x55555555 i00 := slr_pl @v0, @b0 i01 := slr_pl @v1, @b0 i02 := slr_pl @v2, @b0 i03 := slr_pl @v3, @b0 i04 := slr_pl @v4, @b0 i05 := slr_pl @v5, @b0 i06 := slr_pl @v6, @b0 i07 := slr_pl @v7, @b0 b2 := patch_q 0x33333333, 0x33333333 i10 := and_q @i00, @b1 i11 := and_q @i01, @b1 i12 := and_q @i02, @b1 i13 := and_q @i03, @b1 i14 := and_q @i04, @b1 i15 := and_q @i05, @b1 i16 := and_q @i06, @b1 i17 := and_q @i07, @b1 b3 := patch_q 0x2, 0x2 i20 := sub_pl @v0, @i10 i21 := sub_pl @v1, @i11 i22 := sub_pl @v2, @i12 i23 := sub_pl @v3, @i13 i24 := sub_pl @v4, @i14 i25 := sub_pl @v5, @i15 i26 := sub_pl @v6, @i16 i27 := sub_pl @v7, @i17 i30 := and_q @i20, @b2 i31 := and_q @i21, @b2 i32 := and_q @i22, @b2 i33 := and_q @i23, @b2 i34 := and_q @i24, @b2 i35 := and_q @i25, @b2 i36 := and_q @i26, @b2 i37 := and_q @i27, @b2 i40 := slr_pl @i20, @b3 i41 := slr_pl @i21, @b3 i42 := slr_pl @i22, @b3 i43 := slr_pl @i23, @b3 i44 := slr_pl @i24, @b3 i45 := slr_pl @i25, @b3 i46 := slr_pl @i26, @b3 i47 := slr_pl @i27, @b3 b4 := patch_q 0x4, 0x4 i50 := and_q @i40, @b2 i51 := and_q @i41, @b2 i52 := and_q @i42, @b2 i53 := and_q @i43, @b2 i54 := and_q @i44, @b2 i55 := and_q @i45, @b2 i56 := and_q @i46, @b2 i57 := and_q @i47, @b2 i60 := add_pl @i50, @i30 i61 := add_pl @i51, @i31 i62 := add_pl @i52, @i32 i63 := add_pl @i53, @i33 i64 := add_pl @i54, @i34 i65 := add_pl @i55, @i35 i66 := add_pl @i56, @i36 i67 := add_pl @i57, @i37 b5 := patch_q 0xf0f0f0f, 0xf0f0f0f i70 := slr_pl @i60, @b4 i71 := slr_pl @i61, @b4 i72 := slr_pl @i62, @b4 i73 := slr_pl @i63, @b4 i74 := slr_pl @i64, @b4 i75 := slr_pl @i65, @b4 i76 := slr_pl @i66, @b4 i77 := slr_pl @i67, @b4 b6 := patch_q 0x1010101, 0x1010101 i80 := add_pl @i70, @i60 i81 := add_pl @i71, @i61 i82 := add_pl @i72, @i62 i83 := add_pl @i73, @i63 i84 := add_pl @i74, @i64 i85 := add_pl @i75, @i65 i86 := add_pl @i76, @i66 i87 := add_pl @i77, @i67 b7 := patch_q 0x18, 0x18 i90 := and_q @i80, @b5 i91 := and_q @i81, @b5 i92 := and_q @i82, @b5 i93 := and_q @i83, @b5 i94 := and_q @i84, @b5 i95 := and_q @i85, @b5 i96 := and_q @i86, @b5 i97 := and_q @i87, @b5 iA0 := mul_pl @i90, @b6 iA1 := mul_pl @i91, @b6 iA2 := mul_pl @i92, @b6 iA3 := mul_pl @i93, @b6 iA4 := mul_pl @i94, @b6 iA5 := mul_pl @i95, @b6 iA6 := mul_pl @i96, @b6 iA7 := mul_pl @i97, @b6 iB0 := slr_pl @iA0, @b7 iB1 := slr_pl @iA1, @b7 iB2 := slr_pl @iA2, @b7 iB3 := slr_pl @iA3, @b7 iB4 := slr_pl @iA4, @b7 iB5 := slr_pl @iA5, @b7 iB6 := slr_pl @iA6, @b7 iB7 := slr_pl @iA7, @b7 wr_q @iB0, c wr_q @iB1, c+8 wr_q @iB2, c+16 wr_q @iB3, c+24 wr_q @iB4, c+32 wr_q @iB5, c+40 wr_q @iB6, c+48 wr_q @iB7, c+56 complete

    RMC холдинг, мультиклет майнер и ICO-генератор: полный отчет

    7 августа состоялась пресс-конференция лидеров Партии Роста, посвященная выводу на рынок первой компании через созданный партией ICO-генератор.

    Открыл пресс-конференцию своим выступлением Борис Титов, уполномоченный при президенте России по правам предпринимателей, председатель «Партии Роста».

    Он кратко рассказал о партии и направлениях ее деятельности. Вопросы новой экономики Борис назвал стержневым направлением. Поэтому в Партии Роста создали так называемый генератор ICO, главной задачей которого будет экспертная проверка и профессиональная подготовка проектов для выхода на ICO. По словам Бориса Титова: » Если мы ставим свою печать — значит рисков с этими людьми не будет.» Первым проектом данного генератора стал майнинговый проект Дмитрия Мариничева и Сергея Бобылева, который Борис Титов назвал отечественным прорывом.

    Следующим взял слово Гибадуллин Айрат. По его словам главное, что внутри проекта. Как такового конкурса в генераторе не будет. Все проекты, которые прошли экспертизу, будут выводиться на ICO.

    Дмитрий Мариничев отметил, что с одной стороны ICO сущность простая, с другой сложная, на данный момент не хватает понятных правил, правовой поддержки. В связи с этим была организована видеосвязсь с Элиной Сидоренко, руководителем межведомственная рабочей группы по оценкам рисков оборота криптовалюты при Государственной Думе.

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

    «Есть ответственность, если данная услуга будет осуществляться ненадлежащим образом. Если же токены приобретаются за виртуальную валюту, то это нельзя назвать продажей, фактически криптовалюты — это некая цифровая сущность, которая дает человеку право на получение скидки, и хоть процент этот очень большой, можно говорить, что сделка осуществляется в фиатной валюте»

    RMС токены воспринимаются как некий актив, который удостоверяет право человека на членство в закрытом клубе майнинга.

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

    «Этот проект интересен именно тем, что мы находим первое оптимальное решение в рамках российской юрисдикции. Это отличает проект от всех остальных, и, как мне представляется, это дает определенные гарантии.»

    Также Элина отметила, что к этому проекту имеет очень опосредованное отношение, и выступает как представитель генератора. И принципиально важным вопросом для нее является защита интересов инвесторов. Даже для криптовалют, и достигается это весьма интересным способом:

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

    После Элины слово взял Сергей Бобылев, начал он с преимуществ России для майнинга. Были затронуты дешевая электроэнергия, холодный климат, надежная энергетическая система с профицитом в 20 гигаватт и наличие квалифицированных кадров.

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

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

    Более подробно об архитектуре мультиклет можно узнать из видео с объяснениями от Бориса Зырянова и Дмитрия Мариничева:

    Дмитрий Мариничев также позже уточнил, что пока в планах выпуск процессоров с не более чем 256 клетками. Но увеличение количества самих чипов на плате позволит эффективно масштабировать майнер, архитектура это позволяет. Для интересующихся Дмитрий пояснил технические детали:

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

    Также был задан вопрос о работе с памятью, ведь это может быть узким местом при майнинге того же Ethereum.

    «Ответ прост. У нас память ровно такая же, как на видеокартах, в некоторых моментах она даже хуже. Но работа с памятью это опять же команда в тактовом моменте. У нашего процессора мультиклет этого нет, он забирает из памяти данные тогда, когда они нужны ему для работы. За один такт, одновременно считая другие данные. Поэтому работа с памятью не так сильно влияет на мультиклет, как, например, на видеокарту, которая собирает задачи и распределяет задачи. У нее в любом случае искусственный параллелизм, в отличие от мультиклета.»

    При этом мультиклет чип можно переключить под различные форки типа Ethereum, Monero и т.п., в отличие от ASIC майнеров. Не потребуются особые знания для перепрошивки или смены алгоритма работы, как это происходит с FPGA, достаточно программ на С или ассемблере, что для большинства программистов гораздо понятнее. Дмитрий даже спрогнозировал возможность появления программистов, специализирующихся на таких майнерах, ведь их можно использовать для более широкого круга задач, чем майнинг.

    Сергей Бобылев сделал акцент на том, что речь идет не о майнинге биткоинов, а только альткоинов, и результаты сравнения идут с неспециализированным оборудованием типа видеокарт. Сам процессор уже существует и работает. Задача его упростить, убрав все не нужные для майнинга блоки, увеличить количество клеток и перевести с 180 нм на 28 нм технологию производства.

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

    Еще одна проблема, которую затронул Сергей — чрезмерное сосредоточение майнинговых мощностей в Китае. При том даже для самих китайских майнеров это представляет угрозу, потому что такое сосредоточение мощностей в одной стране подрывает доверие к криптовалюте. Решения властей Китая могут очень существенно повлиять на сеть уже сейчас, так как в Китае уже более 50% мощностей для майнинга, а также сосредоточено большинство производителей майнинг оборудования. Если же Китай будет не единственным центром, то доверие к криптовалютам только вырастет.

    Дальше разговор шел о холдинге RMC, аббревиатура которого имеет уже несколько расшифровок в разных источниках: Russian Miner Coin, Russian Mining Center, а на пресс-конференции звучала как Русская Майнинговая Компания. Ранее мы писали уже о холдинге RMC и экскурсии на их майнинг ферму. У холдинга RMC уже есть 20 МВт-ный майнинговый центр в Технополисе Москва, строятся еще 2 аналогичных. Разрабатывались и производились майнеры под брендом Pantech, следующими планируется выпустить майнеры Sunrise на 16 нм. чипах Bitfury, а после них майнеры на мультиклет чипах. Чипы планируется делать на Тайване, а производство плат, сборку и софт планируется делать самостоятельно.

    Такое же название RMC будет и у самого токена, который позволит его обладателям получить майнеры следующего поколения и зайти в закрытый клуб майнинга. Токены планируется выпускать с помощью технологии цветных монет и кошелька Mycelium. По словам Сергея Бобылева, этот кошелек имеет 170 тыс. пользователей с суммарным остатком криптовалют на нем примерно на 1.5 млрд.$, так что за 100 млн.$ будущего ICO он спокоен. Решение было выбрано из-за простоты и надежности, т.к. технологии уже несколько лет, не требуются умные контракты, в которых зачастую находят ошибки, и не требуется привлекать сторонние платформы. Достаточно скачать кошелек с маркета, и уже можно будет работать с токеном RMC и получать доход на свой кошелек. Один RMC токен будет продаваться на пресейле по 4000$, порог входа 250 000$. Во время ICO токены будут по 4100$- 4900$. Сроки действия ICO c 28 августа по 20 сентября. Пресейл идет уже сейчас, все желающие в нем участвовать могут придти в офис и заключить юридически значимый договор. Оплачивать можно рублями, также для зарубежных партнеров есть возможность заключать сделки в правовом поле Австрии. На ICO будут приниматься биткоины и эфир, но эфир будет конвертироваться по текущему курсу в биткоин.

    Один токен будут давать возможность своему владельцу получить 1 майнер с мультиклет чипами через 13 месяцев, а пока они не произведены — получать доход от классического майнинга биткоина и покупать со скидкой майнеры Sunrise c сентября.

    Вторая идея ICO после мультиклет чипа, это чип безопасности. Данный чип будет находиться непосредственно на платах и будет отвечать за разделение хэшрейта. Большую часть хэшрейта и дохода будет получать физический владелец майнера, и он может распоряжаться ей как угодно. А 20% хэшрейта пойдет в пул RMC, из которого будут вестись выплаты владельцам токенов. Выпаять чип и изменить разводку платы, чтобы не отдавать эти 20%, будет экономически нецелесообразно по словам разработчиков. А с учетом того, что майнеры Sunrise будут иметь в 2 раза лучший ROI, чем у конкурентов, потеря 20% хэшрейта покупателей никак не должна остановить.

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

    По экономической части Сергей отметил, что данное ICO будет ограниченным в том числе и по максимально привлекаемой сумме в 100 млн.$, т.к. производить огромное количество мультиклет майнеров нецелесообразно, начнется внутренняя конкуренция. Всего планируется выпустить 25 000 мультиклет майнеров.

    Доход от ICO планируется хоть и меньше, чем у многих других ICO, которые иногда «стреляют», зато легко прогнозируем, и явно выше, чем в среднем у классического бизнеса. Также инвесторы смогут получать дивиденды из клуба совместного майнинга, возможность колокации майнеров в ЦОД RadiusHost. Есть возможность заключить классический договор поставки товара. Поскольку команда состоит из разработчиков, которые много лет работают на рынке, сомнений в успешности производства у Сергея Бобылева нет.

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

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

    На майнерах производства RMC ставится защита, это несколько удорожает майнер, но повышает его надежность. RMC выгодно, чтобы майнеры работали как можно дольше, так как 20% хэшрейта идет их пул, он же клуб совместного майнинга. Доход от этого пула распределяется между держателями токенов пропорционально доле владения. На майнеры будет даваться гарантия в три года, что довольно много для такого класса устройств. Подразумевается, что физически майнеры должны оставаться работоспособными не менее 5-7 лет.

    Если посмотреть на удельное энергопотребление, майнеры Sunrise потребляют довольно много для 16 нм. чипов Bitfury. Объясняется это тем, что в начале цикла жизни важнее большой хэшрейт, чтобы больше успеть заработать, и оборудование настроено на максимальную производительность путем разгона. А когда сложность значительно возрастет, и на первый план выйдет энергоэффективность, тогда можно будет поменять удельное энергопотребление в два раза, пусть и с потерей части хэшрейта, но остаться рентабельными на рынке с теми же майнерами. Китайские майнеры такого не позволят, заявил Сергей Бобылев.

    Майнеры Sunrise s11i планируется начать отгружать с конца сентября 2020, и при покупке за RMC будет фиксированная стоимость в 1600$ за одно устройство с блоком питания. Пример такого майнера был представлен на пресс-конференции, но в серию пойдет версия с некоторыми техническими доработками.

    Если верить слайдам презентации, Pantech sx6 и Bitmain s9 имеют период окупаемости 12 месяцев, а у Sunrise s11i этот срок будет 5 месяцев, даже с учетом вычета 20% хэшрейта. Сергей отметил, что цены указаны с блоками питания и с доставкой в РФ.

    «Тут какая синергия интересная: мы майнер продаем по себестоимости, при этом сам владелец майнера, если он — физическое лицо, имеет низкую цену на электроэнергию. И ему не сложно поделиться 20% хэшрейта, это как будто майнер у него на 20% больше электричества потребляет. То есть каждый делится тем, что у него самое дешевое: инвестор делится деньгами, мы производим майнер по себестоимости, конечный владелец делится своей электроэнергией и временем, что он следит за работой майнеров. В итоге мы получили такую экосистему, которая по эффективности даст фору любой самой крупной китайской ферме.»

    Мультклет чип команда планирует выпустить через 10 месяцев, и владелец токенов в случае успеха сможет выбрать, остаться ли майнить на ASIC майнерах Sunrise, или выпустить и получить через три месяца мультиклет майнер. Три месяца отсчитываются от получения успешно работающего образца чипа, за это время будет налажено производство готовых майнеров. Суммарно по плану физические устройства на мультиклет чипах должны появиться через 13 месяцев. Таким образом RMC страхуют потребителей от случая, если что-то не так пойдет с мультиклетом, держатели токенов будут получать доход с майнеров Sunrise. Подробнее можно эту схему рассмотреть графически:

    Источник

    Читайте также:  Best bitcoin trading exchange
    Оцените статью