Saya ingin tahu cara menemukan ukuran cache L2 di Linux ...
untuk ukuran cache L1, saya melakukan hal berikut
pico /proc/cpuinfo
bagaimana dengan ukuran cache L2?
cat /sys/devices/system/cpu/cpu0/cache/index2/size
atau periksa dmidecode
atau gunakan lshw
EDIT 3 : Heh, maaf, lakukan saja sudo dmidecode -t cache
dan itu akan menampilkan informasi cache CPU Anda. Untuk memberi tahu bagian apa yang Anda lihat (L1 atau L2), lihat Configuration:
barisnya. Kamu ingin Configuration: Enabled, Not Socketed, Level 2
.
Anda harus memeriksa alat berikut . Ini memberikan informasi paling akurat dari semua alat yang saya coba. Ini adalah keluaran versi baris perintah:
~$ lstopo-no-graphics
Machine (7984MB)
Socket L#0
L2 L#0 (4096KB)
L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0)
L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#1)
L2 L#1 (4096KB)
L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#2)
L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#3)
Dan ini adalah antarmuka grafis:
Cukup gunakan: lscpu
Output sampel:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 42
Stepping: 7
CPU MHz: 3401.000
BogoMIPS: 6784.57
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
NUMA node0 CPU(s): 0-3
lscpu
tidak akurat pada beberapa CPU dengan konfigurasi yang eksotis. Misalnya CPU dari jawaban saya memberikan yang berikut (dihilangkan beberapa info): Keluarga CPU: 6 Model: 15 Melangkah: 11 CPU MHz: 1866.742 BogoMIPS: 3733.48 Virtualisasi: Cache VT-x L1d: 32K L1i cache: 32K L1i cache: 32K L2 cache: 4096K NUMA node0 CPU: 0-3 CPU adalah Xeon L5320 dengan total 8MB L2.getconf
memberi:
Atau untuk satu level:
Yang paling keren dari antarmuka ini adalah ia hanya membungkus
sysconf
fungsi POSIX C (argumen cache adalah ekstensi non-POSIX), sehingga bisa digunakan dari kode C juga.Diuji di Ubuntu 16.04.
Instruksi x86 CPUID
Instruksi CPUID x86 juga menawarkan informasi cache, dan dapat langsung diakses oleh userland: https://en.wikipedia.org/wiki/CPUID
glibc tampaknya menggunakan metode itu untuk x86. Saya belum mengonfirmasi langkah debugging / instruksi, tetapi sumber untuk 2.28
sysdeps/x86/cacheinfo.c
melakukan itu:TODO membuat contoh C minimal, malas sekarang, bertanya di: https://stackoverflow.com/questions/14283171/how-to-receive-l1-l2-l3-cache-size-using-cpuid-instruction-instruction-in-x86
ARM juga memiliki mekanisme yang ditentukan arsitektur untuk menemukan ukuran cache melalui register seperti Cache Size ID Register (CCSIDR), lihat Manual Programmer ARMv8 11.6 "Penemuan cache" untuk tinjauan umum.
sumber
dmesg | grep cache
akan menampilkan informasi terkait L1 dan L2 Anda.sumber