Work & Beer Balance
1.51K subscribers
146 photos
6 videos
4 files
231 links
Авторский канал @Akiyamka
Поддержать автора можно здесь:
buymeacoffee.com/cherrytea
Download Telegram
Work & Beer Balance
Framework опубликовали загадку на своем канале в YouTube https://youtube.com/shorts/JJPA_iM8Hrs?is=Hy0BxMDdptoEqaCR
This media is not supported in your browser
VIEW IN TELEGRAM
Framework анонсировали новую презенташку 21 Апреля, в вместе с ней опубликовали большое письмо о том что они теперь будут так же бороться с попытками затащить все в облако
(полный текст).

Надеюсь что в соотвествии с заявлением они предложат что-то вроде докстанции для подключения парочки внешних видеокарт, поскольку встроенная карта на данный момент выглядит совершенно несерьезно
👍7🔥2
За кулисами Nvidia пилит аналог apple M чипов - N1X. Нотубчуный CPU от зеленых будет тоже ARM, но с 20 ядрами, 128 GB общей с GPU памяти. Последний по мощности на уровне RTX 5070 c 6144 CUDA ядрами.
Очевидно они хотят сделать ноутбук способный запускать LLM локально. Возможно это будет Dell XPS, по крайней мере известно что они с этим эксперментируют.

Кроме поетнциальной стоимости, меня немного пугает вид утекшой фотографии платы с этим монстром - видите вот эту гиганскую дыру? Это вот такого размера куллер ему нужен? Или это задел под жидкостное охлаждение?
😁5
Среди моих подписчиков есть те кто владеет framework 16 и хотел бы себе RGB панельку вместо / вместе с стоковой?

Дело в том что на PCBway заказать 1 шт или 20 стоит одинаковые 29$...
😁15
Каждый раз гуглю эту штуку, пришло время сделать зарубку:
Вы зашли на сервер по ssh, открыли файл через micro но все попытки что-то оттуда скопировать в буфер обмена хостовой машины тщетны?

Это потому что micro по дефолту использует xclip или wl-copy
Надо переключить его на OSC 52 последовательность.
mkdir -p ~/.config/micro && echo '{"clipboard": "terminal"}' > ~/.config/micro/settings.json

P.S. если используете tmux ему надо дать явное разрешение на нее
set -g allow-passthrough on


#linux #micro #ssh
7
Я три месяца разрабатывал библиотеку в рабочем проекте (изначально написанную в основном руками) через LLM.

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

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

Важный момент - код работает, и работает шустро, дело делает, есть слои, абстракции и т.п. - это не какой-то безумный спагетти-код - но читать его самостоятельно стало сложно. Почему?

Я отдохнул на выходных, и решил что это отличный кейс разобрать что же с ним не так. Я взял чашку чая и начал читать его от начала до коцна подмечая вещи которые меня смущают:
1. По прошествии трех месяцев некоторые сущности остались со старыми названиями хотя в корне поменяли свою зону ответственности
2. Файл не был переименован, хотя были переименованы экспортируемые из него обьекты.
3. В файловой структуре больше нет логики - иерархия директорий не соответствует иерархии в логике
4. Неоправданно большой файл - то что легко можно было вынести в три отдельных файла было свалено в один большой на 350 строк.

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

У меня банально нет мотивации это делать, ведь я не вижу эти проблемы:

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

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

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

Мне кажется что по иронии, именно на таких проектах LLM используется сегодня особенно активно потому что разработчики убивают двух зайцев - не "страдают" от ковыряния в таком коде, и успевают уложится в супер сжатые сроки (на качество в таких условиях всем и так ведь плевать)
👍18
Неожиданная новость - издатель крупной AAA MMORPG по известной франшизе Dune менее чем через год после релиза решил в придачу с игрой выдавать весь серверный код для self-hosted деплоя с гайдами, возможностью переноса персонажей с публичных серверов. Не уж то Stop Killing Games таки добились своего? Или это такой хитрый план порезать стоимость хостинга? Обещают что "Funcom will not charge players additional money for this feature", но не понятно как будет проверятся что копия игры подлинная, вероятно для этого все же будет какая-то завязка на сервера Funcom (ситуация напоминает историю minecraft java edition, которая тоже self-hosted и тоже формально только для игроков купивших игру).

