LINUX.ORG.RU

Haiku на RISC-V плате HiFive Unmatched и ЛОРом в NetSurf

 , ,


10

3

Сегодня открылся ЛОР в NetSurf в Haiku RISC-V.

С начала этого года делаю порт свободной UNIX-like операционной системы Haiku на процессорную архитектуру RISC-V (64 бит) (подробнее: My Haiku RISC-V port progress, My progress on real RISC-V hardware). Сейчас система уже неплохо работает на реальном RISC-V железе HiFive Unmatched, есть графика, сеть WiFi, поддержка многоядерности (SMP), пакеты портов собираются на самом железе, работает воспроизведение видео.

RISC-V — полностью открытая и свободная от каких либо отчислений процессорная архитектура, конкурирующая с ARM. Архитектура довольно новая и свободная от легаси вроде четырёх несовместимых наборов команд в ARM, разных MMU, и т.п.. Также архитектура очень простая и выразительная: я написал дизассеблер за два дня и минимально работающий порт Haiku за несколько недель. Для Haiku это первый рабочий порт на не x86-совместимую архитектуру. Остальные порты находятся в зачаточном состоянии без рабочего userland более 10 лет.

Компания SiFive производит открытые ядра RISC-V и готовые платы с полностью открытым программным обеспечением включая драйверы и прошивки. Я использую плату HiFive Unmatched. На плате есть шина PCIe так что можно использовать многие существующие драйвера Haiku без изменений.

Железо выглядит как-то так: раз, два.

Используемое железо:

  • Мат. плата: HiFive Unmatched.
  • Диск: Silicon Power SSD 256GB 3D TLC NAND M.2 2280 PCIe3.0×4 NVMe1.3 P34A60
  • Сеть: Intel AC 9260 M.2 WiFi
  • Видеокарта: AMD Radeon R7 250

>>> Просмотр (1920x1080, 263 Kb)

★★★★★

Проверено: cetjs2 ()
Последнее исправление: cetjs2 (всего исправлений: 1)

Очень круто. Жду когда будет железо на RISC-V по мощнее и можно будет переходить на него)

th3m3 ★★★★★
()

я просмотрел прогресс по ссылке на тематическом форуме и тогда особенно чувствуется, что ТС занимается этим без выходных и отпусков. X512, не забывай про отпуск!:)

crypt ★★★★★
()

X512, а собираешь ты GCC? уже был порт на RISC-V?

новая и свободная от легаси

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

crypt ★★★★★
()
Ответ на: комментарий от EXL

Вообще фиолетово - юникс, хрюникс. Только избыточные рамки и ограничения.

Hertz ★★★★★
()

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

Aroshigami
()
Ответ на: комментарий от Zyy

Не всё так просто. Эпл недавно начали переходить на РИСК, что позволило им значительно уменьшить систему отвода тепла. Некоторые архитектуры просто больше энергии пускают на обогрев.

fernandos ★★★
()
Ответ на: комментарий от fernandos

У эпла дохлые процы для лаптопов, не конкурент по вычислительной мощности серьёзным процам для hi-end десктопов и серверов.

Во-вторых, на самом деле эпл отхапал себе передовой техпроцесс 5нм, и именно от техпроцесса энергопотребление зависит значительно. Когда у интела всё ещё старый 14нм техпроцесс.

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

Zyy
()
Последнее исправление: Zyy (всего исправлений: 2)
Ответ на: комментарий от aist1

А иначе никак, там у фабрик NDA на PDK

Никто не просит от них выкладывать GDSII, но в отличие от того же WD, сифайв не выкладывала rtl своих ядер.

steeels
()
Ответ на: комментарий от crypt

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

steeels
()
Последнее исправление: steeels (всего исправлений: 1)
Ответ на: комментарий от aist1

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

steeels
()
Последнее исправление: steeels (всего исправлений: 1)
Ответ на: комментарий от aist1

Они давали в самом начале, когда все базировалось на rocket soc, а потом, видимо, пришли инвесторы и уточнили бузинес модель :)
Впрочем, WD выложили свои сорцы, что уже весьма неплохо: https://github.com/chipsalliance/Cores-SweRV

steeels
()
Ответ на: комментарий от crypt

Если ты про запуск бинарей, скомпиленных с определенными расширениями на машинах, которые этих расширений по каким-то причинам лишены, то будет +- та же картина.
Это вообще скользкий вопрос, как на «пользовательском» рынке жить с этим зоопарком: в оригинале, емнип, речь шла о том, что базовый бинарь будет rv{32,64}gc aka rv{32,64}imafdc. Но теперь-то завозят векторы и прочие нужные фичи.

steeels
()
Ответ на: комментарий от steeels

я процитировал в исходном сообщении «новая и свободная от легаси» (Haiku на RISC-V плате HiFive Unmatched и ЛОРом в NetSurf (комментарий)), но я не знаю, что именно имел ввиду X512. соответственно, я задал ему вопрос.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)

