From 3918e8f6f9c3611674194429b3cbeb2aa66c2775 Mon Sep 17 00:00:00 2001 From: RafaeNoor <abdurrafae98@live.com> Date: Thu, 8 Jul 2021 14:14:02 -0500 Subject: [PATCH] Adding a description of the scheduler backend to top level README --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 8d1040a8f4..defc8b9234 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,28 @@ for how to build, install, and use HPVM. HPVM is currently at **version 1.0**. +## HPVM Scheduler Backend + +We provide the HPVM Backend pass `DFG2LLVM_EPOCHS` which converts those Dataflow Graph (DFG) nodes which represent specific +tasks from the scheduler's task library (e.g FFT, Viterbi). To specify that a particular node corresponds to a scheduler +task, users must specify the target hint to node be `EPOCHS_TARGET`. + +`__hpvm__hint(EPOCHS_TARGET)` + +If a particular node in the DFG is marked as above, the `DFG2LLVM_EPOCHS` backend pass would then identify which task from +the scheduler's task library that node corresponds by using the user specified call to `__hpvm__task`. For example, +to specify that a node represents a Vitterbi Task in the accelerator, the following call will be used: + +`__hpvm__task(VIT_TASK)` + +Using this information, alongside a task library configuration file (which describes the specific scheduler api to set-up +and execute each task), the `DFG2LLVM_EPOCHS` pass generates the appropriate task specific api calls while respecting +the task inter-dependency constraints (as denoted by the structure of the HPVM Dataflow Graph). + +To add a new task type to this pass, users must simply add a new task type entry to `__hpvm__task` and create the +entry for the name of the specific scheduler api calls to the task library configuration file. + + ## Support All questions can be directed to [hpvm-dev@lists.cs.illinois.edu](mailto:hpvm-dev@lists.cs.illinois.edu). -- GitLab