TVM VLOG列印

牛犁heart發表於2024-04-06

TVM 提供了詳細日誌記錄功能,允許提交跟蹤級別的除錯訊息,而不會影響生產中 TVM 的二進位制大小或執行時。你可以在你的程式碼中使用 VLOG 如下:

void Foo(const std::string& bar) {
  VLOG(2) << "Running Foo(" << bar << ")";
  // ...
}

在本例中,傳遞給 VLOG() 的整數 2 表示 verbosity 級別。級別越高,列印的日誌越多。通常,TVM 級別從 0 到 2 不等,3 只用於極低階的核心執行時屬性。VLOG 系統在啟動時被配置為列印 0 到整數 N 之間的 VLOG 語句。 N 可以每個檔案設定或全域性設定。

VLOG 預設不列印或影響二進位制大小或執行時間(當編譯時使用適當的最佳化)。要啟用 VLOGging,請執行以下操作:

  1. 在/build/config.cmake中,確保設定 set(USE_RELAY_DEBUG ON)。該標誌用於啟用 VLOGging。
  2. 啟動 Python 傳遞** TVM_LOG_DEBUG=**,其中 > 是逗號分隔的級別賦值列表,格式為 <file_name>=;特別地:
  • 特殊的檔名 DEFAULT 設定所有檔案的 VLOG 級別設定。
  • > 可以設定為 -1 來禁用 VLOG。
  • <file_name> 是相對於 TVM repo 中的 src/ 目錄的 C++ 原始檔的名稱(例如 .cc,而不是 .h)。在指定檔案路徑時,您不需要提供 src/,但是如果您這樣做了,VLOG 仍然會正確地解釋該路徑。

示例:

# enable VLOG(0), VLOG(1), VLOG(2) in all files.
$ TVM_LOG_DEBUG=DEFAULT=2 python3 -c 'import tvm'

# enable VLOG(0), VLOG(1), VLOG(2) in all files, except not VLOG(2) in src/bar/baz.cc.
$ TVM_LOG_DEBUG=DEFAULT=2,bar/baz.cc=1 python3 -c 'import tvm'

# enable VLOG(0), VLOG(1), VLOG(2) in all files, except not in src/foo/bar.cc.
$ TVM_LOG_DEBUG=DEFAULT=2,src/foo/bar.cc=-1 python3 -c 'import tvm'

另:可參考除錯TVM:在Python與C++混合程式設計中啟動除錯部落格,搭建TVM除錯環境,親試有效,對學習TVM很有幫助,給博主點贊

參考:https://daobook.github.io/tvm/docs/dev/how_to/debugging_tvm.html

相關文章