В случае компиляции с опережением времени, как я могу заставить Halide генерировать исключения, которые могут быть обработаны в более высоком стеке вызовов? Скажем, например, когда доступ к входному изображению осуществляется в неправильном месте.
Как обрабатывать ошибки во время выполнения в halide?
Ответы (1)
Вы можете вызвать halide_set_error_handler, чтобы установить собственную процедуру обработки ошибок. (Или переопределить halide_error напрямую, если платформа поддерживает слабое связывание.) Ваш собственный обработчик ошибок может выдать исключение. Это не самая проверенная часть Halide, но мы намерены позволить подпрограмме обработки ошибок генерировать исключение, которое обрабатывается выше в стеке вызовов, чем вызов скомпилированного кода Halide. Все выделения памяти и т. д. должны быть освобождены с помощью деструкторов с областью видимости.
person
Zalman Stern
schedule
25.01.2017