powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / кто-то сравнивал asm от Qt и обычный?
5 сообщений из 80, страница 4 из 4
кто-то сравнивал asm от Qt и обычный?
    #40067942
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
mayton
Я хочу хотя-бы на элементарном уровне разложить свои данные на 2 кучки. Одна кучка - меня интересует в кеше. На другую мне - плевать.

они всегда будут в кэше...
А ты можешь лишь разложить данные по структурам и подогнать их под cache-line

Вот я-ж про это и говорю. Нет в языке механики управления cache-friendly. Пока сам разработчик не разложит
структуры данных так чтоб было компактно и когерентно - ничего компиллятор не сделает.
...
Рейтинг: 0 / 0
кто-то сравнивал asm от Qt и обычный?
    #40068137
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
White Owl
пропущено...
Почему это вдруг "не создали"? А GCC тебе чем не кеш-френдли? Просто скажи ему для какого процессора надо делать - сделает. Да ему даже можно указывать конкретные размеры кешей, отдельно для L1 и для L2 если у тебя какой-то необычный процессор.

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

mayton
Я хочу хотя-бы на элементарном уровне разложить свои данные на 2 кучки. Одна кучка - меня интересует
в кеше. На другую мне - плевать. По аналогии с Oracle опцией buffer_pool = { KEEP | DEFAULT }
Кучка чего и кучка чего?
Оптимизаторы (того-же gcc) вполне умеют переносить переменные сразу в регистр вместо стека если это возможно (ну или вообще в константу превращать).

Но в принципе, ты же можешь задать что мол размер L1/2 кеша у тебя в 1Мб, что с учетом того что в современных ЦПУ уже и 16Мб не редкость, то ты можешь быть уверен что какой-нибудь часто используемый массивчик меньше этого размера обязательно в кеш попадет.

Тут те-же соображения что и с Ораклом - если у тебя есть достаточно памяти и таблица достаточно маленькая - оракл будет стараться держать ее в кеше. Ключевое слово "стараться". Не обязательно что получиться, конечно, но некоторый шанс на успех будет. Так же и с компиляторами.
...
Рейтинг: 0 / 0
кто-то сравнивал asm от Qt и обычный?
    #40068138
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
бабушкин зайчик
пропущено...

они всегда будут в кэше...
А ты можешь лишь разложить данные по структурам и подогнать их под cache-line

Вот я-ж про это и говорю. Нет в языке механики управления cache-friendly. Пока сам разработчик не разложит
структуры данных так чтоб было компактно и когерентно - ничего компиллятор не сделает.
Да почему "нет" то??
Есть. Вернее, в языке есть способ порушить кеш-дружелюбность (хорошее слово, однако :)
Просто не определяй #pragma pack для структуры и компилятор ее вполне себе оптимизировано для кеша положит. Вот если ты ее принудительно упакуешь как-то, тогда да - потеряешь эту самую кеш-дружелюбность.
...
Рейтинг: 0 / 0
кто-то сравнивал asm от Qt и обычный?
    #40068142
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlПросто не определяй #pragma pack для структуры и компилятор ее вполне себе оптимизировано
для кеша положит.

Увы, не для кэша, а для выборки отдельных полей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
кто-то сравнивал asm от Qt и обычный?
    #40068144
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

White OwlПросто не определяй #pragma pack для структуры и компилятор ее вполне себе оптимизировано
для кеша положит.

Увы, не для кэша, а для выборки отдельных полей.
Ну это тоже можно порушить - volatile и будет переменная гарантированно в памяти а не в кеше или регистре.
...
Рейтинг: 0 / 0
5 сообщений из 80, страница 4 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / кто-то сравнивал asm от Qt и обычный?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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