• 文件 >
  • 先決條件 | ETDump - ExecuTorch Dump
快捷方式

先決條件 | ETDump - ExecuTorch Dump

ETDump (ExecuTorch Dump) 是 ExecuTorch 開發者工具的核心元件之一。它是從執行時提取所有形式的效能分析和除錯資料的機制。使用者不能直接解析 ETDump;相反,他們應該將其傳遞給 Inspector API,Inspector 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. 編譯 您的二進位制檔案時,使用 CMake 並加上 ET_EVENT_TRACER_ENABLED 預處理器標誌,以在 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 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源