LINUX.ORG.RU

А существует ли СОВРЕМЕННОЕ годное чтиво на тему оптимальных укладок данных и доступа к ним в современных процах?

 


2

6

Было какое-то чтиво времён 2008 про пни третьи, но есть ли похожее про Core i7 / Xeon последние?

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

Вот хочется почитать что-то по сабжу, но про новые камни, а не древние пни.

Ответ на: комментарий от anonymous

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

Я даже не буду комментировать то, почему вообще такое понятие как «цена инструкции»( в контексте производительности) не существует. Цена одна.

То же самое с кэшами, только уже в одном поколении.

Ога. Опять несёт херню даже не понимая зачем и почему. Ну и как я уже говорил, когда балаболка садится в лужу - она начинает вещать дефолтную мантру про кэши, при этом нихрена о них не зная.

Я уже балаболам много раз приводил такой пример. Воспринимай оптимизацию как банальное распараллеливание. Свойства такие же, если что-то является параллельным и распараллелено, то абсолютно неважна количественная сторона вопроса - будь там 8, либо 88 ведёр. Ситуация не изменится. Есть какие-то нюансы, но они уже второстепенны, да и их мало.

Оптимизация прежде всего фундаментальна, ту херню, которую вам рассказывали про «будет не работать на другом поколении» - полная херня. Это настолько мусорные потуги, что просто смешно.

LjubaSherif
()
Ответ на: комментарий от LjubaSherif

Я уже балаболам много раз приводил такой пример. Воспринимай оптимизацию как банальное распараллеливание. Свойства такие же, если что-то является параллельным и распараллелено, то абсолютно неважна количественная сторона вопроса - будь там 8, либо 88 ведёр. Ситуация не изменится. Есть какие-то нюансы, но они уже второстепенны, да и их мало.

Какое распраралеливание? Какие ядра?

Оптимизация прежде всего фундаментальна, ту херню, которую вам рассказывали про «будет не работать на другом поколении» - полная херня. Это настолько мусорные потуги, что просто смешно.

Вот ты правда тут пальцы раскидываешь и ни разу ничего не упомянул ни про DTLB/STLB, ни про PIPT/VIPT, ни про котекст свичи и прочее. Ты лезешь что-то оптимизировать, хотя видимо даже не знаешь как пользоваться madvise. Ты хотя бы последнии две интеловских архитектуры сравни и посчитай страйд для начала.

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

И заметим, как в очередной раз очередное трепло просто взяло и сделало вид, что оно не обделалось. Ну ничего, это так же не новость.

LjubaSherif
()
Ответ на: комментарий от LjubaSherif

У тебя какие-то комплексы помноженные на шизу. В детстве обижали?

anonymous
()
Ответ на: комментарий от LjubaSherif

Я не тот аноним, но...

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

Есть перевод интересной статьи на хабре https://habr.com/post/415053/

В Skylake длительность инструкции pause возрасла на порядок относительно предыдущих поколений. Из-за этого spin-wait, в котором использовалась эта инструкция начал работать дольше, чем планировалось. Пришлось патчить. В статье есть ссылка на 64-ia-32-architectures-optimization-manual пункт 8.4.7 https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32...

The latency of PAUSE instruction in prior generation microarchitecture is about 10 cycles, whereas on Skylake microarchitecture it has been extended to as many as 140 cycles.

И кто балабол, маня?

ox55ff ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.