2017-01-31 16 views
0

私は次のようなAhead of Timeコンパイル関数を生成するGeneratorを持っているとします。オブジェクトファイルとヘッダにコンパイルした後関数(タプル)の複数の出力に名前を付けるにはどうすればよいですか?

Halide::Func build(){ 
    Halide::Func func1("func1"), func2("func2"), func3("func3"); 
    Halide::Func result("result"); 
    func1(x,y) = input(x,y) * 3; func2(x,y) = y; func3(x,y) = x + y; 
    result(x,y) = Halide::Tuple({func1(x,y), func2(x,y), func3(x,y)}); 
    return result; 
} 

、発電機の署名は以下のようになります。

int myFunction(buffer_t * input, buffer_t * result_0_buffer, buffer_t * result_1_buffer, buffer_t * result_2_buffer); 

どのように私はMyFunctionのの出力引数の名前を変更することができますか?

result_0_buffer => func1

result_1_buffer => func2

result_2_buffer => func3

おかげ

答えて

1

あなたがパイプラインをコンパイルし、むしろタプルを使用するよりも出力としてパイプラインに個々のfuncsを追加した場合、結果パラメータがとるべきパイプラインに追加されたFuncの名前。私はこれをテストしていませんが、そのように見えます: Halide::Pipeline pipeline({func1, func2, func3}); pipeline.compile_to(...);

パイプラインは出力がさまざまな形や寸法を持つことができるという点でより柔軟です。

関連する問題