Поговорим о бочке дегтя в ложке меда:
Сервер должен быть на windows 10 Pro и запускаться внутри WSL.
Теоретически вы можете попробовать запустить его в Linux напрямую, вместо VM на Windows, но мы это пока не поддерживаем, экспериментируйте

Зачем и ради чего они хостят свои сервера на винде через WSL я даже боюсь представить...

Минимальные спеки для сервера нужны следующие - 20 GB RAM, 100GB SSD, CPU 2017 года (6 cores / 6 thread 3.2 GHz) на 4 игроков. Однако, цитата
CPU and RAM requirements increase rapidly with number of players and number of maps.

Т.е. масштабируется это очень плохо. Вот прямо так далее и написали: на сервер больше чем на 40 человек у большинства людей нет возможности раздобыть мощностей.
😁52
- 10 Гигабитный LAN порт
FW16:
- Цельный модуль для тачпада ❤️
- Полупрозрачная рамка на экран
- AMD Ryzen AI 300
- Oculink модуль вместе с egpu док станцией в который можно воткнуть старый GPU от FW16 🤩
FW13:
- они сделали батарейку которая 24 часа держит ноут показывающий 4к видео с нетфликса онлайн (WAAAT)
Это умеет теперь Framework 13 PRO (Черненький). Intel Ultra Core в кач-ве процессора
- LPCAMM2 RAM
- ЧЕТЫРЕ Thunderbold
- 700 NIT экран
- Сенсорный экран
- Здоровенные (для ноута) Dolby Atmos динамики
- Все его детали совместимы с предыдущей версией 13шки
- Ноутбук теперь официально сертфицирован под Ubuntu и поддерживается каноникалом
- Увеличенный Haptic Touchpad

+ они сделали клавиатуру с тачпадом потому что все существующие на рынке какашка (чистая правда, у меня есть такая и это лучшее что я нашел!)

Более подробно и с картинками здесь
👍3
ожидаемо сайт фреймворка упал
Как думаете после скольки пользователей ляжет статический сайт на ESP32?

https://helloesp.com/

Пока держится
🔥6
Все что вам надо знать о хейте в интернете:

В сооществе framework плату для oculink начали просить почти со старта 16ки, еще 4 года назад.

Не получив каких-то обещаний что он будет сделана люди начали лепить ее сами. Поначалу появился какой-то деятельный человек, но он похоже переоценил свои скилы и людей заскамил - насобирал деньги и разослал людям не рабочий прототип, а потом и вовсе пропал. Второй человек пошел по пути наименьшего сопротивления и сделал плату в M.2 слот на базе тех что существовали на али, только в размеры и форму чтоб влезало в FW. Пропускная способность там по-хуже получилась, да и слот под SSD лишним не будет. Тем не менее очень скоро кто-то скопировал его продукт и начал продавать на ebay, что последнего очень расстроило (хотя он все в опенсорс выложил под MIT. Но упомянуть его продавцы все равно могли бы).
👍4
Work & Beer Balance
Все что вам надо знать о хейте в интернете: В сооществе framework плату для oculink начали просить почти со старта 16ки, еще 4 года назад. Не получив каких-то обещаний что он будет сделана люди начали лепить ее сами. Поначалу появился какой-то деятельный…
Затем появился еще один человек (Filip) который все же взялся за дело серьезно, сделал плату, драйвера, ему помогали из самого framework с правками в прошивке чтобы его проект заработал. Судя по всему первым людям он высылал тестовые версии платы вообще бесплатно, а в замен те готовы рискнуть своим ноутом ее потестировать (а заодно убедить остальных что это не скам). И вот когда он только начал собирать заказы на предрелизную версию - фреймворк анонсит свою официальную версию этой платы. Реакцию сообщества угадаете?

В треде про разработку начали страшно хейтить, проклинать и даже призывать к байкотированию Framework за такое "свинство" - все в тайне содрали, ничего не сказали, а они тут с диванов три года страдали.
Разработчику пришлось успокаивать своих "защитников" и объяснить что вообще-то ему все заранее сказали еще в декабре )
Да и то что он сделал это несколько другой продукт (более сложный)
👍4😁1
Я уже начал плавать в аббревиатурах разновидностей RAM, так что делаю короткий читшит:

