Skip to content

EEESlab/dace-ortools-tiling

Repository files navigation

Hierarchical tiling for ML algorithms expressed using DaCe

This repository contains examples of hierarchical tiling and explicit double buffering for GEMM and Conv2D, implemented using:

  • DaCe for data-centric program representation
  • Google OR-Tools (CP-SAT) for constraint-based tile-size selection

The tiling solver models a three-level memory hierarchy (L1 / L2 / L3) and supports optional double buffering at L1 and L2 levels.


Contents

  • generic_tiling_solver.py Provides

  • gemm_tiling_solver.py
    Constraint-based tiler for GEMM (L1/L2/L3 hierarchy)

  • gemm_example.py
    DaCe GEMM example using the tiler and explicit double buffering

  • conv2d_tiling_solver.py
    Constraint-based tiler for Conv2D (same approach as GEMM)

  • conv2d_example.py
    DaCe Conv2D example with hierarchical tiling and buffering


Dependencies

Python 3.9+ recommended.

Install required packages:

pip install dace ortools numpy

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages