Как стать автором
Обновить
160
0
Сергей @iiiytn1k

Инженер

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

1) Пока что выложили код и веса только для интерполяции кадров

2) Код из оф. репозитория абсолютно не оптимизирован и с трудом ворочается на 4090, а после 1-2 генераций вываливается в CUDA OOM

3)Благо энтузиасты выпустили ноду для ComfyUI, которая позволяет запускать это поделие на карточках Nvidia с объемом VRAM от 16Гб и выше (upd: уже от 10Гб). А так же сконвертировали веса в safetensors fp16.

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

Сабж Asus ROG Strix RTX 4090 White OC нынче стоит 2000-2200$ (американских)

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

Keep-alive элементы — это небольшие светящиеся точки, которые горят постоянно, когда подано высокое напряжение. Светятся обычно где-то внутри панели или светят на обратную сторону, располагаются неподалёку от первого катода.

У этого дисплея явно видны keep-alive элементы, поэтому проблем с начальной ионизацией не должно быть. Плюс, похоже, на всех анодах реализована вольтдобавка — вот эти вот 24 диода, резистора и конденсатора на каждой плате анодных ключей + транзистор на одной из плат.

У дисплея хоть и 202 катода, но управлять ими будет легко. Катодные ключи здесь реализованы на npn-транзисторах, которые объединены в 17 групп по 12 штук (точнее 16 групп по 12 штук и одна группа с 10 штуками). Для управления всеми катодами потребуется всего math.ceil((12+17)/8) = 4 регистра 74hc595 + пара uln2803.

С анодами есть один нюанс. У дисплея 48 анодов, но к выходу каждой MA7446-01 подключено по 3 анодных электрода, поэтому рулить вертикальными субпикселями с родной электроникой скорее всего не получится. MA7446-01 — это с большой долей вероятности (и если судить по схеме подключения) высоковольтный 8-битный сдвиговый регистр. Точнее можно будет сказать, если подключить лог.анализатор к контактам 6,7,8,9,10 разъема X1 платы MD-24T (Left).

Шикарный дисплей, вот бы Bad Apple на нём запустить.

Габаритные размеры не совсем понятны. На глаз прикинул, что отображаемая область где-то 300х45мм?

Шрифт Minecraft какой-то напоминает. Тему соответствующую сделать и будет топ:

Cursed VSCode

У меня есть МС6205 с датакодом 0302, т.е. это или 2002 или 2003 год выпуска.

Из характерных особенностей:

Шильдик сделан наклейкой, а не алюминиевой штамповкой.

ПЗУ знакогенератора — УФ-стираемая EPROM (РФ2 или РФ5, не помню)

Анодные ключи сделаны на трёх микросхемах КН1150КН1

чем ближе насыщение, тем выше частота.

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

Тем ниже КПД преобразователя.

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

По поводу писка МС6205 и ИМГ-1-03 — в этих устройствах пищит сама газоразрядная панель и трансформатор преобразователя. У меня есть экземпляры, которые работают практически бесшумно, а есть такие, которые пищят так, что через несколько минут начинает болеть голова.

Писк панели убрать нельзя, можно только влиять на него изменяя частоту развёртки.

С трансформатором дело обстоит иначе. Я пробовал пропитывать его лаком в небольшой вакуумной камере, но никаких положительных результатов это не принесло (вообще, трансформаторы уже с завода залиты лаком). Зато очень помогло прикрепить небольшой неодимовый магнитик (10х4мм) на сердечник трансформатора.

Преобразователь на этих устройствах — это примитивнейший двухтактный автогенератор Ройера с насыщающемся трансформатором, частота работы которого зависит от индуктивности базовой обмотки. Прикрепив магнит частота повышается и писк просто выходит за слышимый диапазон. При этом выходное напряжение немного повышается (буквально на 1-1.5 В), а ток потребления не изменяется.

Hidden text

К примеру, у ужасно пищащего экземпляра МС6205, которыми я располагаю, частота работы преобразователя 9.86 кГц:

Прикрепляем магнит и частота повышается до 21.72 кГц, писк прекращается:

