如何使用CodeGen_LLVM调试卤化物内部错误

如何使用CodeGen_LLVM调试卤化物内部错误,llvm,halide,Llvm,Halide,我很难找到JIT编译的带有卤化物的管道报告的错误消息的来源 日志消息为: Internal Error at Halide-release_2019_08_27/halide/src/CodeGen_LLVM.cpp:2815 triggered by user code at : Condition failed: append_string: 以下行中的LLVM_代码为: llvm::Function *append_string = module->getFunction(&qu

我很难找到JIT编译的带有卤化物的管道报告的错误消息的来源

日志消息为:

Internal Error at Halide-release_2019_08_27/halide/src/CodeGen_LLVM.cpp:2815 triggered by user code at :
Condition failed: append_string:
以下行中的LLVM_代码为:

llvm::Function *append_string  = module->getFunction("halide_string_to_string");
internal_assert(append_string);
我正在Ubuntu 18.04上使用2019年8月27日发布的halide版本

管道运行时没有任何错误,直到有人想使用Halide::print()进行调试。 我已经检查了一个小的测试管道,打印出来的东西似乎能正常工作

我现在的问题是在一个非常复杂的管道中找到我们的bug。谁能解释一下这个bug的来源,以及我需要在代码中签入什么来解决这个问题


提前感谢。

这意味着在运行时找不到函数“halide_string_to_string”,这对于CPU目标来说是非常奇怪的。Hrm,我想知道你是想在GPU或DSP上预定的Func中使用print?我可以很容易地想象它会被破坏。

这意味着在运行时找不到函数“halide_string_to_string”,这对于CPU目标来说是非常奇怪的。Hrm,我想知道你是想在GPU或DSP上预定的Func中使用print?我可以很容易地想象它被打破了。

谢谢。太快了。我们在GPU上做时间表。切换到CPU解决了这个问题。谢谢。太快了。我们在GPU上做时间表。切换到CPU解决了这个问题。