Рад, что дело идёт. А тесты гонял какиенить? Как-то можно сравнить эффективность гайки на разных архитектурах? И вообще, под что легче писать операционку?

R_He_Po6oT ★★★★
()
Ответ на: комментарий от crypt

Расширения RISC-V – это не легаси, изначально всё так задумывалось. Они позволяют делать например простые микроконтроллеры без поддержки чисел с плавающей точкой и с программным делением. Или мощные процессоры с набором векторных расширений, гипервизором и ещё чем-нибудь.

X512 ★★★★★
() автор топика

Поздравляю! Отличная работа :)

Siborgium ★★★★★
()
Ответ на: комментарий от X512

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

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от X512

Может это уже обсуждали, но я пропустил - а как разрабатывать под такой зоопарк? Получается, что архитектура RISC-V ничего не значит? Не боитесь жуткой сегментации внутри RISC-V ?

R_He_Po6oT ★★★★
()
Ответ на: комментарий от steeels

А, ну, видимо, я тогда и смотрел. Потому что в памяти сидит, что я мог скачать.

aist1 ★★★
()
Ответ на: комментарий от crypt

Компилятор уже был. Для Оберона компилятор надо портировать с написанием кодогенератора для RISC-V.

X512 ★★★★★
() автор топика
Ответ на: комментарий от crypt

Моя программа на Обероне используется для анализа и дизассемблирования бинарников под RISC-V.

X512 ★★★★★
() автор топика
Ответ на: комментарий от R_He_Po6oT

Может это уже обсуждали, но я пропустил - а как разрабатывать под такой зоопарк?

Есть базовый набор инструкций (rv64gc), который будет работать на любом не микроконтроллерном процессоре. Наличие векторных инструкций придётся проверять, по крайней мере по началу. Есть стандартный механизм проверки поддерживаемых инструкций.

X512 ★★★★★
() автор топика
Последнее исправление: X512 (всего исправлений: 3)

Очень интересно, успехов!

Стабильность NetSurf вообще выросла за последние год-полтора?

hobbit ★★★★★
()
Ответ на: комментарий от R_He_Po6oT

Вполне нормально разрабатывать под такой зоопарк. Не сильно сложнее, чем под x86 SSE/AVX/etc. Там идея в том, что все, кто хотят, могут делать свои расширения системы команд для акселерации различных приложений. Инструментам разработки придется под это дело приспособиться, в чем я не вижу никаких фундаментальных проблем.

aist1 ★★★
()
Последнее исправление: aist1 (всего исправлений: 1)
Ответ на: комментарий от aist1

Там идея в том, что все, кто хотят, могут делать свои расширения системы команд

так это бардак, как в опенсорсе будет: десять вариантов одного и того же и все не до конца додуманы=)

crypt ★★★★★
()
Ответ на: комментарий от crypt

Далеко не всё из этого будет принято в основной стандарт. Думаю дубликаты функционала в стандарт принимать не будут.

X512 ★★★★★
() автор топика
Ответ на: комментарий от crypt

Ну, испечь свой чип - это не говнокод на гитхаб выложить. Если что-то такое и дойдет до продакшена, то оно будет уже тщательно вылизано.

aist1 ★★★
()
Ответ на: комментарий от X512

ну, на стандарты коммерсы могут и наплевать

crypt ★★★★★
()
Ответ на: комментарий от aist1

это как с недавним модулем smb3 в ядре. хуавей вылизал, но конкретно под себя. в итоге основная часть smb в юзерспейсе, а кусочек в ядре.:)

crypt ★★★★★
()
Ответ на: комментарий от crypt

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

aist1 ★★★
()
Ответ на: комментарий от aist1

Меня, например, активно интересует расширенная защита памяти, типа тегированной, но более гибкая.

А что тебе интересно? Я как раз это расширение разрабатываю в рамках j-ext wg

steeels
()
Ответ на: комментарий от steeels

У меня есть такая вот штука. Там много продвинутых структур данных, которые могут много чего при условии, что хорошо реализованы. В это понятие входит, например, поддержка специальных команд с манипуляцией памятью на битовом уровне типа popcount, но только для алфавитов, бОльших, чем 2 символа. В этом плане система команд RISC-V представляется очень привлекательной.

Отдельно идет тема защиты памяти и её аппаратная поддержка. Хочется сделать так, чтобы целостность низкоуровневых структур данных отслеживалась аппаратно, что сильно снизит требования к софту.

Еще одна тема — это аппаратная поддержка иммутабельности в функциональных/персистентных структурах данных (тоже есть в Мемории).

Я тут пока еще в самом начале пути и никаких конкретных реализаций у меня нет, одни только идеи. Есть только своя кастомная прошивка RocketChip для Arty A7-100 с поддержкой DDR3 (не выкладывал еще) и HiFive Unmatched, купленная для того, чтобы отлаживать Меморию на RISC-V.

