powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / как правильно хранить значения в объекте с т.з. кеша
56 сообщений из 56, показаны все 3 страниц
как правильно хранить значения в объекте с т.з. кеша
    #39996059
вот, например:
Код: plaintext
1.
2.
3.
4.
struct s{
    int a,b,c;
    int fixed;
};


имеем vector<s>, который итерируем, и для каждого i будет своё a,b,c, но в целом, для каждого i они константа (их только один раз надо посчитать).
А вот итераций по этому вектору будет много. Но если их зафиксировать, то они займут кэш.
Вопрос - делать много итераций по фиксированным значениям (сохранить их в структуре) ИЛИ каждый раз считать заново?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996065
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-хорошему просто запусти оба варианта и сравни.

Получение данных из кэша быстрее примерно раза в 2 чем из памяти, т.е. времени на расчет остается немного. Возможно какие-то примитивные вычисления окажутся быстрее.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996072
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мало исходных данных.

Если f(a,b,c) простая функция и ее расчет занимает несколько тактов - то можно не хранить.

Если у тебя под капотом что-то вроде .....эээ функции Аккермана - то лучше рассчитывать и хранить результат.

Называется - мемоизация.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996082
да не, там расчёты простые.
Dima T
Получение данных из кэша быстрее примерно раза в 2 чем из памяти

107 раз было... L1 vs память.
50 раз - L2 vs память.

А вот если каждый раз считать, то там расчёты a,b,c будут ложиться в отдельную struct, значит в кеше будет находиться итерируемый вектор + эта struct. И на всё время итерации по вектору они будут лежать в кеше и быстро-быстро считаться? Т.е. там вообще в память заходов не будет?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996114
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,

надо корректнее выражаться, что вы понимаете под кешем и каким
в вашем случае, последовательный доступ естественно будет самый быстрый
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996124
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой тут int? Ну допустим 4х байтный. Я перепишу структуру по другому для удобства подсчета.

Код: plaintext
1.
2.
3.
4.
5.
6.
struct s{
    int a;      // 4 bytes +
    int b;      // 4 bytes +
    int c;      // 4 bytes +
    int fixed; // 4 bytes
}; //              16 bytes



В одной кеш-линии 64 байта. Тоесть 4 таких структуры лягут в 1 кеш-линию при условии
что vector<s> аллоцирует их по границе кратной 64 байтам.

При неудачном раскладе в кеш-линию лягут 3 структуры и два "хвостика" справа и слева.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996134
mayton, и что именно это значит?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996135
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значат "хвостики"?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996146
вот это мне как поможет?
mayton
В одной кеш-линии 64 байта. Тоесть 4 таких структуры лягут в 1 кеш-линию при условии что vector<s> аллоцирует их по границе кратной 64 байтам.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996148
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020, ну проверь физические адреса где лежат твои данные. Тыж сишник.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996150
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020Вопрос - делать много итераций по фиксированным значениям (сохранить их в структуре) ИЛИ
каждый раз считать заново?

Ответ зависит от того как часто тебе нужны значения и что делают итерации. Например, если
итерации читают fixed, а не a,b,c, то эти a,b,c надо просто из структуры выкинуть и
оставить вектор fixed.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996171
каждую итерацию проверяется fixed, если 1, то continue (для этого i расчёты НЕ нужны).
А если 0, то эти a,b,c отправляются в другую ф-ю, где с ними делают много всяких расчётов.
Т.е. в каждой итерации этот s обычно едет куда-то далее и там считается.

Тут 2 варианта, надо разобраться:
На каждой итерации происходит считывание 4х s подряд (кеширование вперёд заранее посчитанных a,b,c).
И если вот в этом и есть суть кеширования (что он потом не будет за ними ходить), то тогда он эти 4 s посчитает в другой ф-и быстро и сразу.
Но кеш заполнится... Но и хер с ним. Я же вот в данный конкретный момент занят именно этими расчётами.
Я именно этот вектор считаю, он мне и нужен в кеше, а для других дел кеш очистится после расчётов.
Так что вроде всё ок?
ЛИБО я эти a,b,c буду считать каждый раз снова и снова (а там может быть миллион итераций в итоге), но зато кеш типа сэкономлю...
Короче пока получается, что лучше посчитать заранее...
mayton
Алексей Роза 2020, ну проверь физические адреса где лежат твои данные. Тыж сишник.

