Introduction
Hotspot has been released to its 7 iteration with multiple updates regarding accurate thermal simulation benchmark.
Installation
To increase the simulation speed, the SUPERLU package is needed, depending on the various distros with own specifiic package managers, the installation could be different. Once it is installed, hotspot could be compiled.
SuperLU
I prefer to install SuperLU as helps HotSpot to run the simulation much faster. To install this package I will show how it could be compiled and installed manually.
The following code shows how to compile, build and install SuperLU, by installing the dependencies, cloning the project, then building the project, the process could be done.
sudo dnf install cmake gcc-c++ blas-devel lapack-devel -y
git clone https://github.com/xiaoyeli/superlu
cd superlu; mkdir build; cd build;
cmake ..
make
sudo make install
BashBy running the make install command with the default options, the following text stream shows where the files are installed.
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib64/pkgconfig/superlu.pc
-- Installing: /usr/local/lib64/libsuperlu.a
-- Installing: /usr/local/include/supermatrix.h
-- Installing: /usr/local/include/slu_Cnames.h
-- Installing: /usr/local/include/slu_dcomplex.h
-- Installing: /usr/local/include/slu_scomplex.h
-- Installing: /usr/local/include/slu_util.h
-- Installing: /usr/local/include/superlu_enum_consts.h
-- Installing: /usr/local/include/superlu_config.h
-- Installing: /usr/local/include/slu_sdefs.h
-- Installing: /usr/local/include/slu_ddefs.h
-- Installing: /usr/local/include/slu_cdefs.h
-- Installing: /usr/local/include/slu_zdefs.h
-- Installing: /usr/local/lib64/cmake/superlu/superluTargets.cmake
-- Installing: /usr/local/lib64/cmake/superlu/superluTargets-noconfig.cmake
-- Installing: /usr/local/lib64/cmake/superlu/superluConfig.cmake
-- Installing: /usr/local/lib64/cmake/superlu/superluConfigVersion.cmake
BashHotSpot Compilation
After SuperLU is installed shown above, it is relatively easy to compile the hotspot project. I did not modify the Makefile provided within the project and there’s no error in compiling the project. There could be situations where SuperLU installations could not be found, in those cases, additional works needs to be done, but this is out of the scope of this article.
dnf install -y SuperLU;
git clone https://github.com/uvahotspot/HotSpot; cd HotSpot;
make all SUPERLU=1
BashConfig File Types
help descriptions
Once the project is properly compiled, running the binary with -h would output the following text stream. Basically those options are related to various config files which will be explained in the next section.
[root@machine HotSpot]# ./hotspot -h
Usage: ./hotspot -f <file> -p <file> [-o <file>] [-c <file>] [-d <file>] [options]
A thermal simulator that reads power trace from a file and outputs temperatures.
Options:(may be specified in any order, within "[]" means optional)
-f <file> floorplan input file (e.g. ev6.flp) - overridden by the
layer configuration file (e.g. layer.lcf) when the
latter is specified
-p <file> power trace input file (e.g. gcc.ptrace)
[-o <file>] transient temperature trace output file - if not provided, only
steady state temperatures are output to stdout
[-c <file>] input configuration parameters from file (e.g. hotspot.config)
[-d <file>] output configuration parameters to file
[options] zero or more options of the form "-<name> <value>",
override the options from config file. e.g. "-model_type block" selects
the block model while "-model_type grid" selects the grid model
[-detailed_3D <on/off]> Heterogeneous R-C assignments for specified layers. Requires a .lcf file to be specified
BashOne thing to point out from the help output is about the -model_type
option, there are 2 options, block and grid, block is less accurate yet consumes less time. Example 1 and example 2 of the HotSpot 7 repo demonstrate the differences. You could choose which one is more appropriate for your specific needs.
Here’s a comparision of time profiling of 2 types based on a customized floorplan, you could see the difference between 2 type of model types in terms of execution time, the first run is based on grid type and the 2nd run is based on the block type, there is in average 50 times difference depending on the floorplan.
[root@machine hotspot]# time ~/bin/HotSpot/hotspot -c example.config -f floorplan_1.flp -p gcc.ptrace -materials_file example.materials -model_type grid -steady_file outputs/gcc.steady
Parsing input files...
Creating thermal circuit...
Computing steady-state temperatures...
Simulation complete.
real 0m0.689s
user 0m0.669s
sys 0m0.017s
[root@emachine hotspot]# time ~/bin/HotSpot/hotspot -c example.config -f floorplan_1.flp -p gcc.ptrace -materials_file example.materials -model_type block -steady_file outputs/gcc.steady
Parsing input files...
Creating thermal circuit...
Computing steady-state temperatures...
Simulation complete.
real 0m0.011s
user 0m0.005s
sys 0m0.006s
BashAfter using both types, I found out that for the block one, it is not really accurate as there could be a huge difference between blocks, I would stick to grid one for better calculation results.
HotSpot provides the documentation for various types of config files1.
Floorplan Files
<element_name> <width> <height> <left-x> <bottom-y>
<element_name> <width> <height> <left-x> <bottom-y> <VHC> <resistivity>
Bashitem | explanation | unit | comments |
element_name | user-defined name for element | ||
width | width of element | m | |
height | height of element | m | |
left-x | x-coordinate of element left edge | ||
bottom-y | y-coordinate of element bottom edge | ||
VHC | volumetric heat capacity | J/(M^3-K) | -detailed_3D on |
resistivity | thermal resistivity | (m-K)/W | -detailed_3D on |
Materials
solid
<material_name>
solid
<thermal_conductivity>
<volumetric_heat_capacity>
Bashfluid
<material_name>
fluid
<thermal_conductivity>
<volumetric_heat_capacity>
<dynamic_viscosity>
BashIt should be noted that each material block should ends with a trailing empty line, this rule is even valid for the last material inside the file.
Examples
Example 4 considers tsvs on dies and tims, it handles tsv areas and non tsv areas within rectangle areas, which means within the tsv area, certain parameters needs to be calculated in equivalent parameters, including thermal conductivity and heat volume.
Citation
@article{wang2024hotspot,
title = "HotSpot Thermal Model Notes.",
author = "Wang, Xiaomeng",
journal = "blog.wangxm.com",
year = "2024",
month = "Aug",
url = "https://blog.wangxm.com/2024/08/hotspot-thermal-model-notes/"
}
BibTeX
Leave a Reply