- DDR5 SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory) - 5-ое (текущее) поколение памяти. Отличается очень низкой латентностью. (От нее далее буду отталкиваться)

- GDDR (GDDR6 / GDDR6X / GDDR7) - Это всё разновидности VRAM (Video Random Access Memory). - Отличается очень широким каналом (x15-20 пропускная способность), но высокая задержка (x3-5) и плохая энергоэффективность

- LPDDR5X (и следующее поколение LPDDR6) (Low-Power DDR5X) - Изначально проектировалась для использования в телефонах и поэтому ее упор на энергоэффективности. Но с недавних пор используется в ноутбуках, PC и даже серверах. Чаще всего в составе UMA (Unified memory) - (Бывает программная и аппаратная - тут и дальше про аппаратную). Латентность у нее выше чем у DDR5, а в составе UMA дополнительно к этому она страдает от конкурентости (резкая деградация латентности при одновременной нагрузке на CPU и GPU), но экономит на копировании между DDR и VRAM (более не требуется). Ширина канала меньше чем у VRAM и сама память дешевле. Итого - это компромисс в латентности относительно DDR, и в ширине канала относительно VRAM, в угоду энергопотреблению и стоимости. Используется в чипах Apple M серии и Strix Halo / Ryzen AI Max.

- HBM (Hight Bandwith Memory) - HBM2e / HBM3 - самая "широкая" память на сегодняшний день уровня дата центров (NVIDIA H200, Instinct MI3 / MI4). Пропускная способность 4800 ГБ/с - ~6000 ГБ/с 😅. (Для сравнения с Apple M3 Ultra - 819 ГБ/с). Память с упором на пропускной канал. Очень дорогая, голодная, задержки еще больше чем у VRAM не смотря на то что она максимально физически близко к процессору

Далее надо добавить пару слов о формфакторах памяти. Помимо распаянной еще есть:

- UDIMM (Unbuffered DIMM) - тупо обычная десктопная RAM

- SO-DIMM (Small Outline DIMM) - маленькая ноутбучная RAM

- RDIMM / LRDIMM (Registered DIMM, Load-Reduced DIMM) - что-то там для серверов, скорее всего ни я ни мои читатели ее даже не увидят никогда. Ну суть в том чтобы можно было напихать сотни гигабайт оперативки в сервер и оно все еще работало.

- LPCAMM2 - (Low-Power Compression Attached Memory Module 2) - берем энергоэффективную LPDDR5X (о которой выше) но используем отдельно как SDRAM - получаем сменяемость (слот правда совсем другой) а в жертву приносим пропускную способность (ширина шины 128 бит максимум). Компромиссы самой памяти остались - пропускная способность (хоть и меньше чем у Unified memory, но все еще больше чем у SDRAM) и энергоэффективность за латентность. Важный момент - не нужно две планки как у DDR чтобы получить полную пропускную способность.

- CAMM2 - Странная вещь, последствия дефицита памяти и фантазии маркетологов Asus. Обычная DDR RAM, но в новом формфакторе который нужен для LPDDR

- CUDIMM / HUDIMM (Clocked / High-bandwidth Unbuffered DIMM) - в обычных UDIMM сигналы от контроллера памяти CPU идут напрямую в чипы DRAM. В RDIMM между ними сидит буфер, который "перепакетирует" сигналы. Буфер добавляет латентность, но позволяет вешать на канал больше модулей и держать сигнал чище. а CUDIMM/HUDIMM это гибрид: для данных буфера нет (низкая латентность), но добавляется один маленький буфер только для тактового сигнала. А нафига? На частоте 8000+ упёрлись в физический предел - такты уже стало невозможно синхронизировать из-за помех - так что добавили "повторитель" тактового сигнала прям на самой памяти. Так можно продолжать выжимать соки из DDR форм фактора. Вся DDR6 уже будет CUDIMM. Однако чем выше частота памяти тем больше она греется и больше потребляет.
- CSODIMM - ноутбучная версия CUDIMM (встречается редко)
- MRDIMM - серверная версия CUDIMM

