Search
Write a publication
Pull to refresh
27
0.4

leadlead, why not?

Send message

Возможно всё это и было на каких то малотиражных эксклюзивных моделях, но бюджетные ширпотребные карточки на ymf типа genius (у меня есть такая) ничем не отличались от таких же на ensonic, ess solo/maestro, fortemedia fm-801, aureal vortex, via tremor и прочих, выполненных по той же схеме pci-контроллер + ac97. Да, была разница в качестве драйвера (степени его глючности) и поддержки разных технологических фенечек, но по качеству проигрывания обычного аудио карты одинакового качества исполнения были плюс минус одинаковые (если драйвер не сильно вмешивался и портил звук).

Ограничения слишком неприятные получаются, если упаковывать плотнее. По факту у нас запись блоками по 128 байт, и в старые блоки нельзя писать, так что для данных, которые надо обновить, у нас по факту ровно одно место, куда можно писать их - следующий свободный 128-байтовый блок. А дальше там любая переменная размером от 1 до 126 (пусть будет счетчик поколений в 2 байта, для ровного счета) - это одна запись блок. Можно попробовать каждый раз при записи решать задачу о рюкзаке, и пытаться впихнуть сколько-то уже существующих переменных (бампнуть им поколение тоже) в один блок вместе с новой, но может быть медленно и печально (сложность нормального решения такой задачи - почти квадратичная, а у нас МК слабый). В общем, можно разменять производительность на более плотную упаковку, либо нахер выкинуть такой флеш и поставить нормальный SPI/I2C NOR и пошло оно все это в жопу.

А вообще, если еще немного подумать, никакого толку от решения задачи о рюкзаке не будет, если не "накапливать" где-то в ОЗУ несколько вызовов SetVariable перед тем, как на флеш писать. Если писать по одной переменной за раз - никакими оптимизациями там ничего не сделать, потому что мы за один раз в любом случае инвалидируем (т.е. раньше туда можно было писать, теперь - нет) один блок в 128 байт, и потому ничего там меньше все равно сэкономить не выйдет.

для своих нужд такую утилиту писал, exe-файл после компиляции ровно 1024 байта. дальше уменьшать dos-заголовок (tiny356.dos) на современных windows не получается.

;Return some keyboard key statuses as bit flags
;and returns them as a program exit code.
;
;Bit Value Description
;--- ----- ------------------------
;15 32768 Insert is held down
;14 16384 CapsLock is held down
;13 8192 NumLock is held down
;12 4096 ScrollLock is held down
;11 2048 Pause is toggled on
;10 1024 PrintScreen is held down
; 9 512 Left Alt is held down
; 8 256 Left Ctrl is held down
; 7 128 Insert is toggled on
; 6 64 CapsLock is toggled on
; 5 32 NumLock is toggled on
; 4 16 ScrollLock is toggled on
; 3 8 Any Alt is held down
; 2 4 Any Ctrl is held down
; 1 2 Left Shift is held down
; 0 1 Right Shift is held down

; 2024 MOD:
; .DATA -> uninitialized .DATA?
; compile with MASM 6.14 and *.lib from Windows 95 Chicago Beta 2 SDK 4.0.331:
; Linker Version 5.12.8078 from Windows 98 SE Driver Development Kit:
; C:\MASM614\BIN\ML.EXE /c /coff kbstatus.asm
; c:\MASM614\link1998\LINK32.EXE /nologo /STUB:tiny356.dos /MERGE:.rdata=.text -subsystem:WINDOWS,4.00 -entry:start -out:kbstatus.exe kbstatus.obj c:\MASM614\LIB95SDK\kernel32.lib c:\MASM614\LIB95SDK\USER32.LIB
; tiny356.dos DOS STUB from http://www.phreedom.org/research/tinype/
; 00000000: 4D 5A 00 00-00 00 00 00-00 00 00 00-00 00 00 00
; 00000010: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
; 00000020: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
; 00000030: 00 00 00 00-00 00 00 00-00 00 00 00-40 00 00 00

.386

.MODEL flat, stdcall

GetKeyboardState PROTO NEAR32 stdcall, lpKeyState:DWORD

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

.STACK 4096

.DATA?

keyState db 256 dup(?)

.CODE

start:

lea esi, keyState
INVOKE GetKeyboardState, esi
xor eax, eax

