The auto-completion process for CPU die_size_per_core was implemented as follows :
We have listed in cpu_manufacture.csv the die size per core for each CPU architecture, for each number of cores. We used data from several sources to identify the die_size_per_core.
This implementation as several problems :
Usually, only few die sizes by core_units are available for one architecture. To get the other die sizes (for each number of core units available) we made the assumption that the available die sizes were steps and that the chips under each of the steps had the same die size as the upper step. This is false. The relationship between the number of cores and the die area is close to an affine function and not a step function.
When the user gave their number of cores, but we didn't have the specific die sizes in cpu_manufacture.csv we changed the number of cores to match a die sizes available in cpu_manufacture.csv. This lead to very large changes in user request since only few die sizes were available.
This PR correct those issues.
cpu_manufacture.csv contains only die_size_per_core for available data. No assumption are made to retrieve other die sizes.
If core_units is given by the user, the closest die_size_per_core in terms of core_units is used min(abs(core_unit - cpu_manufacture.csv.core_units)). Otherwise, the maximizing die_size_per_core is used.
We always use and never change core_units if given by the user. When evaluating the die size of a CPU we use the die_size_per_core retrieve during the completion process and the core_units given by the user or set by default.
Problem
The auto-completion process for CPU
die_size_per_core
was implemented as follows :We have listed in cpu_manufacture.csv the die size per core for each CPU architecture, for each number of cores. We used data from several sources to identify the
die_size_per_core
.This implementation as several problems :
This PR correct those issues.
die_size_per_core
for available data. No assumption are made to retrieve other die sizes.core_units
is given by the user, the closestdie_size_per_core
in terms ofcore_units
is usedmin(abs(core_unit - cpu_manufacture.csv.core_units))
. Otherwise, the maximizingdie_size_per_core
is used.core_units
if given by the user. When evaluating the die size of a CPU we use thedie_size_per_core
retrieve during the completion process and thecore_units
given by the user or set by default.