旁路封装器构造用于有条件执行内核。通过运行时参数来控制旁路。
旁路运行时控制输入 bp
:0
对应无旁路,1
对应旁路。除了控制参数外,旁路内核或计算图的外部连接均定向至旁路构造本身的外部部分。而在内部,旁路构造由编译器自动连接至旁路内核或计算图。
negate
修饰符可用于表示输入控制取反。默认情况下,控制采用同步 RTP。要使用异步 RTP,请使用 async
修饰符。
所需代码如以下示例所示。
input_port control;
input_port in;
output_port out;
bypass b;
kernel k;
k = kernel::create(filter);
dimensions(k.in[0])={32};
dimensions(k.out[0])={32};
...
b = bypass::create(k);
connect<parameter> (control, async(negate(b.bp)));
connect(in, b.in[0]);
connect(b.out[0], out);
注释: 为了使旁路能正常工作,需在输入与输出缓冲器端口之间确立一对一对应关系,包括类型和大小两方面都是如此。