How do I get my memory channel(Single channel, Dual channel, etc) type in Linux?
Solution 1:
Search the dmidecode
output for Interleaved Data Depth
. Dual-channel memory has an interleaved depth of 2.
Solution 2:
People giving "Interleaved Data Depth" as the answer are not correct. Interleaved Data Depth either is not the correct indicator or is very commonly misreported (If it's reported at all).
An easy way to obtain how many channels you're using is to do something like the following:
sudo dmidecode -t 17 | awk 'BEGIN { FS=":"; OFS="\t" } /Size|Channel/ { line = (line ? line OFS : "") $2 } /^$/ { print line; line="RAM" }' | grep -iv 'no'
sample output (Dual channel):
RAM 32 GB ChannelA-DIMM0
RAM 32 GB ChannelB-DIMM0
On this same machine, let's check Interleaved Data Depth:
sudo dmidecode | grep Interleaved
output:
Interleaved Data Depth: 1
Interleaved Data Depth: 1
On this same machine was also verified in Windows via CPU-Z. Under memory was reported verbatim: Dual Channel
So Interleaved Data Depth is incorrect but we can easily check our channels (A, B, C, D, etc.).
Solution 3:
The channels wont tell you if it runs in dual channel mode or not, it only tells you which channel are using a memory module
Here's my output after trying to get 2x8GB + 4x4GB DIMM to work on my x79 board
RAM 8192 MB ChannelA_Dimm1 ChannelA ChannelA_Dimm1_AssetTag
RAM 4096 MB ChannelA_Dimm2 ChannelA ChannelA_Dimm2_AssetTag
RAM 8192 MB ChannelB_Dimm1 ChannelB ChannelB_Dimm1_AssetTag
RAM 4096 MB ChannelB_Dimm2 ChannelB ChannelB_Dimm2_AssetTag
RAM 4096 MB ChannelD_Dimm1 ChannelD ChannelD_Dimm1_AssetTag
you can't tell from that if they run in single, dual or triple channel mode.