Quickstart
Minimum System Requirements
- RAM: At least 60GB (80GB Recommended)
- Processor: Multicore with good processing speed
- Python: Version 3.9 or later
- Storage: SSD with ample space for large LithoSim datasets
LithoSim Benchmark Download
The first step is to download LithoSim Benchmark here, featuring over 4 million high-resolution input-output pairs with rigorous physical correspondence. The dataset systematically incorporates alterable optical source distributions, metal and via mask topologies with optical proximity correction (OPC) variants, and process windows reflecting fab-realistic variations.
Please unzip all *.tar.gz
file using following command
tar -xzvf *.tar.gz
Training data corresponds to train_val folders (i.e. ./lithosim/opc_metal/train_val
). Test data corresponds to test folders (i.e. in-distribution ./lithosim/opc_metal/test
and out-of-distribution ./lithosim/ood/test
). The training and validation splits can be found at train_val_split
in ./configs/data/litho.yaml
.
Code Download and Environmental Requirements
Clone the Github repo here and set your own environment following these commands:
# clone project
git clone https://github.com/dw-hongquan/LithoSim
cd LithoSim
# [OPTIONAL] create conda environment
conda create -n myenv python=3.9
conda activate myenv
# install pytorch according to instructions
# https://pytorch.org/get-started/
# install requirements
pip install -r requirements.txt
If you are prefered to use conda dependences:
conda install --file environment.yaml
Prepare Dataset Path Files
LithoSim use lithosim_path.txt
to manage all sub-datasets (opc_metal, metal, opc_via, via, ood). Please use ./tool/dataset2txt.py
and replace dataset_dir
and txt_path
to generate you own path.
python tool/dataset2txt.py
Each line of the lithosim_path.txt
path file will contain 5 components:
source_path mask_path dose_value defocus_value resist_path
# i.e.
/home/hehq/dataset/lithosim/opc_metal/train_val/1/source_simple.src /home/hehq/dataset/lithosim/opc_metal/train_val/1/mask.png 1.0 -40 /home/hehq/dataset/lithosim/opc_metal/train_val/1/RI_1.0_dose_-40_defocus.png
Training and Validation
Train your model on the training/validation data and test using the test data. Edit train_val_path
, test_path
, and batch_size
at ./lithosim/configs/data/litho.yaml
.
Evaluation
Evaluation time! Use the ./tool/litho_eval.py
to see how your model does! Use the iou_dice, cal_acc, cal_mse, and EPECalculator methods in the src/models/losses/metrics.py
script to see how your model does on point estimates. 😊