Size: a a a

2020 November 22

s

std::slavik in MediaTube HCF
Переслано от std::slavik
но когда не влезает - в одном случае у тебя строка попадает в кэш и последовательно значения из него берутся, а в другом строка попадает в кэш, из нее берется одно значение, а следующее уже не попало в кэш - оно в оперативке, возникает промах кэша и приходится идти в оперативную память, а она медленная, при этом процессор простаивает и время обхода увеличивается
источник

s

std::slavik in MediaTube HCF
Переслано от std::slavik
чет как бы сомневаюсь что можно без фундамента, только владея инструментами до этого дойти
источник

s

std::slavik in MediaTube HCF
вот пример который даже на питоне работает
источник

s

std::slavik in MediaTube HCF
с точки зрения программы - похер, по строкам ты или по столбцам идешь
но с точки зрения памяти - нет
источник

s

std::slavik in MediaTube HCF
на самом деле - когда ты запрашиваешь элемент массива - у тебя не только он загружается
а еще то что за ним следом
т.к. аппаратно - доступ к этому блоку памяти то же самое почти что доступ к одному элементу
источник

s

std::slavik in MediaTube HCF
так что можно закинуть весь блок в кэш и если тебе потребуется элемент, который рядом с предыдущим находится - доступ к нему будет намного быстрее
источник

k

krutmaster in MediaTube HCF
Ну это ещё надо знать чо туда кидать
источник

s

std::slavik in MediaTube HCF
современные процессоры делают это без твоего ведома
там возникают всякие проблемы когерентности кэшей
в многоядерных системах
и все такое
источник

k

krutmaster in MediaTube HCF
А нельзя этот блок просто внутри разбить? Типо лежит что-то ещё нужное тебе, но часть кеша занимает то, что нахуй не надо. Выгрузить эту часть и положить что-то более нужное, а другую часть не трогать
источник

s

std::slavik in MediaTube HCF
тут короче это все опять же не от хорошей жизни
источник

k

krutmaster in MediaTube HCF
krutmaster
А нельзя этот блок просто внутри разбить? Типо лежит что-то ещё нужное тебе, но часть кеша занимает то, что нахуй не надо. Выгрузить эту часть и положить что-то более нужное, а другую часть не трогать
Оно же я так понимаю всё полностью выгрузит в таком сценарии, а не часть
источник

s

std::slavik in MediaTube HCF
когда оказывается что аппаратными такими костылями проблему решить проще
чем переделать весь софт который был написан
и опирался на фон неймановскую архитектуру
откуда собственно уязвимости
спектра, мелтдаун
источник

s

std::slavik in MediaTube HCF
оттуда что процессор аппаратно берет на себя больше чем по хорошему должен
по хорошему он должен тупо делать что говорят
источник

k

krutmaster in MediaTube HCF
источник

k

krutmaster in MediaTube HCF
А это было неожиданно
источник

s

std::slavik in MediaTube HCF
но из за исторических причин - он вынужден аппаратно пытаться предугадать че дальше будет
источник

k

krutmaster in MediaTube HCF
std::slavik
но из за исторических причин - он вынужден аппаратно пытаться предугадать че дальше будет
Отдельно проц для этого завести, не?
источник

s

std::slavik in MediaTube HCF
потому что проще сделать аппаратный модуль, чем сказать "ребят, все что было написано под предыдущие процессоры - на новых работать не будет"
источник

s

std::slavik in MediaTube HCF
krutmaster
Отдельно проц для этого завести, не?
ну как бы это не отдельный проц
источник

s

std::slavik in MediaTube HCF
а модуль аппаратный в процессоре
источник