如果您是命令行用户,则需手动创建 xrt.ini 文件并将其保存至主机可执行文件所在的目录。
该运行时库会检查主机可执行文件中是否存在 xrt.ini 并自动读取该文件来配置运行时。您还可以通过将 XRT_INI_PATH
环境变量设置为指向文件,以在运行时指定 xrt.ini 文件的位置,例如:
export XRT_INI_PATH=/path/to/xrt.ini
运行时初始化文件格式
xrt.ini 文件是简单的文本文件,其中包含多组键和键值。以分号 (;) 或井号 (#) 开头的任何行都是注释。组名、键和键值都区分大小写。
以下是 xrt.ini 文件示例,此文件支持时间线轨迹功能,并且指示在Console(控制台)视图上显示运行时 log 日志消息。
#Start of Debug group
[Debug]
native_xrt_trace = true
device_trace = fine
#Start of Runtime group
[Runtime]
runtime_log = console
其中有 3 组初始化键:
- 运行时
- 调试
- 仿真
下表列出了每个组的所有受支持的键、每个键支持的值以及键用途的简短描述。
运行时组
开关的运行时组允许您配置运行时操作的元素,如下所述。
键 | 有效值 | 描述 |
---|---|---|
api_checks
|
[true|false]
|
启用或禁用 OpenCL API 检查。
|
cpu_affinity
|
{N,N,...}
|
将所有运行时线程固定到指定的 CPU。示例:
|
exclusive_cu_context
|
[true|false]
|
这样即可允许主机应用指示 OpenCL 获取专属 CU 访问,以便低层次 AXI 读写(xclRegRead 和 xclRegWrite)可供常规内核使用。 |
runtime_log
|
[null | console | syslog |
<filename>]
|
指定运行时 log 日志的打印位置
|
verbosity
|
[0 | 1 | 2 | 3]
|
log 日志文件的详细程度。默认值为 0。 |
调试组
开关的调试组用于定义键的选项,以便在运行时期间启用应用剖析,或者追踪数据传输与执行。这些开关适用于 Vitis 加速流程中的 AI 引擎和 PL 内核,并且允许您配置运行时的方方面面,以便控制数据捕获频率、要捕获的事件以及要保留或用于记录追踪和剖析数据的存储器量。
键 | 有效值 | 描述 |
---|---|---|
aie_profile
|
[true|false]
|
启用 AI 引擎硬件性能计数器的运行时配置和轮询。仅在运行 VCK190 硬件时才可用。
|
aie_profile_core_metrics
|
[heat_map|stalls|execution|floating_point|write_bandwidths|read_bandwidths|aie_trace]
|
控制从 AI 引擎核性能计数器读取的统计数据的配置。
注释: 仅当
aie_profile = true 时,此开关才有效。 |
aie_profile_interface_metrics
|
[bandwidths|stalls_idle]
|
控制从 AI 引擎接口拼块性能计数器读取的统计数据的配置
|
aie_profile_interval_us
|
<int>
|
控制读取 AI 引擎计数器值的时间间隔(以微秒 (µs) 为单位)。默认时间间隔为 1000 µs。 注释: 仅当
aie_profile = true 时,此开关才有效。 |
aie_profile_memory_metrics
|
[conflicts|dma_locks|dma_stalls_s2mm|dma_stalls_mm2s|write_bandwidths|read_bandwidths]
|
控制从 AI 引擎存储器性能计数器读取的统计数据的配置
注释: 仅当
aie_profile = true 时,此开关才有效。 |
aie_status
|
[true|false]
|
启用 AI 引擎状态信息的轮询。仅在运行 VCK190 硬件时才可用。 |
aie_status_interval_us
|
整数(默认值 = 1000us) | 控制捕获 AI 引擎状态信息的时间间隔。以微秒为单位来指定。 |
aie_trace
|
[true|false]
|
启用 AI 引擎事件追踪的运行时配置和收集。仅在运行 VCK190 硬件时才可用。
|
aie_trace_buffer_offload_interval_ms
|
整数(默认值 = 10ms) | 读取从器件到主机存储器的 PLIO 模式 AI 引擎追踪的时间间隔(以毫秒为单位)。 |
aie_trace_buffer_size
|
<string>
(default=8M)
|
控制为 AI 引擎事件追踪分配的缓冲器的总大小。此大小最终将根据 AI 引擎输出的不同追踪串流的数量进行分区。默认值为 8M。 注释: 仅当
aie_trace = true 时,此开关才有效。 |
aie_trace_file_dump_interval_s
|
整数(默认值 = 5s) | 原始 AI 引擎追踪数据写入(追加到)输出文件的时间间隔(以秒为单位)。 |
aie_trace_metrics
|
[functions|functions_partial_stalls| function_all_stalls]
|
控制 AI 引擎寄存器的配置,以生成指定级别的事件追踪。 注释: 仅当
aie_trace = true 时,此开关才有效。 |
aie_trace_periodic_offload
|
true/false(默认值 = true) | 启用 PLIO 模式 AI 引擎追踪的连续卸载。在生成的 AI 引擎追踪输出文件(每条串流一个文件)中追加新追踪数据。 |
aie_trace_start_time
|
字符串(例如,<N>[ns|us|ms|s],默认值 = 0) | 按 AI 引擎时钟周期或时间(s、ms、us 或 ns)指定启动追踪的延迟,例如,100、20.3ms 或 16.1us |
键 | 有效值 | 描述 |
---|---|---|
app_debug
|
[true|false]
|
使用 GDB 进行调试时,针对主机代码启用 OpenCL 应用调试。
|
continuous_trace
|
[true|false]
|
启用将器件数据的追踪和连续读取对应的文件连续转储到主机中。
注释: 仅当启用
device_trace 时,此开关才有效。 |
device_counters
|
[true|false]
|
仅启用器件计数器卸载,不启用追踪功能。 |
device_trace
|
[off|fine|coarse|accel]
|
启用从 PL 上插入的监控器收集数据,以添加至汇总数据和轨迹。
|
host_trace
|
[true|false]
|
基于遇到的第一条协议,启用主机代码追踪。 提示: 如果您的主机应用使用 OpenCL 和 XRT 本机 API,则应手动指定
opencl_trace 和 native_xrt_trace 来捕获所有事件。 |
lop_trace
|
[true|false]
|
启用低开销 OpenCL API 主机追踪的生成。不应配合其它 OpenCL 选项一起使用。
|
native_xrt_trace
|
[true|false]
|
启用原生 C/C++ API 追踪的生成。这也会在“Profile Summary”(剖析汇总)中生成“Host Data Transfer from/to Global memory”(出入全局存储器的主机数据传输)表。
|
opencl_trace
|
[true|false]
|
启用 OpenCL API 主机追踪的生成。
|
pl_deadlock_detection
|
[true|false]
|
为 PL 内核启用死锁检测。 |
power_profile
|
[true|false]
|
在应用执行期间,启用功耗数据的轮询。
注释: 在某些平台(包括 AWS)上不支持此功能。
|
power_profile_interval_ms
|
<int>(default=20)
|
控制读取功耗计数器的时间间隔(以毫秒为单位)。默认时间间隔为 20 ms。 注释: 仅当
power_profile = true 时,此开关才有效。 |
profile_api
|
[true|false]
|
支持直接从主机应用访问 HAL API,以在执行期间读取器件剖析监控器上的计数器。
|
stall_trace
|
[off|all|dataflow|memory|pipe]
|
指定时间线轨迹内要捕获和报告的器件侧停滞类型。默认设置为关 (off)。
注释: 仅当启用
device_trace 时,此开关才有效。 |
trace_buffer_offload_interval_ms
|
<int>
|
控制从器件到主机的器件数据读取(以毫秒 (ms) 为单位)。默认值为 10 ms。 注释: 仅当启用
device_trace 时,此开关才有效。 |
trace_buffer_size
|
<string>
|
如果创建的 .xclbin 中已指定追踪的存储器卸载方案(如 --profile 选项 中所述),则此开关可确定在存储器中要分配用于捕获追踪数据的缓冲器大小。默认值为 1M。 注释: 仅当启用
device_trace 时,此开关才有效。 |
trace_file_dump_interval_s
|
<int>
|
控制追踪文件转储的时间间隔(以秒 (s) 为单位)。默认值为 5s。 注释: 仅当启用
device_trace 时,此开关才有效。 |
vitis_ai_profile
|
[true|false]
|
剖析汇总和其它文件来自 Vitis AI 应用层。
|
xocl_debug
|
[true|false]
|
启用时,生成 xocl.log 文件。 同时启用任意追踪选项时,调试 log 日志已添加到 xrt.run_summary 中,以供在 Vitis 分析器内查看。 |
xrt_trace
|
[true|false]
|
支持在硬件运行期间生成低级硬件 shim 函数追踪。这将在搭配 native_xrt_trace 一起使用时禁用。
|
仿真组
开关的仿真组适用于仿真环境和 Vivado 仿真器。
键 | 有效值 | 描述 |
---|---|---|
aliveness_message_interval
|
任何整数 | 指定需要打印活动消息的时间间隔(以秒为单位)。默认值为 300。 |
debug_mode
|
[off|batch|gui]
|
指定在仿真 (emulation) 期间如何保存和显示波形。
注释: 内核需要在调试启用 (
v++ -g ) 的情况下进行编译,以便保存波形并在仿真器 GUI 中显示。 |
kernel-dbg
|
[true|false]
|
在软件仿真期间启用内核调试功能,如 命令行调试流程 中所述。
|
print_infos_in_console
|
[true|false]
|
控制将仿真 (emulation) 参考消息打印到用户控制台的行为。仿真参考消息始终记录到名为 emulation_debug.log 的文件中
|
print_warnings_in_console
|
[true|false]
|
控制将仿真 (emulation) 警告消息打印到用户控制台的行为。仿真警告消息始终记录到名为 emulation_debug.log 的文件中。
|
print_errors_in_console
|
[true|false]
|
控制在用户控制台中打印仿真错误消息的行为。仿真错误消息始终记录到 emulation_debug.log 文件中。
|
user_pre_sim_script
|
Tcl 文件路径 | 首次运行时,以 GUI 模式运行仿真 (simulation)。添加要添加的信号。将命令从 Tcl 控制台复制并保存到 Tcl 脚本中。 对于下一次运行,以批处理模式传递此 Tcl 脚本。 |
user_post_sim_script
|
Tcl 文件路径 | 任何转发操作均可在 Tcl 中指定并传递给开关。Tcl 中提供的所有命令都在仿真 (simulation) 完成后执行。 |
xtlm_aximm_log
|
[true|false]
|
在运行时启用 XTLM AXI4 存储器映射传输事务 log 日志记录,您可在 xsc_report.log 文件中看到所有传输事务。 |
xtlm_axis_log
|
[true|false]
|
在运行时启用 XTLM AXI4-Stream 传输事务 log 日志记录,您可在 xsc_report.log 文件中看到所有传输事务。 |
timeout_scale
|
na/ms/sec/min
|
针对仿真 (emulation) 中的 clPollStream API 的超时支持。为 clPollStream API 中指定的超时提供刻度。代码中指定的超时是以毫秒 (ms) 为单位来指定的,可能对于仿真 (emulation) 无效。因此,请使用 timeout_scale 将 ms 映射到其它刻度,以满足仿真 (emulation) 所需。 重要: 默认情况下,在仿真 (emulation) 中不启用超时。该选项可用于启用
clPollStream 超时。 |