;high byte: bios status flag 2
shl byte ptr [esi + 2dh], 1 ;insert down
rcl eax, 1
shl byte ptr [esi + 14h], 1 ;capslock down
rcl eax, 1
shl byte ptr [esi + 90h], 1 ;numlock down
rcl eax, 1
shl byte ptr [esi + 91h], 1 ;scrolllock down
rcl eax, 1
shr byte ptr [esi + 13h], 1 ;pause active
rcl eax, 1
shl byte ptr [esi + 2ch], 1 ;printscreen down
rcl eax, 1
shl byte ptr [esi + 0a4h], 1 ;left alt down
rcl eax, 1
shl byte ptr [esi + 0a2h], 1 ;left ctrl down
rcl eax, 1

;low byte: bios status flag 1
shr byte ptr [esi + 2dh], 2 ;insert active
rcl eax, 1
shr byte ptr [esi + 14h], 2 ;capslock active
rcl eax, 1
shr byte ptr [esi + 90h], 2 ;numlock active
rcl eax, 1
shr byte ptr [esi + 91h], 2 ;scrolllock active
rcl eax, 1
shl byte ptr [esi + 12h], 1 ;any alt down
rcl eax, 1
shl byte ptr [esi + 11h], 1 ;any ctrl down
rcl eax, 1
shl byte ptr [esi + 0a0h], 1 ;left shift down
rcl eax, 1
shl byte ptr [esi + 0a1h], 1 ;right shift down
rcl eax, 1

INVOKE ExitProcess, eax

END start

Спасибо, полезная статья и подталкивает уже начать собирать своего «домового». Вопрос знатокам: если взять GeForce RTX 5060 Ti 16GB + материнку с PCIe 5.0 + AMD Ryzen 9 9950X3D + 192 ГБ DDR5, будет ли комфортно использовать модели, например, Q4 32b, а также подобные, как в статье? Перебирал разные варианты, и ниже 300 т.р. не выходит c 2мя GPU картами.

Спасибо, великолепный вопрос, я понимаю, к чему вы клоните :) Но вариантов здесь особенно и нет, либо нативная, так сказать, шизофрения. Либо инвестиции в развитие микробиома (особенно Lactobacillus, Akkermansia)

Как котовод с 40-летним стажем могу сказать следующее:

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

Был случай когда чужие забирали кота. Два года не было его. Но когда случайно увидели и вспомнил и признал. Новой хозяйке пришлось признать факт.

Я никогда не кастрировал котов. Чего не желаю себе, того и не желаю коту.

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

Итог - все коты считали меня вожаком прайда. Я самый приоритетный во всей семье. Гладиться - ко мне. Лежать - на мне. Кормиться - ко мне.

За все время имел 6 котов. Может для статистики не много, но факт.

P.S. Котовод. Не кошковод. За кошек ничего сказать не могу.

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

Ракета была довольно-таки тихой. У нас была как раз Ракета-12А. А вот Циклон у друзей... Выл - моё почтение!

Кстати. О шуме:

  • 30 дБ Тихий шепот, библиотека

  • 40 дБ Тихий офис, приглушенный разговор

  • 50 дБ Обычный разговор, работающий холодильник

  • 60 дБ Шум оживленной улицы, пылесос

  • 70 дБ Громкий разговор, городской транспорт

  • 80 дБ Советский пылесос, городской транспорт

  • 90 дБ Газонокосилка, мотоцикл

  • 100 дБ Строительный шум, дрель

  • 110 дБ Рок-концерт рядом с колонками

  • 120 дБ Старт реактивного двигателя (далеко)

  • 130+ дБ Реактивный двигатель рядом

Ок, теперь советские пылесосы:

1. "Ракета" (модель УП-101 и др.) — около 82–85 дБ

2. "Чайка" (модель Чайка-3 и др.) — примерно 78–83 дБ

3. "Урал" — около 80–85 дБ

4. "Вихрь" — до 85 дБ

5. "Буран" — 80–86 дБ

6. "Днепр" — 78–82 дБ

7. "Тайфун" — до 88 дБ

8. "Сатурн" — примерно 82–85 дБ

9. "Весна" — около 80–83 дБ

10. "Юность" — 78–82 дБ

Современные пылесосы:

Самые тихие пылесосы (50–60 дБ)

1. Ecovacs Deebot OZMO 950 – 53 дБ

Робот-пылесос с влажной уборкой, идеально подходит для ночной работы или домов с детьми и домашними животными.