ЧСХ, у другого экземпляра МС6205 из этой же партии (дата изготовления 01.1986) частота работы преобразователя из коробки почти 19 кГц. С чем это связано я затрудняюсь сказать. То ли такое качество намотки, то ли такое качество феррита.

Я так понял у вас Vddh подключен к Vdd (+5в). Если это так, то увы не заработает. Когда я тестил эти микрухи на макетке, то выяснил, что сигнал на параллельных выходах появляется при напряжении питания Vddh от 40В и выше.

Прогнал несколько тестов на 4090:

Train fp32

Train tf32

Train fp16 amp

Train fp16 half

Интересно, что кривые tf32 и fp16 amp практически одинаковые.

Текстовые результаты
fp32_train = [(150, 1916.85302734375), (160, 1726.422119140625), (170, 1572.1138916015625), (180, 1442.38671875), (190, 1337.249755859375), (200, 1242.3446044921875), (210, 1172.5013427734375), (220, 1095.2509765625), (230, 1029.110595703125), (240, 971.7257690429688), (250, 921.0980224609375), (260, 875.9171752929688), (270, 826.3692626953125), (280, 786.3384399414062), (290, 752.35595703125), (300, 721.5491943359375), (310, 688.0049438476562), (320, 663.115478515625), (330, 647.8905029296875), (340, 627.601806640625), (350, 601.1165161132812), (360, 591.7486572265625), (370, 570.9195556640625), (380, 560.3616333007812), (390, 554.3623657226562), (400, 550.8558349609375), (410, 541.1676025390625), (420, 537.27685546875), (430, 533.3079223632812), (440, 534.1802368164062), (450, 525.8939208984375)]

tf32_train =[(150, 1130.47998046875), (160, 1045.67822265625), (170, 958.404052734375), (180, 872.135498046875), (190, 801.3380737304688), (200, 733.6597290039062), (210, 674.9171752929688), (220, 630.9574584960938), (230, 591.8206787109375), (240, 557.5418090820312), (250, 529.1500244140625), (260, 503.8023986816406), (270, 482.4733581542969), (280, 464.09136962890625), (290, 453.2052917480469), (300, 446.3533630371094), (310, 442.28253173828125), (320, 438.00335693359375), (330, 433.1138610839844), (340, 430.9553527832031), (350, 430.3887023925781), (360, 423.78192138671875), (370, 421.5494384765625), (380, 418.23504638671875), (390, 417.9413757324219), (400, 417.5173034667969), (410, 416.3753662109375), (420, 414.67138671875), (430, 414.67596435546875), (440, 415.1285095214844), (450, 415.0179443359375)]

fp16_amp_train = [(150, 713.5382080078125), (160, 644.8378295898438), (170, 582.9127807617188), (180, 531.542724609375), (190, 487.0350646972656), (200, 449.3820495605469), (210, 419.1130065917969), (220, 393.4111633300781), (230, 370.9094543457031), (240, 346.04071044921875), (250, 329.3534851074219), (260, 313.56951904296875), (270, 299.94134521484375), (280, 289.3700866699219), (290, 283.7044982910156), (300, 281.9547424316406), (310, 278.1085205078125), (320, 275.4595947265625), (330, 273.2633972167969), (340, 271.5821228027344), (350, 270.0470886230469), (360, 266.6712646484375), (370, 265.72222900390625), (380, 264.9597473144531), (390, 263.90924072265625), (400, 263.3031921386719), (410, 262.78692626953125), (420, 262.68572998046875), (430, 262.64483642578125), (440, 262.59173583984375), (450, 262.6723327636719)]

