Skip to content

Tera lab's github contribution to Naver-Intel-KAIST project.

Notifications You must be signed in to change notification settings

NAVER-INTEL-Co-Lab/gaudi-Autochiplet

Repository files navigation

Chiplet Placement and Routing Optimization considering Signal Integrity

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.

How to Start

  pip install requirements.txt

Graph Attention Network (GAT)-based Imitation Learning Framework

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.

Training

python train.py

Inference

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.

Setting up Gaudi

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.

About

Tera lab's github contribution to Naver-Intel-KAIST project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages