На 3й месяц активного использования ИИ для кодинга я примерно такую стратегию вывел.
Я больше не пишу одноразовый код. Совсем. ИИшка может делать тяп ляп не хуже меня и сильно быстрее.
Я так же использую ИИ для экспериментального кода. Если я ещё не представляю как надо, то очень эффективно получается. Слоп в принципе работает, но я четко вижу как не надо делать и почему в этом коде. Приходит просветление и с ним осознание, как надо делать. И руки чешутся взять и переписать.
Ну и последняя категория - бойлерплейт или подобный код, где есть только один способ его написать. Проверяю конечно. Но чаще всего я написал бы то же самое.
А сегодня я задал ИИ решить ту же задачу в пете, которую я уже решал на работе.
Если бы я руками это написал был бы копирайт инфринджмент. А так это не я, это слопмашинка виновата :)
Я больше не пишу одноразовый код. Совсем. ИИшка может делать тяп ляп не хуже меня и сильно быстрее.
Я так же использую ИИ для экспериментального кода. Если я ещё не представляю как надо, то очень эффективно получается. Слоп в принципе работает, но я четко вижу как не надо делать и почему в этом коде. Приходит просветление и с ним осознание, как надо делать. И руки чешутся взять и переписать.
Ну и последняя категория - бойлерплейт или подобный код, где есть только один способ его написать. Проверяю конечно. Но чаще всего я написал бы то же самое.
А сегодня я задал ИИ решить ту же задачу в пете, которую я уже решал на работе.
Если бы я руками это написал был бы копирайт инфринджмент. А так это не я, это слопмашинка виновата :)
😁8👍5❤1
Сегодня снова загадка.
Вот в этом коде будет ли соптимизирован bound check в последнем выражении в релизе?
upd: исправил код
Вот в этом коде будет ли соптимизирован bound check в последнем выражении в релизе?
fn foo<T>(slice: &[T], a: usize, b: usize) -> &[T] {
assert!(slice.len() >= a + b);
&slice[slice.len() - a - b..][..b]
}upd: исправил код
❤2
И всё же ИИ отличная штука.
Никакой поисковик не мог мне дать ответ на вопрос, почему шуршит GPU, а CPU не шуршит.
Никакой поисковик не мог мне дать ответ на вопрос, почему шуршит GPU, а CPU не шуршит.
🌚3😈2❤1
Экспериментирую с Codex+Aseprite.
И знаете что? А ничё так он рисует. Но не сразу. Совсем не сразу.
Я дал ему концептарт персонажа и он просто накидал корявых пикселей.
Я просил исправить, но итерации шли медленно.
Я поставил ему /goal, приказав самому искать проблемы и фиксить по кругу, пока он не найдёт ни одной.
Стало лучше.
Потом он сам придумал сделать вот что: с помощью генератора картинки он рисует фрейм. Получается нейрослоп, но похоже. И прям нужная поза.
Потом он перерисовывает это в пиксельарт в Aseprite.
Это конечно не профессиональный уровень, но лучше чем я на коленке сделаю.
Пример сгенерированных референсных поз для анимации шага ниже.
Финальный результат тоже выложу.
И знаете что? А ничё так он рисует. Но не сразу. Совсем не сразу.
Я дал ему концептарт персонажа и он просто накидал корявых пикселей.
Я просил исправить, но итерации шли медленно.
Я поставил ему /goal, приказав самому искать проблемы и фиксить по кругу, пока он не найдёт ни одной.
Стало лучше.
Потом он сам придумал сделать вот что: с помощью генератора картинки он рисует фрейм. Получается нейрослоп, но похоже. И прям нужная поза.
Потом он перерисовывает это в пиксельарт в Aseprite.
Это конечно не профессиональный уровень, но лучше чем я на коленке сделаю.
Пример сгенерированных референсных поз для анимации шага ниже.
Финальный результат тоже выложу.
❤3😢2👍1👎1
Ему не понравилось, поэтому он сам взял и нашёл картинки с манекеном и сгенерировал волчару поверх манекена 🤯
😁3🤔1😢1
Кстати, это Sol-6.1 Medium. Он пашет со вчерашнего вечера и пока что съел лишь 7% от недельного Pro лимита.
❤2👍1
Для сравнения Astra выжрала недельный лимит за 4 часа работы в Blender
❤🔥1
В mev теперь есть IO.
На метале можно загружать данные прямо с диска в буфер или картинку.
Меньше копий богу копий.
Современный пайплайн загрузки текстуры - загружаем байтики с диска в GPU buffer, расжимаем чанки паралельно в 64+ потока... да это ж веса нейронки и фичи хэшгрида, где же картинка?
Правильно, запускаем инференс и получаем текстуру.
Или инферим тексель прямо во время рендеринга, если железка позволяет.
На метале можно загружать данные прямо с диска в буфер или картинку.
Меньше копий богу копий.
Современный пайплайн загрузки текстуры - загружаем байтики с диска в GPU buffer, расжимаем чанки паралельно в 64+ потока... да это ж веса нейронки и фичи хэшгрида, где же картинка?
Правильно, запускаем инференс и получаем текстуру.
Или инферим тексель прямо во время рендеринга, если железка позволяет.
🔥2😁1
Пробую делать нейроматериалы на mev.
Начал с image fitting.
Картинка сжата в 1.5% от размера оригинала.
В mev добавлен модуль, который генерирует compute kernel для заданных параметров нейросетки и энкодера.
В нём и forward, и backward функции с батчингом.
Это позволяет запускать ML штуки прямо во время рендеринга.
Будет добавлены кооп векторы для максимального перформанса.
Начал с image fitting.
Картинка сжата в 1.5% от размера оригинала.
В mev добавлен модуль, который генерирует compute kernel для заданных параметров нейросетки и энкодера.
В нём и forward, и backward функции с батчингом.
Это позволяет запускать ML штуки прямо во время рендеринга.
Будет добавлены кооп векторы для максимального перформанса.
👏2