Size: a a a

Rust — русскоговорящее сообществo

2020 November 18

А

Алексей in Rust — русскоговорящее сообществo
Cooler3D
Логический раздел мне показался универсальным решением, с которым из коробки смогло бы взаимодействовать ПО.
кэш - это далеко не простой кусок памяти
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Без необходимости что-то явно указывать.
источник

A

Aragaer in Rust — русскоговорящее сообществo
скажем так - вместо того, чтобы что-то куда-то помещать, скорее была бы полезнее возможность явно пометить участки памяти как "пожалуйста держите это в кеше"
источник

А

Алексей in Rust — русскоговорящее сообществo
вообще кэш - это "собственность" процессора, он вообще не предназначен для того чтобы кто-то там руками лазил
источник

C

Cooler3D in Rust — русскоговорящее сообществo
В кеш, как я понимаю, попадает все то, что направлялось в оперативную память, но процессор счёл это более важным и приоритетным для доступа?
источник

A

Aragaer in Rust — русскоговорящее сообществo
нет
источник

A

Aragaer in Rust — русскоговорящее сообществo
оно есть в оперативной памяти, но еще и дублируется в кеше
источник

А

Алексей in Rust — русскоговорящее сообществo
Cooler3D
Задумался о троллейбусе после приобретения AMD 3990X. Около 400 мегабайт кеша.
Я загуглил этого монстра, и мне что-то кажется, что там этот кэш по ядрам размазывается.
источник

A

Aragaer in Rust — русскоговорящее сообществo
а в случае многоядерности начинается еще и развлечение с тем, чтобы привязываться к разным ядрам - не все уровни кеша шарятся между ядрами, самые верхние у каждого ядра свои
источник

C

Cooler3D in Rust — русскоговорящее сообществo
Полагаю, будет правильнее для меня - загуглить мануал по кешам, дабы не спамить чат дальше глупыми вопросами.
В принципе, гипотеза подтвердилась, весьма признателен на помощь.
источник

C

Cooler3D in Rust — русскоговорящее сообществo
Алексей
Я загуглил этого монстра, и мне что-то кажется, что там этот кэш по ядрам размазывается.
Так и есть. В нем 8 CCX по 8 ядер, по пулу кеша на корзину и т.д. Ну, то есть даже в рамках одного кеш уровня - память разбита между группами ядер.
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Cooler3D
Полагаю, будет правильнее для меня - загуглить мануал по кешам, дабы не спамить чат дальше глупыми вопросами.
В принципе, гипотеза подтвердилась, весьма признателен на помощь.
Всегда ещё можешь попробовать какую-нибудь тестовую программу спрофилировать, обращая внимание на обращения к памяти и кэшу тем же vtune.

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

C

Cooler3D in Rust — русскоговорящее сообществo
Doge Shibu
Всегда ещё можешь попробовать какую-нибудь тестовую программу спрофилировать, обращая внимание на обращения к памяти и кэшу тем же vtune.

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

А

Алексей in Rust — русскоговорящее сообществo
Вообще любая используемая память в кэш идёт, насколько я знаю. Но не вся память там надолго задерживается
источник

C

Cooler3D in Rust — русскоговорящее сообществo
Алексей
Вообще любая используемая память в кэш идёт, насколько я знаю. Но не вся память там надолго задерживается
Тогда получается что если кеша бы хватало на весь объём оперативной информации, то простейшая ось, например, могла бы стартовать в принципе не задействуя ОЗУ?
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Cooler3D
Взял на заметку, спасибо.
Только если у тебя амд проц, то надо будет не vtune взять, а аналогичную прогу от амд, у них она была, но не помню как называется.
источник

А

Алексей in Rust — русскоговорящее сообществo
Cooler3D
Тогда получается что если кеша бы хватало на весь объём оперативной информации, то простейшая ось, например, могла бы стартовать в принципе не задействуя ОЗУ?
Тогда бы и ОЗУ не было.
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Алексей
Вообще любая используемая память в кэш идёт, насколько я знаю. Но не вся память там надолго задерживается
Вопрос в том, что если процессор не найдет значение нужного участка памяти в кэше, то ему придется явно сходить до памяти, а это дико дорого.
источник

A

Aragaer in Rust — русскоговорящее сообществo
один дядька рассказывал случай, как он что-то поправил в некотором коде и внезапно производительность упала в десяток раз. Оказалось, что некоторый основной цикл раньше полностью помещался в один блок кеша, а теперь вдруг перестал.
источник

C

Cooler3D in Rust — русскоговорящее сообществo
Соответственно, программа в принципе не знает, где именно сохранены ее оперативные данные, и обращается за ними всегда к процессору, а уже он адресует к конечному местоположению, зная точно в кеше оно, или в ОЗУ?
источник