2. iRobot Roomba i7+ – 50 дБ

Интеллектуальный робот-пылесос с функцией самоочистки, работает практически бесшумно.

3. Miele Complete C3 – 60 дБ

Канистровый пылесос с HEPA-фильтрацией и системой AirClean, обеспечивает тихую и эффективную уборку.

4. Philips Performer Silent – 66 дБ

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

Умеренно тихие пылесосы (61–70 дБ)

5. Dyson V11 Torque Drive – 65 дБ

Беспроводной пылесос с интеллектуальной регулировкой мощности и LCD-дисплеем.

6. Bissell SmartClean Canister – 63 дБ

Канистровый пылесос с многоуровневой фильтрацией и легкой очисткой контейнера.

7. Electrolux EL4022A WhisperLite – 60 дБ

Легкий и компактный пылесос с HEPA-фильтром, идеален для небольших помещений.

8. Miele Dynamic U1 – 70 дБ

Вертикальный пылесос с системой шумоподавления и мощным всасыванием.

Более громкие модели (71–80 дБ)

9. Shark Navigator Lift-Away Deluxe – 74 дБ

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

10. Dyson Ball Multi Floor – 72–73 дБ

Вертикальный пылесос с технологией Ball для легкого маневрирования и мощным всасыванием.

Ок. А холодильники?

"Советские холодильники с уровнем шума 45–52 дБ могли быть заметно слышны в тишине, особенно ночью. Современные модели с уровнем шума 35–44 дБ работают значительно тише, что делает их более комфортными для использования в жилых помещениях."

И вот появляются, к примеру, "слуги на колёсах" да по паркету! - сразу начнётся борьба с "шумом колёс" - снова вернуться к линолеуму?, стелить всюду ковролин?, изобрести и наладить массовый выпуск "прорезиненного покрытия" для пола? - вполне возможно для бюджетных моделей роботов-слуг. Поди.

А вот те что будут тихие, в тапочках, да на второй этаж могут по лестнице то, эти будут дорогие и престижные роботы-слуги. Поди.

Сначала в персоналках был повальный x86, и он был слабенький. Потом прошло некоторое время, и его вычислительная мощность выросла на порядки. Даже на смартфоны начали его ставить. Среди микроконтроллеров были PIC, AVR, пользователям надо было страдать и напрягаться, чтобы случайно не прожечь неправильные фьюзы. Потом году так в 2010 на рынок ворвался ARM с помощью ST Microelectronics. Они завалили прилавки дешёвыми мощными микроконтроллерами, которые можно было легко сконфигурировать программно. ARM стал модным, привычным, его начали использовать в смартфонах. Потом его мощность выросла так, что начала обгонять x86, и Apple решила не терять время, переведя свои десктопы на ARM.

"Род приходит и род проходит, и нет ничего нового под небом". ARM микроконтроллеры стали дорогими, китайцы начали заваливать рынок дешёвой альтернативой STM в виде аналогов на RISC-V ядре. Пошла разработка видеокарт с RISC-V ядрами. В это же время у Intel проблемы с новыми процессорами и соответственно, с направлением развития. Новые ядра - довольно очевидный выход.

jop сразу находится но могу запостить ссылку в ответ на телефоне, напечатал jopdesign.com Martin Schoberl.

Второй проект быстро но не найду, давно это было но похоже что на opencores.org типа simple risk CPU system on chip.

Классный проект для обучения, поэтому запомнился - от ядра до компиляции С.

Я лет 15 не касаюсь почти этой темы, увы.

Может мы говорим про разные вещи, пробовал грузить 70B модели в lmstudio в 4090, вроде они не должны помещаться в память и работало быстрее чем 0.01 t/s, не помню точно с какой скоростью, но не так медленно.

У Nvidia настройка CUDA System Memory Fallback или CUDA политика резерва системной памяти, по умолчанию включена, когда в память gpu не влезают данные, она загружает их в "своп" в обычную память, в эти моменты модель начинает дико тормозить, как и вся система.

Может показаться, что это работает просто от того, что ollama или LM Studio не эффективно заполняют vram, и там есть еще место. Если у вас это действительно работает, то это стоит изучить подробнее.

А так, у всех проектов основанных на llama.cpp есть возможность выгружать часть слоев на GPU, сколько хватит памяти, а часть оставлять на CPU. LM Studio делает это автоматически. В новой версии можно явно указать, чтобы модель не выходила за пределы реальной памяти.

