2016-10-16 5 views
1

C++ 코드의 일부인 스텐실 계산에 Halide를 사용하려고합니다. C++로 정의 된 데이터 구조를 가리키는 버퍼를 사용합니다. 내 코드 실행 시간을 원한다. 그래서 AOT 컴파일을 사용하여 컴파일 시간이 아니라 실행 만 시간을 할애 할려고한다. AOT 컴파일을 사용할 때 입력에 대한 인수 형식의 벡터를 선언 할 때 버퍼를 사용할 수있는 방법이 있습니까? 그렇지 않은 경우 Halide를 사용할 때 실행 시간을 조정하는 다른 방법이 있습니까?Halide AOT 컴파일

답변

1

AOT 컴파일 코드로 버퍼를 사용할 수 있습니다. 인수 벡터에 넣으면 생성 된 함수의 인수가됩니다. 만약 당신이 그들을 밖으로두고 생성 된 개체 파일에 상수 배열로 포함 된 가져옵니다. 여기에 AOT 컴파일에 대한 자습서는 다음과 같습니다

http://halide-lang.org/tutorials/tutorial_lesson_10_aot_compilation_generate.html http://halide-lang.org/tutorials/tutorial_lesson_10_aot_compilation_run.html

+0

나는이 튜토리얼을 따라 가고있다. 내가 AOT 컴파일을위한 인수로 버퍼를 사용한다면 궁금합니다. 어떻게 크기를 지정합니까? 내가 사용할 때 내가 작업 할 크기를 전달하고 입력 버퍼가 사용될 때 (튜토리얼 에서처럼) 확장을 설정한다. AOT 코드 용 버퍼는 어떻게 작동합니까? 감사합니다 앤드류 –

0

은 "compile_jit"방법은 컴파일이 발생하게하기 위해 파이프 라인에 호출 할 수 있습니다. 그런 다음 동일한 Func을 "실현"또는 "평가"하는 방법과 시간을 통해 호출 할 수 있습니다. 이렇게하면 JIT를 사용하는 동안 컴파일 시간과 실행 시간이 분리됩니다. 어쨌든 응용 프로그램에서 AOT를 사용하려는 경우 AOT가 좋지만 compile_jit 기술은 JIT를 사용하여 테스트 또는 간단한 벤치 마크 작업을하는 경우에 유용합니다.

(타이밍 루프에서 호스트/GPU 버퍼 전송을 분리하는 데 몇 가지 다른 문제가 있지만 GPU 실행이 타이밍 루프와 비동기가 아닌지 확인해야합니다. 여기에 관련이 있다고 생각하십시오.)

관련 문제