2017-01-31 1 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

덕분에 당신은 파이프 라인을 컴파일하고 튜플을 사용하는 것보다 출력으로 파이프 라인에 개별 Funcs을 오히려 추가하는 경우, 결과 파라미터 수행해야

답변

1

파이프 라인에 추가 된 Funcs의 이름. 나는 이것을 테스트하지는 않았지만 그렇게 보입니다 : Halide::Pipeline pipeline({func1, func2, func3}); pipeline.compile_to(...);

파이프 라인은 출력이 다른 모양/치수를 가질 수 있다는 점에서보다 융통성이 있습니다.