Обновить
2
0

Пользователь

Отправить сообщение

чему их учат в институтах это такая дичь!

А можно пример?

В результате многое обозначается словами, никак не отражающими суть.

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

И «кавычки» тоже сами расставляете? :)

"Вы и есть за меня будете?!". Коментарии тоже нейросеть пишет? Тест Тьюринга не прошла.

Нейростатья?

состоит из 3 кварков: два кварка вверху, один кварк внизу.

Эмм...

Сказали же, прикладываешь телефон и проходишь. Что может быть проще?

В общем да. Применять более программистский подход - максимально переиспользовать код (в виде API чизела), использовать ООП в плане построения абстракций, инкапсуляции и сокрытия, использовать возможности скалы. На таком маленьком проекте это конечно не просто показать, но есть куда стремиться.

В качестве примеров можно посмотреть открытые проекты на чизеле и спинале, например VexRiscv.

Примерно так же получается, когда программист на Си начинает писать код на С++. У него первое время выходи тот же Си, только файл с другим расширением. Потом приходит понимание, как надо.

Если писать на чизеле как на верилоге, то профита не будет. Будет тот же верилог, но с другим синтаксисом. Чтобы профит был, нужно сильно сломать привычный подход к написанию RTL. Очень сильно. И Скалу подучить. Такое мое ИМХО :)

на Chisel я написал reduceTree и пошел дальше

Прям вот так, без верификации?

универсальный IP на продажу... метод с рекурсией заблокируют уже на этапе code review.

На Chisel даже смотреть не будут. Много вы знаете коммерческих IP на чизеле?

Это миф. Чтобы писать на Chisel, достаточно освоить 20% книги "Scala для чайников" + сам Chisel.

Говорите миф, и тут же подтверждаете мои слова :)

Да и вообще, мне кажется несколько сомнительным использовать ООП подход для описания цифровых схем. Ведь код на ПЛИС, это именно что описание схемы, а не набор команд.

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

Код получается более читаемым и понятным

Не соглашусь, и приведу пример. В спинале нет соглашения о том, где должны декларироваться порты ввода/вывода. Есть только рекомендация использовать io в качестве имени бандла, но порты можно объявить где угодно в теле класса, чем нередко пользуются разработчики. Т.е. получается, что нет вменяемой декларации аппаратного интерфейса, и без подробной документации бывает сложно найти концы. А документация даже к самому спиналу весьма скудная (в т.ч. scaladoc к API, который для контраста можно сравнить с javadoc для java.*), не говоря о производных либах.

У меня возникла такая ассоциация: Verilog/VHDL по отошению к SpinalHDL/Chisel это как ассемблер и C++.

Не согласен. Я думаю это как Си и ... смесь С++, Go и Ocaml. Причём, нужно понимать все три :)

производительность труда одного человек пишущего на Chisel равняется команде из десятка крутых спецов пишущих на Verilog/VHDL

Раза в полтора. Ну может быть с натяжкой в два. Но не в 10 - это совершенно точно.

Я не против спинала и чизела, они мне самому нравятся (хотя, можно было сделать и лучше), но это далеко не серебряная пуля.

Дерево сравнения можно довольно лаконично описать в виде рекурсивного модуля, синтезаторы такое уже понимают.

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

Только если не использовать сторонних библиотек. Разобраться в коде того же VexRiscv без знания скалы вообще нереально. А впихнуть его в свой проект можно только тупой копипастой из примеров (коих, кстати, очень немного).

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

Докер, да и оно судя по репозиторию каких-то космических размеров.

Там Go и C++. Она на базе той же llama-cpp, думаю собрать её на BSD трудов не составит. А ещё её в качестве бэкэнда поддерживают многие интересные тулы, типа веб-интерфейсов, телеграм ботов, консольных тулов и редакторов кода (emacs, например)

Еще не увидел каких-либо требований по GPU

Такие же, как у llama-cpp. Если модель влазит в память GPU, то будет большое ускорение. Если не влазит - то ускорения практически не будет, хоть и будет часть модели считаться на GPU. Ускоритель желателен, но не необходим, все модели работают на CPU.

С критериями качества тоже не очень понял

Критерии простые - устраивает ответ на вопрос или нет.

А почему не использовать ollama? Там из коробки много интересных моделей, и руками можно поставить. Я пробовал запускать Deepseek-R1 671B Q1.58 на 128ГБ оперативы. Оно, конечно, работает, но оооочень медленно. Для CPU инферинга отлично подошла deepseek-coder-v2-16b. За счёт MoE работает офигенно быстро, и при этом достаточно качественно.

Хорошо бы поставить на выход ЦАПа буфер (например, эмиттерный повторитель).

Полный видеосигнал можно генерить на r2r ЦАПе. Я делал на 8 бит. Если s-video, то можно 3 бита на цветовую поднесущую и 5 бит на яркость+синхросигнал. Поднесущая генерится с помощью DDS. Вот тут видео с цветовыми полосами: https://t.me/enginegger/107

Мне R1 на вопрос про волчью отраву и клобук монаха вот что ответил:

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

  1. Волчья отрава — собирательное название ядовитых веществ или растений, используемых для борьбы с волками (например, волчеягодник, аконит).

  2. Клобук монаха — в прямом смысле это головной убор православных монахов. Однако в ботанике так иногда называют аконит из-за формы его цветка, напоминающей капюшон (клобук).

Таким образом, если речь о растениях:

  • Аконит может именоваться и «волчьей отравой» (из-за ядовитости), и «клобуком монаха» (из-за формы цветка).

  • Если же говорить буквально, то волчья отрава — это яд, а клобук — элемент одежды.

Разница — в контексте: отраву используют для убийства, клобук — для духовной практики. Но в ботанике оба названия иногда относятся к одному растению (акониту).

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность