【TVM 教程】調試 TVM
Apache TVM 是一個深度的深度學習編譯框架,適用于 CPU、GPU 和各種機器學習加速芯片。更多 TVM 中文文檔可訪問 →https://tvm.hyper.ai/
注意:本章節內容持續更新中,歡迎各位提交 PR 不斷豐富。本文檔旨在集中分享調試 TVM 的常用方法,排列順序以使用頻率為依據。
VLOGging
TVM 提供了一個冗余信息的記錄工具,允許開發者在不影響運行中 TVM 二進制大小或 runtime 的同時,提交跟蹤級別的調試信息。在代碼中使用 VLOG:
void Foo(const std::string& bar) {
VLOG(2) << "Running Foo(" << bar << ")";
// ...
}
在這個例子中,傳遞給?VLOG()?的整數?2?表示冗余級別。級別越高,打印的日志就越多。一般來說,TVM 級別從 0 到 2,3 只用于極底層的核心運行時屬性。VLOG 系統在啟動時被配置為打印?0?到某個整數?N?之間的 VLOG 語句。N?可以按文件或全局來設置。
默認情況下(當采用適當的優化進行編譯時),VLOG 不會打印或影響二進制的大小或runtime。啟用 VLOGging,請執行以下操作:
-
在?
config/cmake?中,確保設置?set(USE_RELAY_DEBUG ON)。這個標志是用來啟用 VLOGging 的。 -
通過?
TVM_LOG_DEBUG=<spec>?啟動 Python,其中?<spec>>?是一個形式為?<file_name>=<level>?的以逗號分隔的級別賦值列表。尤其需要注意:- 特殊文件名?
DEFAULT?為所有文件設置 VLOG 級別。 <level>?可以被設置為?-1?來禁用該文件的 VLOG。<file_name>?是在 TVM 倉庫中相對于?src/?目錄的 c++ 源文件的名字(例如?.cc,而不是?.h)。您不需要在指定文無論在指定文件路徑時,是否提供?src/,VLOG 都可以正確解釋路徑。
- 特殊文件名?
贊
收藏
回復
分享
微博
QQ
微信
舉報
回復
相關推薦

















