Процессоров все больше, ядра все круче, параллельность выше..
Как указывать кеш инструкций L1 для компиляции в gcc, если процессоров два, и к тому же они еще и делятся на два виртуальных ядра гипертрейдингом..
С кешем L2 все понятно 2 процессора на 2 виртуальных ядра, то указанное значение делим на 4.
Общий кеш L2 процессора в примере 1024К. При значении 256К на ядро получаем наиболее высокие показатели обмена:
#cat /sys/devices/system/cpu/cpu0/cache/index2/size
512 K
sysbench --test=memory --memory-block-size=128K --max-time=30 run
80859.12 MB transferred (2695.28 MB/sec)
sysbench --test=memory --memory-block-size=256K --max-time=30 run
90526.25 MB transferred (3017.51 MB/sec)
sysbench --test=memory --memory-block-size=512K --max-time=30 run
81594.00 MB transferred (2719.76 MB/sec)
sysbench --test=memory --memory-block-size=1024K --max-time=30 run
46810.00 MB transferred (1560.29 MB/sec)
По идее L1 у каждого процессора свой. Но как быть с виртуальностью ядер каждого процессора делить меж ними кеш пополам или нет????
Заранее благодарен.