HotSpot Thermal Model Notes

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
Bash

By 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
Bash

HotSpot 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
Bash

Config 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
Bash

One 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
Bash

After 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

2

<element_name> <width> <height> <left-x> <bottom-y>
<element_name> <width> <height> <left-x> <bottom-y> <VHC> <resistivity>
Bash
itemexplanationunitcomments
element_nameuser-defined name for element
widthwidth of elementm
heightheight of elementm
left-xx-coordinate of element left edge
bottom-yy-coordinate of element bottom edge
VHCvolumetric heat capacityJ/(M^3-K)-detailed_3D on
resistivitythermal resistivity(m-K)/W-detailed_3D on

Materials

solid

<material_name>
solid
<thermal_conductivity>
<volumetric_heat_capacity>
Bash

fluid

<material_name>
fluid
<thermal_conductivity>
<volumetric_heat_capacity>
<dynamic_viscosity>
Bash

It 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

  1. https://github.com/uvahotspot/HotSpot/wiki/File-Types[]
  2. https://github.com/uvahotspot/HotSpot/wiki/File-Types#floorplan-files-flp[]

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

🧭