fp16_half_train = [(150, 432.8243103027344), (160, 380.8467712402344), (170, 346.6760559082031), (180, 312.84552001953125), (190, 287.2230529785156), (200, 266.4410400390625), (210, 248.6437225341797), (220, 235.57911682128906), (230, 225.4227752685547), (240, 218.5994415283203), (250, 215.1365509033203), (260, 212.386962890625), (270, 210.07582092285156), (280, 208.22596740722656), (290, 206.6107177734375), (300, 205.4788055419922), (310, 204.30592346191406), (320, 203.26885986328125), (330, 202.8826904296875), (340, 202.81948852539062), (350, 202.8431396484375), (360, 202.87684631347656), (370, 202.7930450439453), (380, 202.87242126464844), (390, 202.78543090820312), (400, 202.8188934326172), (410, 202.78146362304688), (420, 202.84884643554688), (430, 202.83177185058594), (440, 202.92153930664062), (450, 203.05181884765625)]

В прикладных задачах (инференс и обучение лор/dreambooth в SD, обучение моделей RVC (в большинстве случаев работа с fp16 и bf16)) работаю с лимитом мощности в 70%. Разница в производительности по сранению со стоковыми 450 Вт на уровне погрешности, но при этом тепловыделение меньше на 135 Вт, что даёт снижение температуры GPU на 10 градусов.

12VHPWR отличается от 12V-2x6 по сути только укороченной длиной sense-пинов. Защита от дурака, чтобы пользователи до конца вставляли штекер.

Со стороны БП разъём не претерпел никаких изменений.

Д — диаграмма железо-углерод.

Насколько медленнее работать начнет?

В десятки раз.

Ковырял одну электросижку (бокс-мод), так там вообще стоял внешний 16-битный АЦП.

После того как в torch запилили нативную оптимизацию SDP смысла в xformers особо нет (если только разработчики всё-таки сделают поддержку Flash Attention 2 в windows).

Hidden text

При обычной генерации (без AnimateDiff) с параметрами запуска:

set COMMANDLINE_ARGS=--opt-sdp-attention --opt-channelslast
set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512

Скорость генерации EulerA, 512x512, 150 Steps — около 35 it/s.

При использовании --xformers — около 31 it/s.

Это с учётом того, что карточка в 70% поверлимите.

P.S: У меня и с SDP оптимизацией иногда вылетает эта ошибка.

Nintendo Switch: ну да, ну да, пошла я на...

XL просто не стартует

Когда у меня была 2060 Super на 8Гб, то с SDXL никаких проблем не испытывал — и high res. fix, и апскейл, и лоры, и контролнеты. И на автоматике и на комфи. Главное чтобы в параметрах запуска стоял xfromers и medvram. И ещё я бы рекомендовал использовать sdxl_vae_fp16_fix, благодаря которому можно генерировать без использования параметра no-half-vae (из-за которого существенно падает производительность и увеличивается расход памяти).

Комфортно работать уже можно начиная с 2060 8Гб. Хотя я знаю человека, который работает на 1060 6Гб.

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

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

Однако повышать до упора, пока не упрётесь в предел по VRAM, нет смысла, так как в один момент наступает точка, после которой время обучения уже не падает, а потребление VRAM всё так же растёт, и если у вас много VRAM, то эта точка может наступить относительно рано.

Потому что упор идёт не только на объём VRAM, но и на количество CUDA ядер.

Ещё можно отметить такие полезные опции как Color и Flip augmentation. Color augmentation случайно меняет оттенок изображения (hue) при каждой итерации (полезно при обучении лоры на стиль или если концепт персонажа это позволяет).

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

Один нюанс — cache latents при включении этих опций работать не будет.

С CLIP Skip при обучении интересная вещь. В гайдах обычно пишут, что если обучаете лору на реалистичного персонажа, то ставьте этот параметр равный 1. Один раз случайно поставил CLIP Skip 2 и заметил это под конец обучения. Ну, думаю, ладно — посмотрю, что получится. И получил просто замечательные результаты. Причём эта лора прекрасно работала как с реалистичными моделями, так и с полу-реалистичными и с аниме моделями (CLIP Skip 2 при генерации), несмотря на то что она обучалась на базовой SD 1.5. Потом попробовал переобучить эту же лору с CLIP Skip 1 — результаты на полу-реалистичных и аниме моделях были гораздо хуже.

1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Челябинск, Челябинская обл., Россия
Зарегистрирован
Активность