Вопросы с тегом 'cpu-cache'

Кэш-память CPU - это аппаратная структура, используемая процессором для уменьшения среднего времени доступа к памяти.
9 отв.

Что такое "кеширующий" код?

В чем разница между недружественным кодом кеша и кодом с кэшем дружественных? Как я могу убедиться, что я пишу код, эффективный для кэширования?
22 мая '13 в 21:37
7 отв.

Почему порядок циклов влияет на производительность при итерации по 2D-массиву?

Ниже приведены две почти идентичные программы, за исключением того, что я переключил переменные i и j. Они оба бегут в разное количество времени. Может кто-нибудь объяснить, почему это происходит? Версия 1 #include <stdio.h> #include <stdl...
30 марта '12 в 5:17
5 отв.

Приблизительная стоимость доступа к различным кешам и основной памяти?

Кто-нибудь может дать мне приблизительное время (в наносекундах) для доступа к кэшам L1, L2 и L3, а также к основной памяти на процессорах Intel i7? Хотя это не вопрос программирования, знание таких подробностей о скорости необходимо для некоторых ...
03 нояб. '10 в 16:02
15 отв.

Как написать код, который лучше всего использует кеш процессора для повышения производительности?

Это может звучать как субъективный вопрос, но я ищу конкретные примеры, с которыми вы могли столкнуться, связанные с этим. Как сделать код, эффективный кэш/кеш-память (больше кеш-хитов, как можно меньше промахов в кеше)? С обеих сторон, кэшем данны...
18 апр. '09 в 13:33
10 отв.

Какой порядок вложенных циклов для итерации по 2D-массиву более эффективен

Какой из следующих порядков вложенных циклов для итерации по 2D-массиву более эффективен с точки зрения времени (производительность кэша)? Почему? int a[100][100]; for(i=0; i<100; i++) { for(j=0; j<100; j++) { a[i][j] = 10; ...
27 марта '12 в 13:51
10 отв.

Программирование с кэшем С++

Есть ли способ в С++ определить размер кэша процессора? У меня есть алгоритм, который обрабатывает много данных, и я хотел бы разбить эти данные на куски, чтобы они вписывались в кеш. Это возможно? Можете ли вы дать мне другие рекомендации по програм...
17 дек. '09 в 17:46
3 отв.

Почему скорость memcpy() резко падает каждые 4 КБ?

Я протестировал скорость memcpy(), заметив, что скорость резко падает при я * 4KB. Результат следующий: ось Y - это скорость (МБ/секунда), а ось Х - размер буфера для memcpy(), увеличиваясь с 1 КБ до 2 МБ. На рисунках 2 и 3 представлены детали 1KB-1...
10 янв. '14 в 11:03
5 отв.

Что такое кэш и промах кэша? Почему сбой при переходе в контекст?

Из 11-й главы (Производительность и масштабируемость) и раздела "Контекстное переключение" JCIP book: Когда новый поток включен, требуемые данные вряд ли будут в кэше локального процессора, поэтому контекстный переключатель вызывает шквал кэш-прома...
01 сент. '13 в 17:24
5 отв.

Почему линейная запись с перемешиванием с чтением не быстрее, чем с линейной записью с перемешиванием?

В настоящее время я пытаюсь лучше понять проблемы с памятью и кешем. Я где-то читал, что локальность памяти важнее для чтения, чем для записи, потому что в первом случае процессор должен фактически ожидать данные, тогда как во втором случае он может...
20 февр. '19 в 11:39
6 отв.

Где документируется кеш памяти L1 процессоров Intel x86?

Я пытаюсь профилировать и оптимизировать алгоритмы, и я хотел бы понять специфическое влияние кэшей на различные процессоры. Для недавних процессоров Intel x86 (например, Q9300) очень сложно найти подробную информацию о структуре кеша. В частности, б...
04 апр. '09 в 3:08
4 отв.

Как я могу сделать кеш-память процессора в x86 Windows?

Я заинтересован в принуждении кэш-памяти процессора в Windows (для сравнения, я хочу эмулировать запуск без данных в кэше процессора), предпочтительно базовую реализацию C или вызов Win32. Есть ли известный способ сделать это с системным вызовом или...
18 нояб. '09 в 18:34
5 отв.

Временная и пространственная локальность с массивами

Я немного запутался в значениях пространственной и временной локальности. Я надеюсь, посмотрев на это с помощью массива, это поможет мне понять это лучше. В следующем примере: A [0] [1], A [0] [2], A [0] [3].... и т.д. Означает ли это временную лок...
30 апр. '13 в 1:39
4 отв.

Как избежать "спагетти курсора кучи" в динамических графах?

Общая проблема Предположим, что вы кодируете систему, состоящую из графика и правил перезаписи графика, которые могут быть активированы в зависимости от конфигурации соседних узлов. То есть у вас есть динамический граф, который непредсказуемо раст...
29 янв. '16 в 21:17
9 отв.

Могу ли я принуждать кеш к многоядерному процессору x86?

На другой неделе я написал небольшой класс потоков и односторонний канал сообщений, чтобы обеспечить связь между потоками (два канала на поток, очевидно, для двунаправленной связи). Все отлично работало на моем Athlon 64 X2, но мне было интересно, ес...
18 февр. '09 в 0:42
4 отв.

Как общие кэш-памяти используются для многоядерных процессоров Intel?

У меня есть несколько вопросов относительно памяти кэшей, используемых в многоядерных процессорах или многопроцессорных системах. (Несмотря на то, что он не имеет прямого отношения к программированию, он имеет много последствий, а один пишет программ...
03 июня '09 в 17:06