Как обрабатывать ошибки во время выполнения в halide?

В случае компиляции с опережением времени, как я могу заставить Halide генерировать исключения, которые могут быть обработаны в более высоком стеке вызовов? Скажем, например, когда доступ к входному изображению осуществляется в неправильном месте.


person Ganesh Kumar M R    schedule 25.01.2017    source источник


Ответы (1)


Вы можете вызвать halide_set_error_handler, чтобы установить собственную процедуру обработки ошибок. (Или переопределить halide_error напрямую, если платформа поддерживает слабое связывание.) Ваш собственный обработчик ошибок может выдать исключение. Это не самая проверенная часть Halide, но мы намерены позволить подпрограмме обработки ошибок генерировать исключение, которое обрабатывается выше в стеке вызовов, чем вызов скомпилированного кода Halide. Все выделения памяти и т. д. должны быть освобождены с помощью деструкторов с областью видимости.

person Zalman Stern    schedule 25.01.2017