HierPINN-EM is a fast learning-based electromigration (EM) analysis method for multi-segment interconnects using hierarchical Physics-informed Neural Network (PINN)
-
First Stage:
The first step is to find a parameterized solution for single-segment wires under different boundary conditions, geometrical parameters and stressing current densities.
-
Second Stage:
Unsupervised PINN is applied to solve the stress and atom flux continuity problem in the interconnects by enforcing the physics laws at the boundaries of all wire segments.
-
HierPINN-EM can significantly reduce the number of variables at the PINN solver, which leads to faster training speed and better accuracy than the plain PINN method.
First Stage | Second Stage |
---|---|
HierPINN-EM requires Pytorch to be installed as backend. It was tested on Fermi server in Anaconda virtual env with following dependencies:
- python=3.8.12
- scipy=1.7.3
- pytorch=1.7.1 (build=py3.8_cuda11.0.221_cudnn8.0.5_0)
- cudatoolkit=11.0.221
- numpy=1.21.5
- matplotlib=3.5.1
- ...
Please refer to the requirements.txt file for more info on dependent packages.
To enable the gpu version of pytorch, please install pytorch using following command on Fermi (GPU: TITAN RTX, Driver: NVIDIA-SMI 450.51.05 Driver Version: 450.51.05 CUDA Version: 11.0):
$ conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
-
Random Interconnects Generation:
Generate multi-segment interconnect trees and COMSOL results by following the instructions in Random Interconnects Generation.
First, run line.py to create multi-segment straight wires or run autoGenGeo_correct.py to create multi-segment interconnect trees. The results will be saved in
.geo
and.mat
files inside./data
folder.Second, launch Matlab on server with command
comsol mphserver matlab
and run simulate.m in Matlab. The COMSOL results will be filled into.mat
files inside./data
folder. -
First Stage:
Run first_stage_single_segment_stress_predictor.py to train the stress predictor. The path to the random interconnects (training dataset) generated in the previous step should be passed through
--data-path
argument. -
Second Stage:
Run second_stage_atom_flux_predictor.py to train the atom flux predictor. The path to the random interconnects (test set) should be passed through
--data-path
argument. The path to the trained first stage model should be passed through--model-path
argument. -
An example first stage model is already trained using first 8000 cases in folder
/fermi_data/shared/wentian/hierpinn_em/EMdataset_10seg_1n2/
on lab server, and the trained model is saved in./ckpt/trial_function_mlp_20.pkl
. You can directly run the second stage second_stage_atom_flux_predictor.py on test set in foler/fermi_data/shared/wentian/hierpinn_em/test_trees/
on lab server using this trained first stage model.
Accepted to ICCAD 2022: iccad22_hierarchical_pinn
@INPROCEEDINGS{Jin:ICCAD'22,
author={Jin, Wentian and Chen, Liang and Lamichhane, Subed and Kavousi, Mohammadamir and Tan, Sheldon X.-D.},
title={HierPINN-EM: Fast Learning-Based Electromigration Analysis for Multi-Segment Interconnects Using Hierarchical Physics-informed Neural Network},
booktitle = iccad,
year={2022},
volume={},
number={},
pages={1-9},
doi={10.1145/3508352.3549371}}
HierPINN-EM was originally developed by Wentian Jin at VSCLAB under the supervision of Prof. Sheldon Tan.
HierPINN-EM is currently maintained by Wentian Jin.