что именно проверить и зачем?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996176
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,

Если массив многократно проходится, то сделайте вначале его копию с рассчитанными значениями и работайте потом с копией.

Если конечно это не тот знаменитый массив в триллион записей ))
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996178
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020

mayton
Алексей Роза 2020, ну проверь физические адреса где лежат твои данные. Тыж сишник.

что именно проверить и зачем?

Я уже писал кажется. Попадает ли 4 твоих s-объекта в 1 кеш-линию.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996190
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020эти a,b,c отправляются в другую ф-ю

Всё. Это место ставит жирный крест на оптимизации с помощью кэша процессора.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996196
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Алексей Роза 2020эти a,b,c отправляются в другую ф-ю

Всё. Это место ставит жирный крест на оптимизации с помощью кэша процессора.

Мне в топике кажется что мы заняты оптимизацией того что и так хорошо работает.

Было-бы интересно посмотреть Алексеевский софт под профилированием и понять что на самом деле расчет это загадочной
функции f(a,b,c) действительно сильно оказывает влияние на результат и мемоизация необходима.

К сожалению Леша такой партизан что ничего не расскажет
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996200
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
каждую итерацию проверяется fixed, если 1, то continue (для этого i расчёты НЕ нужны).
А если 0, то эти a,b,c отправляются в другую ф-ю, где с ними делают много всяких расчётов.
Т.е. в каждой итерации этот s обычно едет куда-то далее и там считается.

Тут 2 варианта, надо разобраться:

Есть третий вариант: сделать два массива, в первый fixed, во второй a,b,c. С точки зрения расхода памяти ничего не меняется, но повышается вероятность попадания в кэш массива fixed.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996204
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Алексей Роза 2020эти a,b,c отправляются в другую ф-ю

Всё. Это место ставит жирный крест на оптимизации с помощью кэша процессора.

Компилятор может заинлайнить функцию.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996209
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TКомпилятор может

В таком случае пусть он и обо всей остальной оптимизации думает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996211
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мне в топике кажется что мы заняты оптимизацией того что и так хорошо работает.

Похоже на то.
ИМХО смысла в этом топике нет особого, зачем сферические кэши обсуждать когда можно потестить вживую и решать как удобнее, переписать код с одного способа на другой много времени не потребуется.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996212
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте пре-внесем в топик немного материализма. Пускай функция выглядит так.

Код: plaintext
1.
2.
3.
int f(int a,int b, int c) {
   return a * b % c;
}



Почему так? Я просто акцентирую внимание на то что она - детерминистическая и не оказывает
влияния на среду. Она не меняет никакоую ячейку памяти. Потому что если меняет - это усложняет
оптимизации.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996213
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДавайте пре-внесем в топик немного материализма.

Привносить материализм в Розовые топики бесполезно по определению.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996215
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен. Я поднимал свой топик https://www.sql.ru/forum/1327486/predvaritelnye-slushanya-po-memory-cache-part-2
на аналогичную тему но хотел пре-внести опенсорцные алгоритмы и структуры данных дабы каждый
интересующийся сумел это скомпилить и что-то посмотреть и проверить.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996230
а тогда как правильно это сделать, чтобы выжать максимум из кэша?
f(a,b,c), в т.ч., делает сравнение и мат.операции с данными из других векторов
а если векторы небольшие и все помещаются в L1 ?

Dima T
mayton
Мне в топике кажется что мы заняты оптимизацией того что и так хорошо работает.

Похоже на то.
ИМХО смысла в этом топике нет особого, зачем сферические кэши обсуждать когда можно потестить вживую и решать как удобнее, переписать код с одного способа на другой много времени не потребуется.

надо понимать, как оно работает.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996231
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри. Я рассуждаю так. У нас нет регулятора который говорит системе быстрее-медленее.

Есть набор гипотез которые надо проверять практически. Например. Моя гипотеза -
Выровняй структуры данных на кешлинию. И уменьшишь количество повторных чтений из памяти
хвостов структур.

Но от тебяж никакого фидбека нет. Ты попробовал? Что-то получилось?

Как-будто сидишь и ждешь что мы за тебя придумаем волшебный набор рецептов.

Демотивирует твоё отношение.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996235
mayton
Выровняй структуры данных на кешлинию.

