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


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.