Судзумия
Вот SIMD calculus — вычисления с помощью SIMD
LexsZero
просто обычно словом калкулус называют то что в рашкоуниверах зовется матаном
Судзумия
Ну эт да
Судзумия
Но мы можем представить калькулятор
Иван
обычные инструкции производят операцию над одной парой значений
Вся эта байда (категоризация/классификация) с SIMD делит все CPU на 4 категории же. А не-SIMD это что?
Судзумия
Старые добрые add
Иван
А старые добрые add по классификации Флинна это что?
Иван
Судзумия
SISD
Иван
А это с каждым языком мой умный компилятор генерирует мне SIMD?
Иван
Или Rust в этом плане как-то отличается?
Судзумия
Если компилятор умеет только
Судзумия
В расте недавно ввели
Судзумия
Но если компилятор умеет, то везде одинаково, да
Иван
Круто, спасибо.
Судзумия
Да не за что
Судзумия
Я даже ради тебя загуглил классификацию Флинна
Судзумия
Сорян, мы тут все из ПТУ
Судзумия
Только и умеем, что код писать
Иван
Ну, я и это нормально делать пока что ещё не умею.
Судзумия
Да лан, это приходящее
でゲソ
Теперь можно наконец писать i++?
Делаешь ++ @ Теряешь владение в операторе
պլհկ
Как я понимаю, ситуация следующая. 1.Компилятор (точнее llvm) может сам вставлять simd, когда может доказать что это безопасно. Это всегда было в расте (и других языках на llvm). 2.Компилятор не очень умный, специально подгонять код под оптимизатор с шансом, что при обновлении сломается не хочется, поэтому добавляют поддержку simd в стд. Придется писать инструкции вручную, зато гарантированно. Для пацанов попроще будет высокоуровневая обертка (крейт faster).
kitsu
Есть какой-нибудь аналог partition, только чтоб в начальном контейнере осталось левая часть?
kitsu
Только partition не по предикату, а по индексу
kitsu
ну, т.е контейнер упорядочен
Loo
Только partition не по предикату, а по индексу
то есть у тебя есть вектор [1,2,3,4] => индекс 2 = > [1,2] , [3,4]?
Loo
я правильно понял?
kitsu
yes
kitsu
Вообще BinaryHeap, но сути не меняет
պլհկ
split_at?
Loo
Вообще BinaryHeap, но сути не меняет
split и его вариации, windows, chunks
kitsu
у кучи что-то нема
Loo
у кучи что-то нема
прежде чем с кучей такие операции производить необходимо преобразовать её в Vec
Loo
функция into_vec
Loo
либо into_sorted_vec
kitsu
ох, неоч лучше через while/peek/pop сделаю
Маjко
Аллокации?
kitsu
во-первых аллокации, во-вторых не оч хочется удалять
պլհկ
Какие аллокации?
Loo
1) Частая ошибка - оптимайзить где ещё нет проблем с производительностью. Так сказать преждевременные оптимизации. 2) Если тебе на выходе нужно 2 вектора а не слайса - это в любом случае 2 аллокации в хипе. Какой бы ты способ не юзал (into_vec, into_sorted_vec, peek, хуик). 3) При вызове into_sorted_vec аллокаций насколько я понимаю - не происходит. Он начинает свапать элементы внутри и выкидываает тебе нижележащий вектор. Если я ошибаюсь - поправьте. https://doc.rust-lang.org/src/alloc/binary_heap.rs.html#601-609
Filipp
Loo
@kitsu так ты разобрался?
kitsu
нуу, я сделал как и хотел, т.к это просто
kitsu
но чот не работает
Loo
но чот не работает
что не работает?
kitsu
что не работает?
вот эта штука
kitsu
у меня правда есть подозрение, что есть крейт для этого
kitsu
Хотел выкидывать пиров, которые долго ничего не говорили
kitsu
ну вот почему-то по времени ничего не убирается
Loyd
Императивненько
պլհկ
может тебе lru_time_cache нужен?
kitsu
угу, над было погуглить
kitsu
ох, еще и от мейдсефов
Loo
Императивненько
красиво выглядит?)
kitsu
пофиксил свой говнокод @ переписал на lru_cache @ перестало работать
ㅤ
Регрессионные тесты есть?
ㅤ
(
kitsu
там на самом деле весьма простенькие микросервисы (3 мейна, лол), так что только интеграционные имеют смысл
kitsu
что перестало работать?
из кэша не удаляются старые записи
でゲソ
Haha classic
Loo
Mark
rust, swift enterprise
Mark
прекол
Vlad
Котлин выше раста
Loo
Котлин выше раста
Раст ниже котлина
でゲソ
Брейнфак просто ортогонален
deepcode.eth
Раст ниже котлина
мельком прочёл как "Раст ниже колена" и o_O
でゲソ
Фрейд подсказывает что в вашей жизни мало яблочной продукции
Alex
sixten упомянули а например disciple нет
Loyd
carp
Loyd
Открыл я сайт