а чего ты от этого ждёшь, какой результат? это первое что надо делать с любой структурой - данные в ней выровнять. И чем меньше структура, тем лучше. Это аксиомы.
А у меня там вообще ushort.
И где я тут "волшебный набор рецептов" спрашивал? Я задаю конкретные вопросы, а ты льёшь воду.
Демотивирует твоя вода.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996236
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы попробовал? Что-то получилось?

А зачем? Он вбросил, а там хоть не рассветай.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996237
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020Я задаю конкретные вопросы

На которые даёт конкретные ответы Intel Advisor. Ставь и смотри.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996239
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton
Выровняй структуры данных на кешлинию.

а чего ты от этого ждёшь, какой результат? это первое что надо делать с любой структурой - данные в ней выровнять. И чем меньше структура, тем лучше. Это аксиомы.
А у меня там вообще ushort.
И где я тут "волшебный набор рецептов" спрашивал? Я задаю конкретные вопросы, а ты льёшь воду.
Демотивирует твоя вода.

Мне кажется что я где-то был непонятен. Я говорю. Нет. Я утверждаю! std::vector аллоцирует
старт массива не по границе кеш-линии. И я тебе, дорогой топик стартер даю первый совет.
Иди и проверь. Где ты выделяешь первый объект? Он кратный кеш-линии или нет?

У тебя размер объекта - хороший. Он - кратный кеш-линии. Осталось просто проверить offset
всей коллекции. Чтоб гарантировать что мы не разрезаем 1-й и 4-й структурный объект по границе
кеш-линии.

Но почему-то этот простой вопрос который просто требует публикации физического адреса ссылки
у тебя вызвал упорное молчание и нежелание ничего делать!

Тогда зачем тебе топик?! Алексей?! Зачем тебе sql.ru?

Если мой рецепт плох или неверен - так ты скажи. Он плох по тому-то и тому-то. Но тыж просто сидишь
и хочешь что-то высидеть.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996241
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton
Выровняй структуры данных на кешлинию.

а чего ты от этого ждёшь, какой результат? это первое что надо делать с любой структурой - данные в ней выровнять. И чем меньше структура, тем лучше. Это аксиомы.

Это разные вещи. Для уменьшения размера достаточно #pragma pack(push, 1) , а кэшлиния это совсем о другом. Загугли хотя бы что такое кэшлиния, раз уж кэшем интересуешься.
Можешь мой топик почитать, правда там я немного другое изучал.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996264
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет второй вариант. Задействовать 2-потока алгоритм таким образом чтоб L1 кеши не пересекались по данным.
L3 - пускай пересекается это норм.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996271
лять ещё один, чё за вёдра с водой опять полились, нормально же общались!
кэш-линия для передачи байт из памяти в кэш и обратно, чё вы там гуглить собрались, это известно на второй неделе в C/C++
Это тебе надо гуглить и по рукам надавать за советы про #pragma pack. Мало того, что это костыль, так ещё если будет atomic, то могут возникнуть ТОРМОЗА внезапно, ибо если atomic распадается на 2 линии, то становится ОЧЕНЬ медленным (разница до 300 раз!).
Dima T
кэшлиния это совсем о другом

о каком ещё нахрен "другом"?! Он говорит про то что все вокруг дебилы и не выравнивают структуры, а он самый умный и на мой вопрос "как именно отработает кэш в данном случае, где мы шлём в другую ф-ю бла-бла" он мне рассказывает про то, чтобы я срочно проверил, а не передам ли я по кэш-линии 62 байта вместо 64х... и вот это ответ на мой вопрос.
Я про это спрашивал? Да мне вообще насрать на эти 2 байта. И где тут про "другое", а не про кэш-линии?
Человек с 15000 сообщениями, ты потрясающий! (с)
Dimitry Sibiryakov
А зачем? Он вбросил, а там хоть не рассветай.

Это у тебя регулярные неконтролируемые вбросы в моих темах. Неконтролируемые и неудержимые.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996290
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
о каком ещё нахрен "другом"?!

Успокойся и не хами, или еще раз забанят. Не хочешь понимать о чем тебе говорят - твое право, но тут не школа, учить тут никто не обязан.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996386
Dima T
Алексей Роза 2020
о каком ещё нахрен "другом"?!

Успокойся и не хами, или еще раз забанят. Не хочешь понимать о чем тебе говорят - твое право, но тут не школа, учить тут никто не обязан.

