The nk
switch specifies the number of kernel instances or compute units (CUs) the v++
command adds to the device binary (XCLBIN). It specifies the kernel name, the number of instances (or CUs) of that kernel, and the CU name for each instance. For example, the first set of kernel instances is as follows:
#PL Kernel Instances for Downlink Subgraph 0
nk=dlbf_data:1:dlbf_data_00
nk=dlbf_coeffs:8:dlbf_coeffs_00.dlbf_coeffs_01.dlbf_coeffs_02.dlbf_coeffs_03.dlbf_coeffs_04.dlbf_coeffs_05.dlbf_coeffs_06.dlbf_coeffs_07
nk=dlbf_slave:8:dlbf_o00.dlbf_o01.dlbf_o02.dlbf_o03.dlbf_o04.dlbf_o05.dlbf_o06.dlbf_o07
The first line specifies there is one dlbf_data
PL kernel named dlbf_data_00
. The second line specifies there are eight dlbf_coeffs
PL kernels named dlbf_coeffs_00 ... dlbf_coeffs_07
. The last line specifies that there are eight dlbf_slave
PL kernels named dlbf_o00 ... dlbd_o07
. The config.ini
file repeats this three times because there are three instances of the downlink subgraph.
The config.ini file also repeats this connection scheme for the ULBF PL kernels:
#PL Kernel Instances for Uplink Subgraph 0
nk=ulbf_data:1:ulbf_data_00
nk=ulbf_coeffs:4:ulbf_coeffs_00.ulbf_coeffs_01.ulbf_coeffs_02.ulbf_coeffs_03
nk=ulbf_slave:4:ulbf_o00.ulbf_o01.ulbf_o02.ulbf_o03
The config.ini
file repeats this three times because there are three instances of the uplink subgraph. Each uplink subgraph requires one ulbf_data
kernel, four ulbf_coeff
kernels, and four ulbf_slave
kernels.