我想使用 Halide 生成多个输出缓冲区。
Func output;
std::vector<Expr> argsExpr( 4 );
argsExpr[ 0 ] = aOut( x, y );
argsExpr[ 1 ] = bOut( x, y );
argsExpr[ 2 ] = cOut( x, y );
argsExpr[ 3 ] = dOut( x, y );
output( x, y ) = Tuple( argsExpr );
这个例子工作正常,但我想知道是否可以有多个输出,但大小不同,例如:
std::vector<Expr> argsExpr( 4 );
argsExpr[ 0 ] = aOut( x, y, c );
argsExpr[ 1 ] = bOut( x, y );
argsExpr[ 2 ] = cOut( x, y );
argsExpr[ 3 ] = dOut( x, y );
output( x, y, ? ) = Tuple( argsExpr );
我从 Halide 收到关于输出 0 和输出 1 之间差异的错误。
我假设我只想要一个编译(compile_to_file),而不是多个目标文件。
周杰伦