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)

This commit is contained in:
Guillaume Raffy 2023-03-13 15:09:56 +01:00
parent 76c26b99bc
commit 0a59fd5f23
2 changed files with 61 additions and 1 deletions

View File

@ -375,7 +375,19 @@ class Config():
def get_flops(self): 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)) # 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 return flops
def _init_dimm_slots(self): def _init_dimm_slots(self):

View File

@ -6,3 +6,51 @@ usage:
```console ```console
graffy@graffy-ws2:~/work/concho$ PYTHONPATH=. python3 ./tests/test1.py 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 |