This repo consists of chiplet placement and routing environment (gym env) and 10,000 guide actions generated by the Place-to-Route (P2R) expert algorithm. The objective of the chiplet placement and routing is to satisfy the UCIe eye aperture that highly depends on the signal integrity of routed interconnections.
- UCIe (Universal Chiplet Interconnect express) is a standardized chiplet interface driven by Intel.
This repo also includes the UCIe interface standard-based objective simulator to allow chiplet design considering real-world electrical performace metric.
This repository is ran on Intel Gaudi 2.
pip install requirements.txt
train.py is the main function that runs the imitation learning with pre-collected expert data. There are total 10,000 expert data pre-collected in '\data\graph_train_dataset_UCIe_0_3mm_200_split_%d.pt', each of which consists of 200 data and %d ranges from 1 to 50. Please note that dataset was splitted due to github memory issue.
In train.py,
split_files = [
f"data/graph_train_dataset_UCIe_0_3mm_200_split_{i+1}.pt" for i in range(50)
]
You can modify the x in range(x) to ablate number of expert data used for imitation learning. x ranges from 1 to 50 and the total number of data becomes 200 times x.
python train.py
Make sure to call a valid pretrained policy (.pt) saved in '\trained_policy'.
python eval.py
eval.py consists of pre-collected 10 unseen problems for validation and samples 10 solutions per problem and outputs the best one. The average score (i.e. average eye aperture of interconnections) is printed in the end. The plotted solutions are saved in 'results_plots.pdf' to visualize the chiplet placement and routing solutions.
Once Gaudi card is available, first install docker from https://docs.habana.ai/en/latest/Installation_Guide/Driver_Installation.html Then, pull the docker.
docker pull vault.habana.ai/gaudi-docker/1.17.0/{$OS}/habanalabs/pytorch-installer-2.3.1:latest
Then, run the docker.
docker run -it --runtime=habana \-e HABANA_VISIBLE_DEVICES=all -e OMPI_MCA_btl_vader_single_copy_mechanism=none --cap-add=sys_nice --net=host --ipc=host vault.habana.ai/gaudi-docker/1.17.0/ubuntu22.04/habanalabs/pytorch-installer-2.3.1:latest
Now you get a docker with Gaudi driver and pytorch installed.