Skip to content
Deep learning toolkit-enabled VLSI placement
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmarks runs under python2 now Mar 21, 2019
cmake initial cmake system Mar 1, 2019
dreamplace fix bugs in compiling and running under machines without cuda Apr 13, 2019
test runs under python2 now Mar 21, 2019
thirdparty fix bugs in compiling and running under machines without cuda Apr 13, 2019
unitest remove makefile and only leave cmake systems Mar 21, 2019
.gitmodules fix issue of submodule when user does not have ssh key setup Mar 8, 2019
CMakeLists.txt fix bugs in compiling and running under machines without cuda Apr 13, 2019


Deep learning toolkit-enabled VLSI placement. With the analogy between nonlinear VLSI placement and deep learning training problem, this tool is developed with deep learning toolkit for flexibility and efficiency. The tool runs on both CPU and GPU. Over 30X speedup over the CPU implementation (RePlAce) is achieved in global placement and legalization on ISPD 2005 contest benchmarks with a Nvidia Tesla V100 GPU.


  • Yibo Lin, Shounak Dhar, Wuxi Li, Haoxing Ren, Brucek Khailany and David Z. Pan, "DREAMPlace: Deep Learning Toolkit-Enabled GPU Acceleration for Modern VLSI Placement", ACM/IEEE Design Automation Conference (DAC), Las Vegas, NV, Jun 2-6, 2019 (preprint)


  • Pytorch 0.4.1 or 1.0.0

  • Python 2.7 or Python 3.5

  • Boost

    • Need to install and visible for linking
  • Limbo

    • Integrated as a git submodule
  • Flute

    • Integrated as a submodule
  • CUDA 9.1 or later (Optional)

    • If installed and found, GPU acceleration will be enabled.
    • Otherwise, only CPU implementation is enabled.
  • Cairo (Optional)

    • If installed and found, the plotting functions will be faster by using C/C++ implementation.
    • Otherwise, python implementation is used.
  • NTUPlace3 (Optional)

    • If the binary is provided, it can be used to perform detailed placement

To pull git submodules in the root directory

git submodule init
git submodule update

Or alternatively, pull all the submodules when cloning the repository.

git clone --recursive

How to Install Python Dependency

Go to the root directory.

pip install -r requirements.txt 

How to Build

CMake is adopted as the makefile system. To build, go to the root directory.

mkdir build 
cd build 
cmake ..
make install

Third party submodules are automatically built except for Boost.

To clean, go to the root directory.

rm -r build

Here are the available options for CMake.

  • CMAKE_INSTALL_PREFIX: installation directory
    • Example cmake -DCMAKE_INSTALL_PREFIX=path/to/your/directory
  • CMAKE_CUDA_FLAGS: custom string for NVCC (default -gencode=arch=compute_60,code=sm_60)
    • Example cmake -DCMAKE_CUDA_FLAGS=-gencode=arch=compute_60,code=sm_60

How to Get Benchmarks

To get ISPD 2005 benchmarks, run the following script from the directory.

python benchmarks/

How to Run

Before running, make sure the benchmarks have been downloaded and the python dependency packages have been installed. Run with JSON configuration file for full placement in the root directory.

python dreamplace/ test/ispd2005/adaptec1.json

Test individual pytorch op with the unitest in the root directory.

python unitest/ops/


Descriptions of options in JSON configuration file can be found by running the following command.

python dreamplace/ --help


You can’t perform that action at this time.