- ZAM (Z-Angle Memory) - вот мы и добрались до самой свежатины - это новая архитектура DRAM с вертикальной укладкой кристаллов, разрабатываемая совместно Intel, SoftBank (через дочку SAIMEMORY) и японскими партнёрами (Fujitsu, PowerChip, Shinko Electric, Tokyo University, RIKEN), позиционируемая как прямой конкурент HBM для AI-датацентров. О ней в следующем посте.
👍62
Work & Beer Balance
Я уже начал плавать в аббревиатурах разновидностей RAM, так что делаю короткий читшит: - DDR5 SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory) - 5-ое (текущее) поколение памяти. Отличается очень низкой латентностью. (От нее далее буду отталкиваться)…
Ранее мы говорили про HBM (Hight Bandwith Memory) - такую широкую шину сделали благодоря тому что соеденили стопку из 8–16 DRAM-кристаллов и прожгли насквозь лазером в тысячах мест (Through-Silicon Vias), "залив" эти колодцы медью - получились сквозные медные столбики соединяющие все слои. Однако этот сендвич очень сильно греется (особенно в нижних слоях), полезная площадь кристалов уменьшается (из-за дыр), + высокое сопротивление + сам процесс очень дорогой.
Даже за очень много денег не получается собрать стопку из более чем на 48GB (на чип)

ZAM: Интерконнект между слоями идёт диагонально внутри стека, а не строго вертикально (под углом к оси Z). И там какой-то "беспроводной" (бесконтактный) интерконнект между слоями памяти, что улучшает тепловые характеристики. То есть передача сигнала между слоями идёт не через сплошной столбик меди, а через какую-то форму индуктивной/ёмкостной связи (детали Intel пока не раскрывает). Однако утрвеждается что стек можно будет собирать аж 512 GB на чип с 2-3 раза более высокой пропускной способностью, греться и потреблять это все будет меньше, да и сам провесс производства значительно дешевле.

Комерческий запуск будет только в 2029 году, и если все получится у SK Hynix, Samsung и Micron появится серьёзный конкурент. Известно что Япония (правительство) вкладывается в этот проект чтобы вернуть себе былую славу производителей электроники, но есть определнный скепсис насчет сроков - до 2029 года может все поменятся еще не раз. Первые прототипы будут доступны в 2027 году - так что лично я держку пальцы крестиком, а вы?

(BTW что-то лайков все меньше и меньше)
14
Ноутбучная память SO-DIMM имеет 262 пина, тогда как десктопная UDIMM - 288 - на 26 пинов больше
Anonymous Quiz
48%
меньше пропускная способность
32%
нет поддержки ECC (Error Correcting Code)
9%
меньше максимальная частота
11%
меньше максимальная ёмкость
Dell активно саботирует продвижение Framework.

Каждый раз когда мы налаживаем контакт с инфлуенсером на X, Dell отправляет им XPS


Под постом люди в шутку просят Framework написать и им чтобы получить халявный XPS.

Соус
😁93
Китайское виндвовое приложение для моего USB тестера/мультиметра крашится при запуске. Совершенно никаких логов. Нет гитхаба (ссылка на офсайте ведет на гугл диск с zip архивом).

А оно мне очень надо потому что хочется новую прошивочку залить. Что делать?

Сохраняйте себе рецепт:
1. Качаем procmon. Эта штука пишет очень подробный лог того что делает каждый процесс. Добавляем фильтр по названию процесса, жмем "начало захвата", пытаеся запустить апку, останавливаем запись когда новые строчки перестали появлятся. В моем случае получилась таблица из 10 000 + записей за 3 секунды жизни программы.

2. File -> Save -> XML -> Include Stack Traces

3. Отдаем это дело claude (я прямо в веб версию закинул), и просим определить почему приложение падает. На анализ 74 МБ XML c 2.8 миллиона строк у нее ушло где то минут 5, в несоклько итераций было востановлено по шагам что приосходит и я получил ответ - перед запуском программы надо вытащить устройство, и воткнуть его только после того как программа запустилась (да, их собственное устройство при сканировании что-то такое отвечает что крашит их же программу, китайцы чтоб их)

