digraph { rankdir=BT; node [shape=record]; ki_a [label="{ interface\nA}"]; ki_b [label="{ interface\nB}"]; {rank=same; ki_a ki_b}; "CPU::A" -> ki_a [dir="forward"]; "OpenCL::A" -> ki_a [dir="forward"]; "Halide::A" -> ki_a [dir="forward"]; "CPU::B" -> ki_b [dir="forward"]; "OpenCL::B" -> ki_b [dir="forward"]; "Halide::B" -> ki_b [dir="forward"]; }