跳到主要内容

处理 TVM 报错

运行 TVM 时,可能会遇到如下报错:

---------------------------------------------------------------
An error occurred during the execution of TVM.
For more information, please see: https://tvm.apache.org/docs/errors.html
---------------------------------------------------------------

下面解释了这些错误消息是如何产生的,以及当错误发生时要怎么做。

这些错误从何而来?

这个错误是在 TVM 执行期间违反内部不变量引起的。从技术层面来看,消息是 ICHECK 宏(位于 include/tvm/runtime/logging.h 中)生成的,TVM 多处代码用到 ICHECK 宏来断言执行期间某个条件为真;一旦断言失败,TVM 都会退出,并显示如上错误消息。

有关 TVM 中错误是如何生成并处理的更多详细信息,参阅错误处理指南

遇到这种错误怎么办?

最好的做法是在 Apache TVM 论坛 中搜索遇到的错误,看看其他人是否遇到过,以及可能的解决方案。如果错误已经在 TVM 更新版本中进行了修复,你可以更新 TVM 的版本。

若论坛上没有相关帖子,欢迎在论坛上创建一个新帖子描述问题的详细信息。请在帖子中包含以下关键信息

  • 当前 TVM 版本(例如,源代码树的 git commit 的哈希值)。
  • TVM 运行的硬件和操作系统的版本。
  • TVM 编译的硬件设备和操作系统。
  • 用于重现此问题的信息,如模型、输入或其他信息。

如果没有这些信息,TVM 开发者很难给予你帮助。