Конечно забанят, чему ещё ты можешь научить, кроме как цепляться к словам и сливаться?
Я в инете с 95-го года. И насмотрел как на баны, так и на форумных флудерастов. Напугал ежа голой жопой
Dima T
учить тут никто не обязан

А читать то хотя бы обязан? Вопрос стоял "надо разобраться". А ты пришёл в тему, где жуют детали, в которых ты не спец, и умничаешь за мой счёт.
Вы два Димы друг друга стоите, могли бы игнорировать мои темы и экономить нервы и время.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996387
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
Вопрос стоял "надо разобраться"
Кому стоял и кому надо?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996393
Anatoly Moskovsky
Алексей Роза 2020,

Если массив многократно проходится, то сделайте вначале его копию с рассчитанными значениями и работайте потом с копией.

Если конечно это не тот знаменитый массив в триллион записей ))

по утру таки вспомнил, о чём речь )
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
struct S
{
    uint64_t u; // 8
    double d;   // 8
    int i;      // 4
    float f;    // 4
};

Размер структуры S равен 24 байтам. Мой процессор (Intel Core i7) имеет 32KB кэш на ядро с 64B кэш-линией (cache line).
Это значит, что при запросе данных из памяти в одну кэш-линию полностью поместятся только две структуры S.
В первом тесте я читаю только одно int поле, т.е. при одном обращении к памяти в одной кэш-линии будет только 2 (иногда 3) нужных нам поля.
Во втором тесте я читаю такое же int значение, но из вектора. std::vector гарантирует последовательность данных.
Это означает, что при обращении к памяти в одной кэш-линии будет 16 (64b / sizeof(int) = 16) нужных нам значений.
Получается, что во втором тесте мы обращаемся к памяти реже. A обращение к памяти, как известно, является слабым звеном в современных процессорах.


Локальные переменные всегда наилучший вариант, чтобы смежные данные попали в один кэш.
Т.е. наилучшим вариантом будет в отдельной ф-и собрать всё что надо локально и просчитать весь вектор на месте.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996403
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
А читать то хотя бы обязан? Вопрос стоял "надо разобраться". А ты пришёл в тему, где жуют детали, в которых ты не спец, и умничаешь за мой счёт.
Вы два Димы друг друга стоите, могли бы игнорировать мои темы и экономить нервы и время.

Тебе подсказывают направление в котором разбираться, но похоже тебе это не интересно. Наверно ты прав, не стоит тратить на тебя время.

На прощанье, если ты до сюда дочитал: кэшлиния это не любые 64 байта, а только те, адрес которых кратен 64-м (0...63, 64...127 и т.д.), поэтому структура например в 16 байт легко может оказаться в двух соседних кэшлиниях.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996457
Dima T, да, ты прав, я темы создают не чтобы проблемы решать и развиваться, а специально чтобы вас всех тут собрать... дабы вы ответили за свои прегрешения (с)
Таки зачем кратен? Можно и 60 байтов передать... и 2. Можно передавать много структур и да, они могут порваться. Плевать. Не тот случай.
А если ты передаёшь адрес ячейки из массива, то в кэш-линию попадут все последующие/соседние ячейки, которые туда влезут. Такое упреждающее последовательное кэширование (предсказуемость рулит).
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996479
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пригрешения?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996529
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020Локальные переменные всегда наилучший вариант, чтобы смежные данные попали в один кэш.

Вот только попадание в один кэш это не всегда лучший вариант. Требуется ещё одна мелочь:
не допускать попеременного чтения и записи в одну линию. То есть из одной линии - только
читать, а в другую - только писать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996746
Dimitry Sibiryakov
Вот только попадание в один кэш это не всегда лучший вариант. Требуется ещё одна мелочь:
не допускать попеременного чтения и записи в одну линию. То есть из одной линии - только читать, а в другую - только писать.

чё-то я не припомню таких должностных обязанностей в уставе программиста
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996778
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
Dimitry Sibiryakov
Вот только попадание в один кэш это не всегда лучший вариант. Требуется ещё одна мелочь:
не допускать попеременного чтения и записи в одну линию. То есть из одной линии - только читать, а в другую - только писать.

чё-то я не припомню таких должностных обязанностей в уставе программиста

