another meaningless subtitle

AMD Ryzen, DDR4 Dual Rank and BankGroupSwap

· by fabio · Read in about 2 min · (384 Words)

If I had to guess I would say that more than 90% of AMD Ryzen based builds use Single Rank memory sticks.
Finding any information regarding how Dual Rank DDR4 perform, how they react to overclock or even worse, what memory settings are the best is pretty much mission impossible.
Since I use Dual Rank DDR4, because, face it, it is 2017 and 16 GB of RAM does not cut it anymore, I had to dig in unexplored territories to find out what the best settings are.
What follows are my personal findings on the impact of BankGroupSwap setting on system performance.

.:. System specifications

– Ryzen 7 1700X
– Gigabyte X370 K7 (BIOS F7B)
– Crucial DDR4 2133 MHz CAS15 2×16 GB (part number: CT16G4DFD8213.C16FBR) – ICs: Micron C9BGN
The CPU overclocked to 4 GHz while the RAM are overclocked to 3066 MHz with main timings 16-19-14-14-36 1T and GearDownMode disabled.

.:. Testing methodology

To test the impact of BankGroupSwap I used two benchmarks:
1. “RyzenGraphic_27.blend” blender (version: 2.79.1) rendering, it can be downloaded at the following url: http://download.amd.com/demo/RyzenGraphic_27.blend
2. a bash script that automatically downloads the latest version of Linux kernel and compile it on RAM.

#!/bin/sh

WORKDIR='/dev/shm/tmp'
KERNEL_SRC='https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.13.12.tar.xz'
USER='user'
GROUP='user'

###############################################################################

SCRIPT='realpath $0'
SCRIPTPATH='dirname $SCRIPT'

rm -rf $WORKDIR
sudo mkdir $WORKDIR
sudo chown $USER:$GROUP $WORKDIR
cd $WORKDIR

wget $KERNEL_SRC -O leenux.tar.xz
mkdir leenux
tar --extract --file=leenux.tar.xz --strip-components=1 --directory=leenux
cd leenux

for i in {1..5}
do
   make clean
   make defconfig
   echo COMPILING ...
   (time make -j17) 2>> kernel-bench-ram-results.txt
   echo DONE
   sleep 10
done

mv kernel-bench-ram-results.txt $SCRIPTPATH

Each one of the two benchmark has been run five times in a row.

.:. Results

BANKGROUPSWAP |  on   |  off
   blender0   | 18.41 | 18.52
   blender1   | 18.35 | 18.39
   blender2   | 18.30 | 18.47
   blender3   | 18.37 | 18.46
   blender4   | 18.32 | 18.35
  RESULT AVG  | 18.35 | 18.438
            
BANKGROUPSWAP |   on   |  off
linux kernel0 | 67.782 | 67.700
linux kernel1 | 67.697 | 67.491
linux kernel2 | 67.558 | 67.471
linux kernel3 | 67.720 | 67.574
linux kernel4 | 67.724 | 67.538
  RESULT AVG  | 67.696 | 67.555

Looking at the results table it is clear that the difference is really abysmal; having BankGroupSwap enabled amount roughly to ~0.5% performance increase in Blender and ~0.2% performance decrease in Linux kernel compilation.