В приоритетных планах создание открытой площадки на базе Мемории для разработки акселераторов для обработки данных на базе RISC-V. Да, а с точки зрения конечных приложений, это будет акселерированная база данных/файловая система. Фишка площадки в том, что через Меморию кастомное железо сможет попадать к конечным пользователям относительно быстро.

aist1 ★★★
()
Последнее исправление: aist1 (всего исправлений: 2)
Ответ на: комментарий от bhfq

И clang тоже есть. С инструментами всё в порядке.

aist1 ★★★
()

А с какой частотой на чём-то стандартном вроде Intel/AMD можно сопоставить имеющийся RISC-V?

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Какой-нибудь из первых Атомов на такой же частоте.

aist1 ★★★
()
Ответ на: комментарий от greenman

В смартфоне диаметр кулера равен нулю. Т.е. и производительность равна нулю, так?

Почему-то от этой фразы вспомнился Nokia 7610 - один из первых недосмартфонов с крутилятором на борту. Что характерно производительности ему это не добавляло.

Oberstserj ★★
()
Ответ на: комментарий от aist1

Я ещё вот такой девайс на RISC-V нашёл. На одном процессоре 1088 (!) мини ядер RISC-V для параллельных вычислений и четыре мощных ядра RISC-V для быстрых последовательных вычислений. Таких процессоров на плате 6 штук.

X512 ★★★★★
() автор топика
Ответ на: комментарий от X512

Ага. Вот я как раз в такие вещи и хочу со временем пролезть. Я с RISC-V плотно начал знакомиться вот с этого дизайна. Такого зверька можно развести даже на обычном FPGA-акселераторе и на нормальных частотах, в чем и прикол.

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

Но, в целом, спрос на железо формирует сейчас именно софт. Можно придумать и реализовать офигенную в теоретическом плане железку. Но без поддержки со стороны приложений она будет просто железкой. Чтобы акселераторы оказались успешными, нужно создать на них спрос со стороны конечных пользователей этих приложений. Но ситуация такова, что пока что пользователи даже не знают, что акселераторы им вообще нужны. Графика — да. ИИ (фоточки обрабатывать) — да. Но и всё. Больше акселерировать толком-то и нечего.

aist1 ★★★
()
Ответ на: комментарий от aist1

Отдельно идет тема защиты памяти и её аппаратная поддержка. Хочется сделать так, чтобы целостность низкоуровневых структур данных отслеживалась аппаратно, что сильно снизит требования к софту.

Звучит похоже на тегирование памяти, которое есть в эльбрусах, а не как в АРМе. Базовая реализация тегов, похожих на армовые, драфт поддержи в qemu и какой-то наивный ртл лежат на гитхабе, если вдруг будет интерес. Правда, теги там сделаны на llvm9, а отребейзиться на свежее никак не доходят руки. Но с тегированой памятью все супер непросто, есть много нерешенных(или с так себе ответом) вопросов, которые все портят: где хранить теги, что делать со страницами памяти, которые вытесняются в свап.

Я тут пока еще в самом начале пути и никаких конкретных реализаций у меня нет, одни только идеи. Есть только своя кастомная прошивка RocketChip для Arty A7-100 с поддержкой DDR3 (не выкладывал еще) и HiFive Unmatched, купленная для того, чтобы отлаживать Меморию на RISC-V.

А почему не прототипировать архитектурные штуки сначала в qemu? Это выходит несколько быстрее, чем сразу корежить ртл. По крайней мере коммерческий опыт такой деятельности был устроен именно так :)

Если будет интерес, то я бы рекомендовал захаживать на эту воркгруппу(и, наверняка, в другие тоже): по меньшей мере в j-ext все грустно с точки зрения отстутствия вменяемых кастомеров и ворклоадов, поэтому все обсуждают коней в вакууме, которых выкатили парни из гугла или нвидии.
Если у тебя будут какие-то идеи, то могу постараться помочь в их реализации, как подразгребу текущий беклог.

steeels
()
Ответ на: комментарий от aist1

Я с RISC-V плотно начал знакомиться вот с этого дизайна. Такого зверька можно развести даже на обычном FPGA-акселераторе и на нормальных частотах, в чем и прикол.

Про «обычность» фпга, куда влезает такой дизайн от Jan я бы поспорил: он как-то всегда тяготеет к самому хайенду :)[br] К тому же, насколько я помню, он не публиковал сорцы этого дизайна, к сожалению.

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

Пипл не понял и, может, не поймет. Зато понимает Латтнер и остальные девелоперы, которые кинулись делать ускорители всего, что только можно: https://youtu.be/4HgShra-KnY

Я с ним согласен, но сейчас архитрудно найти инвестиции, если ты не разрабатываешь yet-another-ai акселератор, увы.

steeels
()
Последнее исправление: steeels (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.