Я вам вот что могу сказать. 30 часовой рабочий день это очень фигово.
Недавно меня очень просили дофиксить все баги в фиче.
Фичу делал я и еще один чел и там было много чего тяп-ляп написано лишь бы показать в нужный день.
Потом снова подкрадывался день показа, а оно совсем не работало.
Значит фиксить целиком мне (ну не второму челу же).
В предпоследний день я решил задержаться на работе, что бы успеть сделать все же.
Задержался так что закончил только к вечеру следующего дня.
Потом всю неделю дико тормозил. Продуктивность упала до 10%, если не меньше.
А еще каждую ночь были кошмары про умножения матриц, лучи и градиентные спуски.
А показали то хоть? Да, но только еще через неделю 🙂
Вывод - кранчи того не стоят.
Недавно меня очень просили дофиксить все баги в фиче.
Фичу делал я и еще один чел и там было много чего тяп-ляп написано лишь бы показать в нужный день.
Потом снова подкрадывался день показа, а оно совсем не работало.
Значит фиксить целиком мне (ну не второму челу же).
В предпоследний день я решил задержаться на работе, что бы успеть сделать все же.
Задержался так что закончил только к вечеру следующего дня.
Потом всю неделю дико тормозил. Продуктивность упала до 10%, если не меньше.
А еще каждую ночь были кошмары про умножения матриц, лучи и градиентные спуски.
А показали то хоть? Да, но только еще через неделю 🙂
Вывод - кранчи того не стоят.
Иногда соединяя одновременно 5 антиоптимизаций получаешь код в 3 раза быстрее.
Я долго бился с ускорением ML рендер техники. Но тренировка никак не получалась быстрее 4мс.
Я пробовал:
1. Развернуть циклы. Видимо слишком много регистров надо, стало медленее.
2. Саккумулировать данные со всех тредов волны прежде чем писать их через atomicAdd.
3. Аккумулировать по всей группе, а не по волне. Стало еще хуже без wave-instrinsic-ов
4. Вместо атомиков писать в отдельные слоты и суммировать позже. Еще чуть хуже.
5. Кооперативную обработку одного сэмпла несколькихи тредами. Вообще жуть.
Я попробовал все сразу. И войля. 1.3мс
Я долго бился с ускорением ML рендер техники. Но тренировка никак не получалась быстрее 4мс.
Я пробовал:
1. Развернуть циклы. Видимо слишком много регистров надо, стало медленее.
2. Саккумулировать данные со всех тредов волны прежде чем писать их через atomicAdd.
3. Аккумулировать по всей группе, а не по волне. Стало еще хуже без wave-instrinsic-ов
4. Вместо атомиков писать в отдельные слоты и суммировать позже. Еще чуть хуже.
5. Кооперативную обработку одного сэмпла несколькихи тредами. Вообще жуть.
Я попробовал все сразу. И войля. 1.3мс
https://www.twitch.tv/randomrustdev
Первый стрим с кодингом на расте.
С места в карьер.
Разрабатывается Аркана.
Система импорта ассетов.
Первый стрим с кодингом на расте.
С места в карьер.
Разрабатывается Аркана.
Система импорта ассетов.
Twitch
RandomRustDev - Twitch
I'm just random Rust developer.Making my own game engine from scratch.And occasionally playing some games.
Сейчас начнется новый стрим.
Разработка импортера для картинок.
Ссылка та же
Разработка импортера для картинок.
Ссылка та же
https://www.twitch.tv/videos/2277544249
Ссылка на запись стрима.
Я немного покосячил с окнами, но в целом получилось не так плохо, как мне кажется.
Сделали импортер для картинок, сделали UI для импорта, увидели, что что-то заимпортилось и получило AssetID.
Ссылка на запись стрима.
Я немного покосячил с окнами, но в целом получилось не так плохо, как мне кажется.
Сделали импортер для картинок, сделали UI для импорта, увидели, что что-то заимпортилось и получило AssetID.
Twitch
Twitch is the world's leading video platform and community for gamers.
Как вы думаете, на сколько надо подготавливаться заранее к стриму?
Я не имею в виду звук и настройку окон и вот это, что непосредственно стрим составляет. Это конечно надо все подготовить 🍳
Я про сам код. Я пробовал кодить с наскоку 🏇
Сегодня вот только убедился что создание плагина работает. Из-за чего эдитор перестал запускаться, когда я плагин удалил 🤦♂️
Но совершенно не продумывал как я буду писать. Только что.
На другом конце спектра будет ненастоящее программирование, а переписывание того, что уже написал заранее.
Как по вашему мнению, где золотая середина?
Я не имею в виду звук и настройку окон и вот это, что непосредственно стрим составляет. Это конечно надо все подготовить 🍳
Я про сам код. Я пробовал кодить с наскоку 🏇
Сегодня вот только убедился что создание плагина работает. Из-за чего эдитор перестал запускаться, когда я плагин удалил 🤦♂️
Но совершенно не продумывал как я буду писать. Только что.
На другом конце спектра будет ненастоящее программирование, а переписывание того, что уже написал заранее.
Как по вашему мнению, где золотая середина?
This issue got me puzzled.
What's the correct answer?
https://github.com/zakarumych/egui-snarl/issues/42
What's the correct answer?
https://github.com/zakarumych/egui-snarl/issues/42
GitHub
Can I use pinch-in, pinch-out? · Issue #42 · zakarumych/egui-snarl
I usual use pinch-in, pinch-out.
На стриме я реализовывал импортер картинок в базовый RGB, что в общем-то сильно неоптимально.
Поэтому время пришло для того что бы жать картинки.
Как известно, GPU нативно поддерживают блочные сжатые форматы.
Реализовал сжатие в BC1.
Очень простое.
GUI что бы видеть результаты.
Слева картинка из файла, справа она же пожатая и разжатая обратно.
Поэтому время пришло для того что бы жать картинки.
Как известно, GPU нативно поддерживают блочные сжатые форматы.
Реализовал сжатие в BC1.
Очень простое.
GUI что бы видеть результаты.
Слева картинка из файла, справа она же пожатая и разжатая обратно.
This media is not supported in your browser
VIEW IN TELEGRAM
Попробовал интегрировать texpresso.
Из минусов:
1. Какие-то белые пиксели.
2. Очень долго сжимает - на видео видно пролаг при нажатии на чекбокс.
Из минусов:
1. Какие-то белые пиксели.
2. Очень долго сжимает - на видео видно пролаг при нажатии на чекбокс.
Продолжаю работать над сжатием картинок.
Прочитал два папируса сегодня: по кодам Хаффмана и работы Лемпеля и Зива.
Буду использовать сжатие без потерь, что бы пожать блоки, выданные блочными сжимателями.
При чем таким образом, что бы разжать можно было эффективно на gpu
Прочитал два папируса сегодня: по кодам Хаффмана и работы Лемпеля и Зива.
Буду использовать сжатие без потерь, что бы пожать блоки, выданные блочными сжимателями.
При чем таким образом, что бы разжать можно было эффективно на gpu
Все же в сжимателе я напортачил.
И compression ratio оставляет желать лучшего на сложных картинках.
На простых, где много одного тона, там конечно да.
И compression ratio оставляет желать лучшего на сложных картинках.
На простых, где много одного тона, там конечно да.
Безумная идея.
Сделать маленькую нейронку, которая будет пытаться предсказать следующий пиксель и после каждого пикселя чуть-чуть обучаться.
Если предсказания будут точны, то разница с фактическим значением будет мала. А если почти все кодируемые значения малы, то и повторяемость последовательностей будет больше.
В файл веса класть не надо. При декодировании она точно так же должна обучаться
Сделать маленькую нейронку, которая будет пытаться предсказать следующий пиксель и после каждого пикселя чуть-чуть обучаться.
Если предсказания будут точны, то разница с фактическим значением будет мала. А если почти все кодируемые значения малы, то и повторяемость последовательностей будет больше.
В файл веса класть не надо. При декодировании она точно так же должна обучаться
Я кстати понял, почему трава такая несжимаемая.
Она в жипеге весит столько же, сколько bc1, там энтропия чуть ли максимальная.
Она в жипеге весит столько же, сколько bc1, там энтропия чуть ли максимальная.