• 文件 >
  • 先決條件 | ETDump - ExecuTorch Dump
捷徑

先決條件 | ETDump - ExecuTorch Dump

ETDump (ExecuTorch Dump) 是 ExecuTorch 開發者工具的核心組件之一。它是從運行時提取所有形式的性能分析和除錯資料的機制。使用者不能直接解析 ETDump;相反地,他們應該將其傳遞到 Inspector API 中,該 API 會反序列化資料,並提供介面以進行靈活的分析和除錯。

產生 ETDump

產生 ETDump 是一個相對簡單的過程。使用者可以按照下面詳述的步驟,將其整合到使用 ExecuTorch 的應用程式中。

  1. 包含 ETDump 標頭檔於您的程式碼中。

#include <executorch/devtools/etdump/etdump_flatcc.h>
  1. 建立 ETDumpGen 類別的實例,並將其傳遞到運行時中調用的 load_method 呼叫中。

executorch::etdump::ETDumpGen etdump_gen;
Result<Method> method =
      program->load_method(method_name, &memory_manager, &etdump_gen);
  1. 傾印出 ETDump 緩衝區 - 在推論迭代完成後,使用者可以傾印出 ETDump 緩衝區。如果使用者在具有檔案系統的裝置上,他們可以直接將其寫入檔案系統。對於更受限制的嵌入式裝置,使用者將必須透過最適合他們的方式(例如 UART、JTAG 等)從裝置提取 ETDump 緩衝區。

etdump_result result = etdump_gen.get_etdump_data();
if (result.buf != nullptr && result.size > 0) {
    // On a device with a file system users can just write it out
    // to the file-system.
    FILE* f = fopen(FLAGS_etdump_path.c_str(), "w+");
    fwrite((uint8_t*)result.buf, 1, result.size, f);
    fclose(f);
    free(result.buf);
  }
  1. 編譯 您的二進位檔,使用帶有 ET_EVENT_TRACER_ENABLED 預處理器旗標的 CMake,以啟用事件追蹤並記錄到 ExecuTorch 運行時內的 ETDump 中。此旗標需要新增到 ExecuTorch 函式庫以及您正在編譯到二進位檔中的任何運算子函式庫。 作為參考,您可以查看 examples/sdk/CMakeLists.txt。 感興趣的行是

target_compile_options(executorch INTERFACE -DET_EVENT_TRACER_ENABLED)
target_compile_options(portable_ops_lib INTERFACE -DET_EVENT_TRACER_ENABLED)

使用 ETDump

將此 ETDump 傳遞到 Inspector API 以存取此資料並進行運行後分析。

文件

取得 PyTorch 的全面開發者文件

檢視文件

教學課程

取得初學者和進階開發者的深度教學

檢視教學

資源

尋找開發資源並獲得您的問題解答

檢視資源