Войти
ПрограммированиеФорумОбщее

Будьте вежливы с кэшем (перевод вводной статьи) (комментарии)

Страницы: 1 2 Следующая »
#0
15:03, 2 дек. 2015

Будьте вежливы с кэшем (перевод вводной статьи) (комментарии)

Это сообщение сгенерировано автоматически.

#1
15:03, 2 дек. 2015

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

#2
15:06, 2 дек. 2015

Anders333
вот еще посмотри, там немного наглядной информации для сравнения

вот еще немного от

#3
15:19, 2 дек. 2015

Главное чтоб эти все оптимезации не убили читабельность кода

#4
16:06, 2 дек. 2015

Mira
> Главное чтоб эти все оптимезации не убили читабельность кода

Ещё больший вопрос в гибкости. Сколько будет стоит что-то поменять в супер-пупер оптимизированном под кэш коде ?

#5
16:15, 2 дек. 2015

innuendo
Mira
читаемость субъективна

#6
17:30, 2 дек. 2015

lemuxube
вот взять тот же пример из статьи:
держать массив крупных объектов не кеш-френдли, так как пробегание по нему захламляет кеш.
предлагается хранить объекты в другом месте и держать только массив с указателями и статусом. в одном месте подобный маневр еще терпим, но когда кода много и весь код состоит из
оптимизаций подобного рода - это ахунг.

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

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

#7
17:39, 2 дек. 2015

Вот что значит быть больше про финансы, чем про программирование. Ожидал в статье что-то про CASH ))))))))

#8
17:57, 2 дек. 2015

Mira
> но когда кода много и весь код состоит из
> оптимизаций подобного рода - это ахунг.
все зависит от того как код написан. любой сложный код будет сложно читать, в данном случае есть причина в усложнении.

Mira
> мало-ли по какому еще параметру ты будешь выполнять в этом массиве поиск
прежде чем делать эту оптимизацию уже нужно знать по какому параметру будет поиск. если поиск нужен по всем параметрам, то есть смысл разложить все параметры по SoA.

Mira
> кеш вообще штука коварная на разных ЦПУ и разных компиляторах с их
> оптимизациями результаты могут быть разные
да, но код оптимизированый под кеш чаще всего быстрее кода неоптимизированого под кеш, ибо доступ в память нынче дорог и эта цена растет.
в видео есть сравнение - один кеш мис эквивалентен 500 инструкциям без него.

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

Mira
> также взять с SSE , на старом разница была, хоть не большая при операциях с
> выровненной памятью и не выровненной. не давно писал чето на SSE разницы не
> заметил что крутишь команды U.. что A...
ты сравнивал инструкцию на выровненных и не выровненных данных или обе на выровнянных,

#9
18:24, 2 дек. 2015

lemuxube
Спасибо, просмотрю.

Я после статьи нашел и прочитал вот эту книгу:
http://live13.livejournal.com/462582.html
Там нашёл для себя много полезного.

#10
19:03, 2 дек. 2015

lemuxube
> ты сравнивал инструкцию на выровненных и не выровненных данных или обе на
> выровнянных,
на разных

lemuxube
> прежде чем делать эту оптимизацию уже нужно знать по какому параметру будет
> поиск. если поиск нужен по всем параметрам, то есть смысл разложить все
> параметры по SoA.

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

#11
19:48, 2 дек. 2015

lemuxube
> да, но код оптимизированый под кеш чаще всего быстрее кода неоптимизированого
> под кеш, ибо доступ в память нынче дорог и эта цена растет.
> в видео есть сравнение - один кеш мис эквивалентен 500 инструкциям без него.

Это всё синтетические примеры на кубиках. Пусть покажут пример с реального приложения.

#12
20:12, 2 дек. 2015

innuendo
> Это всё синтетические примеры на кубиках. Пусть покажут пример с реального
> приложения.
а в чем разница?

#13
20:27, 2 дек. 2015

lemuxube
> а в чем разница?

Посмотри код CE\UE

#14
21:27, 2 дек. 2015

Я у себя попробую на частицах без кэш мисов, но после 10-го думаю. Отпишусь о результатах.

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.