We provide the implementation of the method proposed in the paper. It is built upon the popular open-source infrastructure DREAMPlace.
We highly recommend the use of Docker to enable a smooth environment configuration.
The following steps are borrowed from DREAMPlace repository. We make minor revisions to make it more clear.
-
Get the code and put it in folder
DATE25-TDP
. -
Get the container:
-
Option 1: pull from the cloud limbo018/dreamplace.
docker pull limbo018/dreamplace:cuda
-
Option 2: build the container.
docker build . --file Dockerfile --tag your_name/dreamplace:cuda
- Enter bash environment of the container. Replace
limbo018
with your name if option 2 is chosen in the previous step.
-
Option 1: Run with GPU on Linux.
docker run --gpus 1 -it -v $(pwd):/DATE25-TDP limbo018/dreamplace:cuda bash
-
Option 2: Run with CPU on Linux.
docker run -it -v $(pwd):/DREAMPlace limbo018/dreamplace:cuda bash
-
cd /DATE25-TDP
. -
Build.
mkdir build cd build cmake .. make make install
-
Get benchmarks: download the cases here: https://drive.google.com/file/d/1xeauwLR9lOxnYvsK2JGPSY0INQh8VuE4/view?usp=sharing. Unzip the package and put it in the following directory:
install/benchmarks/iccad2015.ot
Run our method on case superblue1 of ICCAD2015 timing-driven placement contest:
python dreamplace/Placer.py test/iccad2015.pin2pin/$case.json
Or you can run all 8 cases by:
cd install
./run.sh