enki-anu 0.2.2

BorrowEngine, task recording, and pipeline synthesis for the Enki runtime
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pub mod barrier_generator;
pub mod graph;
pub mod reduction;

pub use barrier_generator::{BarrierGenerator, TaskBarriers};
pub use graph::{DependencyEdge, DependencyGraph, HazardType};
pub use reduction::TransitiveReductionSolver;

use crate::recording::queue::TaskQueue;

pub fn solve_optimal_barriers<'a>(queue: &TaskQueue<'a>) -> Vec<TaskBarriers> {
    let initial_graph = DependencyGraph::build(queue);

    let reduced_graph = TransitiveReductionSolver::reduce(initial_graph);

    BarrierGenerator::generate(&reduced_graph, queue)
}