А можно с этого момента подробнее? У меня не то что бы залежи видеокарт поэтому никогда не смотрел как использовать две. Может поделитесь ссылкой как это дело настраивать?

Всё автоматически заработает, если вместо CUDA выбрать Vulkan - то заработает даже для AMD + Nvidia + Intel.

Если у вас разнородные видяхи, например, у 4060 память имеет скорость 288 гб/с, у 5060 448 гб/с, а у 4090 1 тб/с, то нужно выбрать стратегию приоритетной разгрузки, сначала максимально загружать 4090, а потом остальные, а не разгружать слои равномерно.

Ну и еще несколько деталей:

  • В LM Studio пока нельзя указывать override-tensor, если интересует эта опция, то придется воспользоваться text-generation-webui, там это указывается в extra-flags поле. Это в основном затронет MoE модели, для остальных не важно.

  • В text-generation-webui можно легко создавать множество ролей и быстро переключаться между ними, у каждой роли будет своя история диалогов. Тут легче закидывать модели для тестирования, достаточно копировать их в models папку, не нужно создавать подпапки как в LM Studio.

  • Если есть встройка, можно в Windows в "настройках графики" указать путь до любого exe'шника, например, браузера или оболочки винды dwm, и перекинуть их на встройку, чтобы высвободить занятые пару гб под винду и браузер. Либо в браузере отключить 3d ускорение, а в настройках графики Windows отключить планирование gpu с аппаратным ускорением. Это имеет смысл, если не хватает чуть-чуть до загрузки целиком модели в vram.

  • В LM Studio полезно выбирать версии квантов, например найти unsloth версии. IQ4_XS кванты, влезают в 40гб vram для 70-72B моделей, а UD-Q2_K_XL влезет в 32гб.

  • В LM Studio или ollama не оптимально в автоматическом режиме заполняется VRAM, когда можно загрузить еще 3-4гб они не догружают. Тут поможет ручное управление, мониторить nvidia-smi или диспетчер задач, и смотреть реальную загрузку памяти.

  • У LM Studio по умолчанию выключено квантование KV-кэша, если его включить, можно еще выиграть пару гб.

Немного информации про разные кванты

У gguf есть 2 вида квантов: статические k-кванты и i-кванты с применением матрицы важности imatrix. k-кванты просто квантуют тензоры, без выбора какие тензоры важнее в общей куче. В i-квантах приоритет отдается квантам, которые подсвечиваются через imatrix. imatrix создается из txt файла с различным набором текстов, поэтому финальная модель будет квантована с учетом тех видов текстов, что там были, и можно сделать свою imatrix заточенную, например, на нужный язык.

Все квантуют по разному, поэтому кванты называются одинаково, но они будут разные. Например, самые популярные кванты от bartowski заточены на английский язык, он использует английскую imatrix везде, даже не для i-квантов, он квантует статичные k-кванты вплоть до Q6 через английскую imatrix. Если у вас приоритет на другой язык, лучше взять статичные кванты от lm-studio, или новые кванты от Unsloth.

В ik_llama есть продвинутые кванты, они на данный момент лучше остальных вариантов. Такие кванты могут конвертироваться на лету через ключ -rtr при загрузке модели, но это отключает mmap. Можно их переконверитровать и сохранить результат, либо немного готовых есть у https://huggingface.co/ubergarm. Но это для совсем энтузиастов, которые хотят выжать максимум из минимального объема, и которые не боятся компиляции и консоли, так как ik_llama не предоставляет готовые бинарники.

Они недавно совсем вышли, никогда их не пробовал.

https://openrouter.ai/meta-llama/llama-4-scout:free
https://openrouter.ai/meta-llama/llama-4-maverick:free

Регистрация на openrouter не замороченная, пускает любую почту, в поиске просто ввести free и будет много новинок, которые можно протестировать, в том числе и через API.

Например, интересный новый мердж двух моделей R1 и V3-0323:
https://openrouter.ai/tngtech/deepseek-r1t-chimera:free

Или неизвестная новинка от DeepSeek под названием Prover V2:
https://openrouter.ai/deepseek/deepseek-prover-v2:free

