From 0a59fd5f236f183a76257880f461f45635da1741 Mon Sep 17 00:00:00 2001 From: Guillaume Raffy Date: Mon, 13 Mar 2023 15:09:56 +0100 Subject: [PATCH] made the results a bit more accurate by taking into account the dynamic frequency scaling (the frequency of some cpu is running at lower frequency when executing avx512 instructions) --- concho/config.py | 14 +++++++++++++- readme.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/concho/config.py b/concho/config.py index 21f5b0c..aaebc98 100644 --- a/concho/config.py +++ b/concho/config.py @@ -375,7 +375,19 @@ class Config(): def get_flops(self): # print('%d servers * %d cpu %s * %d cores @ %f (%d flops/cycle)' % (self.num_servers, self.num_cpu_per_server, str(self.cpu.uid), self.cpu.num_cores, self.cpu.clock, self.cpu.num_dp_flop_per_cycle)) - flops = self.cpu.num_dp_flop_per_cycle * self.cpu.clock * 1.e9 * self.cpu.num_cores * self.num_cpu_per_server * self.num_servers + dynamic_frequency_scaling = 1.0 # https://en.wikichip.org/wiki/intel/frequency_behavior + # https://www.nas.nasa.gov/hecc/support/kb/cascade-lake-processors_579.html + # The Intel Cascade Lake processor incorporated into the Aitken cluster is the 20-core Xeon Gold 6248 model. Its base clock speed is 2.5 GHz for non-AVX, 1.9 GHz for AVX2, and 1.6 GHz for AVX-512. + simd_id = get_simd_id(self.cpu.architecture) + if simd_id == 'avx-512': + if self.cpu.architecture in ['skylake', 'cascadelake']: + xeon_6248_base_freq = 2500.0 # https://en.wikichip.org/wiki/intel/xeon_gold/6248 + xeon_6248_avx512_base_freq = 1600.0 # https://en.wikichip.org/wiki/intel/xeon_gold/6248 + dynamic_frequency_scaling = xeon_6248_avx512_base_freq / xeon_6248_base_freq + elif self.cpu.architecture == 'icelake': + dynamic_frequency_scaling = 0.9 + cpu_clock_when_computing = self.cpu.clock * dynamic_frequency_scaling + flops = self.cpu.num_dp_flop_per_cycle * cpu_clock_when_computing * 1.e9 * self.cpu.num_cores * self.num_cpu_per_server * self.num_servers return flops def _init_dimm_slots(self): diff --git a/readme.md b/readme.md index 7afbcdd..b01a47d 100644 --- a/readme.md +++ b/readme.md @@ -6,3 +6,51 @@ usage: ```console graffy@graffy-ws2:~/work/concho$ PYTHONPATH=. python3 ./tests/test1.py ``` + + +# intel dynamic frequency scaling + +## xeon silver 4116 + +[https://en.wikichip.org/wiki/intel/xeon_silver/4116#Frequencies] + +Turbo Frequency/Active Cores +| Mode | Base | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | +| :----- | :-------- | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | +| Normal | 2,100 MHz | 3,000 MHz | 3,000 MHz | 2,800 MHz | 2,800 MHz | 2,700 MHz | 2,700 MHz | 2,700 MHz | 2,700 MHz | 2,400 MHz | 2,400 MHz | 2,400 MHz | 2,400 MHz | +| AVX2 | 1,700 MHz | 2,900 MHz | 2,900 MHz | 2,700 MHz | 2,700 MHz | 2,400 MHz | 2,400 MHz | 2,400 MHz | 2,400 MHz | 2,100 MHz | 2,100 MHz | 2,100 MHz | 2,100 MHz | +| AVX512 | 1,100 MHz | 1,800 MHz | 1,800 MHz | 1,600 MHz | 1,600 MHz | 1,500 MHz | 1,500 MHz | 1,500 MHz | 1,500 MHz | 1,400 MHz | 1,400 MHz | 1,400 MHz | 1,400 MHz | + + +## xeon gold 6140 + +[https://en.wikichip.org/wiki/intel/xeon_gold/6140] +Turbo Frequency/Active Cores + +| Mode | Base | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | +| :----- | :-------- | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | --------: | +| Normal | 2,300 MHz | 3,700 MHz | 3,700 MHz | 3,500 MHz | 3,500 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,100 MHz | 3,100 MHz | 3,100 MHz | 3,100 MHz | 3,000 MHz | 3,000 MHz | +| AVX2 | 1,900 MHz | 3,600 MHz | 3,600 MHz | 3,400 MHz | 3,400 MHz | 3,300 MHz | 3,300 MHz | 3,300 MHz | 3,300 MHz | 3,000 MHz | 3,000 MHz | 3,000 MHz | 3,000 MHz | 2,700 MHz | 2,700 MHz | 2,700 MHz | 2,700 MHz | 2,600 MHz | 2,600 MHz | +| AVX512 | 1,500 MHz | 3,500 MHz | 3,500 MHz | 3,300 MHz | 3,300 MHz | 2,800 MHz | 2,800 MHz | 2,800 MHz | 2,800 MHz | 2,400 MHz | 2,400 MHz | 2,400 MHz | 2,400 MHz | 2,100 MHz | 2,100 MHz | 2,100 MHz | 2,100 MHz | 2,100 MHz | 2,100 MHz | + +## xeon gold 6240 + +[https://en.wikichip.org/wiki/intel/xeon_gold/6240] +Turbo Frequency/Active Cores + +| Mode | Base | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | +| :----- | :------- | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | +| Normal | 2,600 MHz | 3,900 MHz | 3,900 MHz | 3,700 MHz | 3,700 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,300 MHz | 3,300 MHz | +| AVX2 | 2,000 MHz | 3,700 MHz | 3,700 MHz | 3,500 MHz | 3,500 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,200 MHz | 3,200 MHz | 3,200 MHz | 3,200 MHz | 2,900 MHz | 2,900 MHz | 2,900 MHz | 2,900 MHz | 2,800 MHz | 2,800 MHz | +| AVX512 | 1,600 MHz | 3,700 MHz | 3,700 MHz | 3,500 MHz | 3,500 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 2,900 MHz | 2,900 MHz | 2,900 MHz | 2,900 MHz | 2,600 MHz | 2,600 MHz | 2,600 MHz | 2,600 MHz | 2,500 MHz | 2,400 MHz | + +## xeon gold 6248 + +[https://en.wikichip.org/wiki/intel/xeon_gold/6248] +Turbo Frequency/Active Cores + +| Mode | Base | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | +| :----- | :------- | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | -------: | +| Normal | 2,500 MHz | 3,900 MHz | 3,900 MHz | 3,700 MHz | 3,700 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,600 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,200 MHz | 3,200 MHz | 3,200 MHz | 3,200 MHz | +| AVX2 | 1,900 MHz | 3,800 MHz | 3,800 MHz | 3,600 MHz | 3,600 MHz | 3,500 MHz | 3,500 MHz | 3,500 MHz | 3,500 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,400 MHz | 3,000 MHz | 3,000 MHz | 3,000 MHz | 3,000 MHz | 2,800 MHz | 2,800 MHz | 2,800 MHz | 2,800 MHz | +| AVX512 | 1,600 MHz | 3,800 MHz | 3,800 MHz | 3,600 MHz | 3,600 MHz | 3,500 MHz | 3,500 MHz | 3,500 MHz | 3,500 MHz | 3,000 MHz | 3,000 MHz | 3,000 MHz | 3,000 MHz | 2,700 MHz | 2,700 MHz | 2,700 MHz | 2,700 MHz | 2,500 MHz | 2,500 MHz | 2,500 MHz | 2,500 MHz | \ No newline at end of file