Skip to content

PPO-based Folding Config Generator - #1652

Open
ollycassidy13 wants to merge 1 commit into
Xilinx:devfrom
ollycassidy13:target-fps
Open

PPO-based Folding Config Generator#1652
ollycassidy13 wants to merge 1 commit into
Xilinx:devfrom
ollycassidy13:target-fps

Conversation

@ollycassidy13

Copy link
Copy Markdown

PPO-based Folding Config Generator

Summary

Adds resource-aware PPO folding to automatically select parallelization settings that meet a target FPS while fitting the target FPGA.

How it works

When a board or FPGA part is provided, SetFolding:

  • Builds the folding choices for each layer, including PE, SIMD, memory style, resource type, parallel window and pumped compute.
  • Uses analytical cycle and resource estimates to evaluate each configuration.
  • Uses PPO with deterministic refinement to find a valid configuration.
  • Minimizes estimated resource usage when the throughput target is achievable.
  • Selects the highest throughput configuration within the device budget when the target cannot be reached.
  • Optimizes nested FINNLoop bodies using a shared device resource budget.
  • Accounts for FINNLoop iterations, controller overhead, and recurring shuffle stalls in throughput estimates.
  • Reports recursive and post-FIFO resource estimates.
  • Compares analytical throughput against phase-balanced multi-frame RTL simulation results.

It aims to replace the first 90% of by-hand tuning, jumping users straight to the final tweaks to maximize their design.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant