The DPU can be configured with some predefined options, which includes the DPUCVDX8G architecture, the batch number, the compute unit number and UltraRAM usage. These options allow you to set the DSP slice, LUT, block RAM, and UltraRAM usage.
CPB_N
The CPB_N parameter represents the AI Engine number of each batch and decides the peak performance of the DPUCVDX8G. The CPB_N can have a value of 32 or 64. For example, when the CPB_N is 32, each batch handler in the DPUCVDX8G uses 32 AI Engines.
BATCH_N
The BATCH_N parameter determines the number of batch handlers integrated in the DPUCVDX8G IP. This parameter supports a range of values from 1 to 6 for C32, and 1 to 5 for C64. A higher batch handler number denotes a better performance as well as more AI Engines and PL resources, but also higher DDR IO bandwidth requirements. You can balance the performance, DDR IO, and resources according to your application.
CU_N
The CU_N parameter determines the number of compute units. This parameter supports a range of values from 1 to 3 for C32B1 and C64B1 only.
UBANK_IMG_N
There are two kinds of on-chip memory resources in Versal devices: block RAM and UltraRAM. Each block RAM has a capacity of 36 Kb and each UltraRAM has a capacity of 288 Kb. The number of available RAMs is device-dependent.
There are 16 IMG BANKs (128 KB per bank) in each DPUCVDX8G batch handler. Each IMG BANK can be composed of block RAM or UltraRAM. The parameter UBANK_IMG_N determines how many IMG BANKs are composed of UltraRAM. The remaining banks will be composed of block RAM. This parameter is designed to flexibly use the on-chip memory resources.
UBANK_WGT_N
There are 17 WGT BANKs (256 KB per bank) in the DPUCVDX8G irrespective of the number of batch handler. Each WGT BANK can be composed of block RAM or UltraRAM. The parameter UBANK_WGT_N determines how many WGT BANKs are composed of Ultra RAM. The remaining banks will be composed of block RAM. This parameter is designed to flexibly use the on-chip memory resources.
UBANK_BIAS
There are 2 BIAS BANKs (32 KB per bank) in DPUCVDX8G irrespective of the number of batch handlers. Each BIAS BANK can be composed of block RAM or UltraRAM. The parameter UBANK_BIAS determines whether BIAS BANKs are composed of Ultra RAM. This parameter is designed to flexibly use the on-chip memory resources.
Architecture | MAX URAM | MAX BRAM |
---|---|---|
CxxB1CU1 |
|
|
CxxB2CU1 |
|
|
CxxB3CU1 |
|
|
CxxB4CU1 |
|
|
CxxB5CU1 |
|
|
CxxB6CU1 |
|
|
LOAD_PARALLEL_IMG
The LOAD_PARALLEL_IMG indicates the level of parallelism of loading images for each DPUCVDX8G batch handler. Each parallelism uses one AXI4 interface for data transmission. Hence, the number of M_IMG_AXI ports of the DPUCVDX8G depends on the LOAD_PARALLEL_IMG. In this release, the supported value for this parameter is fixed to two. A higher parallelism means a larger throughput for loading an image and a larger bandwidth requirement, and therefore a higher PL resource usage.
SAVE_PARALLEL_IMG
The SAVE_PARALLEL_IMG indicates level of parallelism of saving images for each DPUCVDX8G batch handler. Each instance uses one AXI4 interface for data transmission. The save module uses the write channel of the AXI4 interface and the load module uses the read channel of the AXI4 interface.
In this release, the supported value for this parameter is fixed to two. A higher parallelism means a larger throughput for loading an image and a larger bandwidth requirement, and therefore a higher PL resource usage.