Size: a a a

2020 August 11

CD

Constantine Drozdov in rust_offtopic
Stanislav Popov
но атомики слоупочные поэтому лезут обычными инструкциями почитая томик про мемори модель сперва?
я бы не стал оптимизировать дальше плана "макака" многопоточный код
источник

BD

Berkus Decker in rust_offtopic
Stanislav Popov
почему крестовые проблемы такие адовые, боже какието пейперы, кеш когерентность. у меня как у запарты все так просто - есть ссаная статейка где пишут юзай relaxed чтото там и збс
тебе в аппликейшен софте это вообще не особо впилось, перекладывать джейсон можно и без атомиков
источник

CD

Constantine Drozdov in rust_offtopic
я понимаю, что беркус считает меня олимпиадником и велосипедостроителем, но у меня рамки есть
источник

SP

Stanislav Popov in rust_offtopic
Berkus Decker
тебе в аппликейшен софте это вообще не особо впилось, перекладывать джейсон можно и без атомиков
ну это понятно, но я немножко лезу в эмбед
источник

BD

Berkus Decker in rust_offtopic
Stanislav Popov
ну это понятно, но я немножко лезу в эмбед
в эмбеде опять же зависит что ты делаешь и зачастую атомики не особо нужны )
источник

SP

Stanislav Popov in rust_offtopic
я просто хочу понять о чем вы говорили когда говорили про кеш когерентность
источник

CD

Constantine Drozdov in rust_offtopic
Stanislav Popov
я просто хочу понять о чем вы говорили когда говорили про кеш когерентность
у тебя у каждого ядра есть личный L1, надо его как-то синхронизировать с оперативой (де факто общим L2)
источник

RP

Roman Proskuryakov in rust_offtopic
Stanislav Popov
я просто хочу понять о чем вы говорили когда говорили про кеш когерентность
один сказал глупость, а второй вежливо поддержал разговор и накидал интересных ссылок.
источник

BD

Berkus Decker in rust_offtopic
Stanislav Popov
я просто хочу понять о чем вы говорили когда говорили про кеш когерентность
когерентность кешей это как синхронизируется содержимое ОЗУ и различных кешей на процессоре, и как это видят другие ядра.

посмотри для примера интелевский протокол MESI
источник

CD

Constantine Drozdov in rust_offtopic
Constantine Drozdov
у тебя у каждого ядра есть личный L1, надо его как-то синхронизировать с оперативой (де факто общим L2)
это определяет модель памяти
источник

BD

Berkus Decker in rust_offtopic
Constantine Drozdov
у тебя у каждого ядра есть личный L1, надо его как-то синхронизировать с оперативой (де факто общим L2)
ну щас зачастую память это L4 если не L5 🙂
источник

CD

Constantine Drozdov in rust_offtopic
Berkus Decker
ну щас зачастую память это L4 если не L5 🙂
а вообще есть архитектуры с личным L2? :)
источник

SP

Stanislav Popov in rust_offtopic
о, это же то что я спрашивал у знакомого сишника пару лет назад. какой то был спортивный интерес, типа увидит ли соседнее ядро изменение сделанное. вот оно как, короче
источник

CD

Constantine Drozdov in rust_offtopic
или хотя бы чтобы синхронизация ложилась не в район L2
источник

BD

Berkus Decker in rust_offtopic
Constantine Drozdov
а вообще есть архитектуры с личным L2? :)
L2 обычно личный
источник

CD

Constantine Drozdov in rust_offtopic
Berkus Decker
L2 обычно личный
о_О а чем он от L1 отличается
источник

CD

Constantine Drozdov in rust_offtopic
размером?)
источник

RP

Roman Proskuryakov in rust_offtopic
Constantine Drozdov
там специально для дебилов в double checked singleton написано, что при спекулятивном выполнении это ломается
@enomad вот отсюда началось. к сожалению, необразованность приводит к тому, что человек не понимает происходящего и начинает говорить про атомики.
источник

BD

Berkus Decker in rust_offtopic
Constantine Drozdov
о_О а чем он от L1 отличается
> Each core has its own L1 and L2 cache while the last level, the L3 cache is shared across all the cores on a die.

L1 обычно сверхбыстрый и очень маленький и часто делится на отдельные кеши для данных и инструкций
в L2 все свалено вместе и он жирнее и медленней
источник

BD

Berkus Decker in rust_offtopic
L3 это еще медленней но делится между локальными ядрами
источник