Тебе помогают по топику а ты - фыркаешь.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996807
во1, если я фыркаю, значит так нужно. Каким боком тебя это касается?
во2, я интересуюсь подробностями, а не фыркаю.
в3, ты уже не первый раз пытаешься на меня повесить какие-то свои домыслы.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996819
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(поднимая руки)

Ну конешно меня, модератора С++ не касается.

Окей я больше этот топик не буду комментировать. Развлекайся.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996831
мало называться модератором, взял бы да объяснил, что за
Dimitry Sibiryakov
не допускать попеременного чтения и записи в одну линию

нормально я спросил без фырканий, нечего выдумывать.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996851
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри внимательно что я квотировал.

Растеряешь последних помогающих.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996878
ты свои последние 5 сообщений прочитай, помощник
Я прекрасно вижу, что ты пишешь, не волнуйся. Проблема вовсе не в этом.
а вот это ты мне зачем написал, не расскажешь?
mayton
У тебя размер объекта - хороший. Он - кратный кеш-линии. Осталось просто проверить offset всей коллекции. Чтоб гарантировать что мы не разрезаем 1-й и 4-й структурный объект по границе кеш-линии.


Анатолий Московский написал хороший совет.
Dima T и Дима Сибиряк дали пару раз инфу, но какими-то кусками, будто всей картины сами не видят.
А потом скатились во флуд и оффтоп.
Вот и вся помощь.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996882
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочешь чтобы я участвовал?

У меня - ощущение зыбкого кошмара. Ты - вроде - бы знаком с системным программированием.
И когда я и Дима тебе говорим что аллокация памяти (malloc/new) может идти по границе параграфа (16 байт)
а нам этого недостаточно. Нам нужна аллокация по границе кеш-линии (64 байт) я надеюсь что ты
меня понял как художник художника. Или как инженер инженера.

И когда я тебя попросил сходить и посмотреть на физические адреса - я ожидал ответа. Дескыт да. Вектор аллоцироан как надо.

Леша? Получилось? Или нет? Ты в ответ завис. И переключился на другое.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996884
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020взял бы да объяснил, что за

Какое слово тебе непонятно?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996896
mayton
И когда я тебя попросил сходить и посмотреть на физические адреса - я ожидал ответа. Дескыт да. Вектор аллоцироан как надо.

адрес первого: 7eb0
последнего: 8096
итого: 486 байт / 81 объект = 6 байт на штуку (там 3 шорта)
6 байт не влезут в кэш-линию, будет хвост в другой
но для этого не нужно знать адреса.
А для чего нужно?
Dimitry Sibiryakov
Алексей Роза 2020взял бы да объяснил, что за

Какое слово тебе непонятно?
я никогда не слышал об этой заморочке ни у Чендлера, ни у Мейерса, ни у Александреску.
и как вообще этим можно управлять? Если тред один, то никак. Если два, то он сам разберётся, по-видимому.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996903
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020и как вообще этим можно управлять?

Повторяю медленно: читаемые данные - в одну линию, записываемые - в другую.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996908
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020я никогда не слышал об этой заморочке ни у Чендлера, ни у Мейерса, ни у Александреску.

Значит стоит обратиться к первоисточникам:
https://software.intel.com/content/www/us/en/develop/articles/how-memory-is-accessed.html
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39996983
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про Data Driven Development TCу уже советовали почитать?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39997257
Dimitry Sibiryakov
Алексей Роза 2020я никогда не слышал об этой заморочке ни у Чендлера, ни у Мейерса, ни у Александреску.

Значит стоит обратиться к первоисточникам:
https://software.intel.com/content/www/us/en/develop/articles/how-memory-is-accessed.html
интересно, спасибо
vtune юзает кто?
звучит так, будто "нахрена все эти заморочки с сабжем"
а для AMD что?
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39997413
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020, ты посмотри образцы репортов которые выдает vtune. Их можно найти
в презентациях и доках. Если они для тебя понятны. И ты знаешь что делать дальше - то welcome.
Покупай. Но у тебя КМК еще нет никаких expectations по этому поводу. Тоесть ты еще сам не знаешь
что хочешь получить от этой утилиты.
...
Рейтинг: 0 / 0
как правильно хранить значения в объекте с т.з. кеша
    #39997451
там же написано, что от неё можно получить
но я от неё один хрен ничего не получу
...
Рейтинг: 0 / 0
56 сообщений из 56, показаны все 3 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / как правильно хранить значения в объекте с т.з. кеша
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]