kernelinfo Utility

The kernelinfo utility extracts and displays information from .o files which can be used during host code development. This information includes hardware function names, arguments, offsets, and port data.

The following command options are available:

Table 1. kernalinfo Commands
Option Description
-h [ --help ] Print help message.
-x [ --xo_path ] <arg> Absolute path to O file including file name and .xo extension
-l [ --log ] <arg> By default, information is displayed on the screen. Otherwise, you can use the --log option to output the information as a file.
-j [ --json ] Output the file in JSON format.
[input_file] XO file. Specify the XO file positionally or use the --xo_path option.
[output_file] Output from Xilinx OpenCL™ Compiler. Specify the output file positionally, or use the --log option.

To run the kernelinfo utility, enter the following in a Linux terminal:

kernelinfo <filename.o>

The output is divided into three sections:

  • Kernel Definitions
  • Arguments
  • Ports

The report generated by the following command is reviewed to help better understand the report content. Note that the report is broken down into specific sections for better understandability.

kernelinfo krnl_vadd.o

Where krnl_vadd.o is a packaged kernel.

Kernel Definition

Reports high-level kernel definition information. Importantly, for the host code development, the kernel name is given in the name field. In this example, the kernel name is krnl_vadd.

=== Kernel Definition ===
name: krnl_vadd
language: c
vlnv: xilinx.com:hls:krnl_vadd:1.0
preferredWorkGroupSizeMultiple: 1
workGroupSize: 1
debug: true
containsDebugDir: 1
sourceFile: krnl_vadd/cpu_sources/krnl_vadd.cpp

Arguments

Reports kernel function arguments.

In the following example, there are four arguments: a, b, c, and n_elements.

=== Arg ===
name: a
addressQualifier: 1
id: 0
port: M_AXI_GMEM
size: 0x8
offset: 0x10
hostOffset: 0x0
hostSize: 0x8
type: int*

=== Arg ===
name: b
addressQualifier: 1
id: 1
port: M_AXI_GMEM
size: 0x8
offset: 0x1C
hostOffset: 0x0
hostSize: 0x8
type: int*

=== Arg ===
name: c
addressQualifier: 1
id: 2
port: M_AXI_GMEM1
size: 0x8
offset: 0x28
hostOffset: 0x0
hostSize: 0x8
type: int*

=== Arg ===
name: n_elements
addressQualifier: 0
id: 3
port: S_AXI_CONTROL
size: 0x4
offset: 0x34
hostOffset: 0x0
hostSize: 0x4
type: int const 

Ports

Reports the memory and control ports used by the kernel.

=== Port ===
name: M_AXI_GMEM
mode: master
range: 0xFFFFFFFF
dataWidth: 32
portType: addressable
base: 0x0

=== Port ===
name: M_AXI_GMEM1
mode: master
range: 0xFFFFFFFF
dataWidth: 32
portType: addressable
base: 0x0

=== Port ===
name: S_AXI_CONTROL
mode: slave
range: 0x1000
dataWidth: 32
portType: addressable
base: 0x0