diff --git a/README.md b/README.md index 8d1040a8f41d273728de7585d3d2aaa366728bba..defc8b9234bb11f79a665de286c0896b728356c9 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).