насчёт альтернативы это не про сложность, а про проприетарщину.
есть ли что-нибудь вроде rtx64, может rt-xen (он там живой вообще?) которым можно (без особых плясок с бубном) на х86 полностью откусить несколько процессорных ядер и отдать их целиком какому-нибудь примитивному freedos :), freertos или embox для реалтайма, но и при этом иметь на оставшихся ядрах процессора рядом и нереалтаймовый "условный виндоус" для гуя и/или сети с вебмордой наружу.

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

Для почты есть отличное решение mailcow, набор преднастроеных контейнеров. Если донастроить по инструкции - почта ходит прекрасно, ничего не режет. Пользуюсь довольно давно.

Для "бытового" DNS/DHCP лучше всего TechnitiumDNS - при полной бесплатности там шикарная веб-морда для конфигурации. И тоже распространяется как контейнер в том числе.

Задачи тут две

  • Дешёвое колесо для учёбы
    Актуально в течение недели - месяца, в зависимости от частоты поездок. Из него очено быстро вырастаешь, и запаса хода в 20км перестаёт хватать. (надо учитывать что при снижении заряда ниже 30% слабое колесо едет всё медленнее и медленнее)
    Примеры - inmotion v5f, kingsong 14d.

  • Средний класс
    kingsong 16s (с натяжкой), inmotion v8F, v10F, kingsong 18xl, kingsong 16x (всех не перечислить)
    Едет куда быстрее и дальше.

  • Средний класс с подвеской
    begode T4, kingsong s16, s19 - Для учёбы подходят мало, стоят относительно дорого, покупаются обычно после 200+ км наката

  • Тяжёлые
    Kingsong s22, leaperkim patton-s, leaperkim lynx, и далее по списку

По стоимости

Для учёбы - 30+ БУшное, 60+ новое
Универсал бесподвес - 60+ БУшное 130+ новое
Подвес 120+ БУ 160+ новое
Тяж 150+ БУ 220+ новое

Ну вот откуда взялась эта идея с отдельным единственным сабвуфером? Откуда эта дикая схема с х.1?? Та же звуковая схема 5.1 - это заурядное "квадро". И совсем не требуется много денег. Аппарат сейчас предельно дёшев.

А многоканала, в том числе и самопального - навалом на Рутрекере. https://rutracker.org/forum/viewforum.php?f=1299

Фубарчик нормально поживает, и мп3 играть тоже умеет. Плагины я именно для него пишу, потому что среди прочих плееров, включая winamp, у него единственного вменяемый SDK, в тч для многоканального звука.

Жаль ссылки на оригинальное видео про jailbreak от Dammit Jeff нет, где развернули вопрос про эмуляцию GameBoy, дэшборд Home Assistant и дали ссылку на сервер сообщества в ds — мне там помогли с раскирпичиванием Kindle 6 и добавили этот баг в FAQ потом (на моей версии Kindle флоу немного отличался от того, что тут в инструкции и в его видео, надо немного править скрипт).

Так что если кто тоже получит кирпич, ищите видео и потом сервер в ds.

За статью на русском спасибо 8)

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

Эксперимент такой: сгенерировать две синусоиды, скажем, для примера 500 и 600 Гц. Воспроизвести их сначала через два разных динамика. А потом сложить, и воспроизвести через один канал. При обработке можно вычесть нелинейность самого микрофона, и в остатке будет как раз коэффициент интермодуляционных искажений самой акустической системы. Ну и потом это всё автоматизировать, и измерять на разных частотах с разной мощностью.

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

Конечно разбираться в старой технике это интересно, но для измерений сейчас лучше использовать что нибудь поновее. Например Rigol DHO800/900 серии или SIGLENT SDS1000/2000 серии. При измерении частот примерно до 200 кГц они имеют 10-12-бит ENOB и точность измерения не хуже 1-2%. Кроме этого у них есть огромное количество измеряемых величин в плоть до измерения АЧХ/ФЧХ, мощности(при наличии токовых клещей) прямо из коробки. По выбору осциллографа можно почитать вот эту тему https://forum.vegalab.ru/showthread.php?t=64012 , в ней есть много полезного в том числе и отзывы. Кстати для своих личных целей использую небольшой скрипт на Python, для работы с осциллографами Rigol 1000/800/900 серии, но пока графическую оболочку для него не делал, поскольку вполне обхожусь GNU Plot. Тоже всё порываюсь написать графическую оболочку на Qt, но как то не складывается со временем. Если интересно сделать оболочку то можно попробовать скооперироваться, может что нибудь да и получится.

1
23 ...

Information

Rating
2,271-st
Registered
Activity