Рецепт довольно универальный, procmon и раньше мне помогал запускать всякий древний заброшеный софт на винде, а с клодом это прям супер сила
👍183👏2👀2
Work & Beer Balance
Я уже начал плавать в аббревиатурах разновидностей RAM, так что делаю короткий читшит: - DDR5 SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory) - 5-ое (текущее) поколение памяти. Отличается очень низкой латентностью. (От нее далее буду отталкиваться)…
Вставляю две 100% работающие планочки DDR4 памяти в miniPC - а видна только одна. Со слотами памяти тоже все ок (проверил каждый отдельно). Память от известного бренда Samsung SO-DIMM, DD4 3200, 8GB - должно же работать, что я упускаю?

Оказалось есть еще один параметр на который я не обращал внимания - физическая организация модуля, или по-простому - количество чипов и рангов на планке. Ну казалось бы какая разница 8 гигабайт собраны из 8ми чипов по гигабайту, или из 4х по два и на какой стороне планки они находятся?

Оказалось это очень важно и эта память у меня в паралель работать не будет.

Но давайте по порядку. Все начинается с того что у памяти есть "мертвое время". Кроме выполнения полезной работы ей нужно делать чисто служебные операции:
закрыть (precharge) строку после чтения (~13–15 нс), обновлять их каждые ~7,8 мкс чтобы данные не потерялись, при смене строки в банке нужно время на активацию новой строки (tRCD). Чтобы это компенсировать всю память на планке разделили на ранги (rank). Например, часто (но не всегда) ранг 1 состоит из чипов на лицевой стороне а ранг 2 на обратной стороне планки. Пока память в одном ранге занята чем-то из перечисленного выше - контроллер работает с другим рангом - что позволяет памяти работать на 5-15% быстрее.

Конечно это не бесплатно. Углубляться в расчеты не будем, просто запомним что много рангов тоже плохо - больше чипов выше нагрузка на контроллер, паразитного сопротивления, нагрева и т.д. Поэтому на практике мы выбираем между одно ранговой или двух ранговой памятью (односторонней или двухсторонней в разговорном)

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

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

Теперь когда мы поверхностно прошлись по этим двум параметрам смотрим на макировку.
Например 2Rx16 читается так - 64 делим на 16 (число после x) = 4 - это количество чипов на ранг. 2R - количество рангов. 4x2 = 8 чипов.
Т.е. чем больше число после X тем меньше чипов на ранг.

Вот теперь переходим к сути вопроса:

1Rx16: "бюджетный" вариант

Меньше чипов, ниже стоимость производства, ниже энергопотребление.
Хуже параллелизм: внутри одного чипа меньше банков на бит шины, контроллер памяти реже может скрывать задержки за счёт чередования (interleaving).
Часто встречается в дешёвых модулях 8 ГБ и в ноутбучной памяти.
процессоры Ryzen (особенно Zen/Zen+/Zen 2) исторически плохо переваривают x16-чипы

1Rx8: "золотая середина"

8 чипов в одном ранге, хорошая внутренняя параллельность на уровне чипа.
Один ранг - нет преимуществ rank interleaving.
Лучший разгонный потенциал т.к. меньше нагрузка на контроллер памяти CPU, легче достигаются высокие частоты (DDR4 4000+ MT/s, DDR5 7000+ MT/s).
Самый частый выбор для оверклокеров и Ryzen-систем.

2Rx8: "производительный" вариант

16 чипов, два ранга. Для высоких нагрузок самое то.
Минусы: выше нагрузка на IMC процессора, хуже разгон (на ~200–400 MT/s ниже потолок), выше энергопотребление и нагрев, дороже.
На Intel переносится легче, на старых Ryzen бывают проблемы при заполнении всех 4 слотов модулями 2Rx8 (4 ранга на канал).

К сожалению мне в наследство достались именно 1Rx16 планки и теперь я понимаю почему мой домашний сервер с райзеном не может с ними нормально работать
👍8🔥2🤯1
По какой-то не понятной причине мне все больше форситься антигравити в рекомендациях. Сначала это были видео на Ютубе а теперь статейки.

Содержание статей следующее...
😁5