Size: a a a

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

2020 November 18

C

Cooler3D in Rust — русскоговорящее сообществo
Aragaer
второе
Досадно. Спасибо.
источник

DS

Doge Shibu in Rust — русскоговорящее сообществo
Cooler3D
Блиц вопрос:
Можно ли при помощи Rust-а, теоретически, смонтировать кеш процессора (или же виртуальный логический раздел создав его в кеше). Или же из под пользовательского пространства читать и писать произвольные данные в кеш CPU - невозможно по определению (так как он управляется непосредственно логикой самого CPU, например), хоть ты на ассемблере пиши?
Ты можешь через префетч указать процессору, что вот эти данные ты хочешь видеть в кэше, но прям 100% гарантий у тебя нет
источник

DS

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

D

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

D

Dmitry in Rust — русскоговорящее сообществo
ни для кого-же не секрет что внутри интеловских процов живёт миникс?
источник

C

Cooler3D in Rust — русскоговорящее сообществo
Doge Shibu
Ты можешь через префетч указать процессору, что вот эти данные ты хочешь видеть в кэше, но прям 100% гарантий у тебя нет
То есть понимая механизм кеширования, можно написать слой абстракции - который задачу бы более-менее решил, но при этом никакой нативной скорости кеша такой раздел бы не имел?
источник

А

Алексей in Rust — русскоговорящее сообществo
Dmitry
ни для кого-же не секрет что внутри интеловских процов живёт миникс?
что он там делает?
источник

D

Dmitry in Rust — русскоговорящее сообществo
Wikipedia
Intel Management Engine
Intel Management Engine (Intel ME) — автономная подсистема, встроенная почти во все чипсеты процессоров Intel с 2008 года . Она состоит из проприетарной прошивки, исполняемой отдельным микропроцессором. Так как чипсет всегда подключен к источнику тока (батарейке или другому источнику питания), эта подсистема продолжает работать даже когда компьютер отключен . Intel заявляет, что ME необходима для обеспечения максимальной производительности . Точный принцип работы по большей части недокументирован, а исходный код обфусцирован с помощью кода Хаффмана, таблица для которого хранится непосредственно в аппаратуре, поэтому сама прошивка не содержит информации для своего раскодирования. Главный конкурент Intel, компания AMD, также встраивает в свои процессоры аналогичную систему AMD Secure Technology (раньше называвшуюся Platform Security Proccessor), начиная с 2013 года.
источник

DS

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

Но ты можешь попросить, чтобы данный участок памяти был в нём.

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

C

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

Но ты можешь попросить, чтобы данный участок памяти был в нём.

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

DS

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

DS

Doge Shibu in Rust — русскоговорящее сообществo
Но вопрос - ты уверен, что у тебя там кэшмиссы сейчас есть?
источник

AT

Alex Ted in Rust — русскоговорящее сообществo
Dmitry
Wikipedia
Intel Management Engine
Intel Management Engine (Intel ME) — автономная подсистема, встроенная почти во все чипсеты процессоров Intel с 2008 года . Она состоит из проприетарной прошивки, исполняемой отдельным микропроцессором. Так как чипсет всегда подключен к источнику тока (батарейке или другому источнику питания), эта подсистема продолжает работать даже когда компьютер отключен . Intel заявляет, что ME необходима для обеспечения максимальной производительности . Точный принцип работы по большей части недокументирован, а исходный код обфусцирован с помощью кода Хаффмана, таблица для которого хранится непосредственно в аппаратуре, поэтому сама прошивка не содержит информации для своего раскодирования. Главный конкурент Intel, компания AMD, также встраивает в свои процессоры аналогичную систему AMD Secure Technology (раньше называвшуюся Platform Security Proccessor), начиная с 2013 года.
господи боже, есть инфа, что все софтваре производители положили большой и толстый на эти кольца
источник

C

Cooler3D in Rust — русскоговорящее сообществo
Профилировать текущую утилизацию кеша я также никак не могу? Например посмотреть, что в нем сейчас находится, и каким принадлежит процессам
источник

D

Dmitry in Rust — русскоговорящее сообществo
Alex Ted
господи боже, есть инфа, что все софтваре производители положили большой и толстый на эти кольца
лол. я не про кольца, а про миникс.
источник

AT

Alex Ted in Rust — русскоговорящее сообществo
а, ну а я про кольца
источник

D

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

AT

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

DS

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

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

DS

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