Random Accesses with RAMA IP - 2023.2 English

Vitis Tutorials: Hardware Acceleration (XD099)

Document ID
XD099
Release Date
2023-11-13
Version
2023.2 English

This step uses the same topologies as the previous step, but now you are using the RAMA IP to improve the overall bandwidth. This step will require the generation of new xclbins.

The HBM_connectivity.cfg file that is generated from the Makefile adds the RAMA IP to the config file syntax as described at Random Access and the RAMA IP. The HBM_connectivity.cfg file will look like the following example:

[connectivity]
sp=vadd_1.in1:HBM[0:31].1.RAMA
sp=vadd_1.in2:HBM[0:31].4.RAMA
sp=vadd_1.out:HBM[0:31].8.RAMA

To build all the xclbins, run the following target.

make build_with_rama # This command is already executed in the first module

  • If the machine does not have enough resources to launch six jobs in parallel, you can run the above command one by one, as shown below.

    make ramajob-64 ramajob-128 ramajob-256 ramajob-512 ramajob-1024 -j6

To run all the variations like in the previous step, you can also use the following Makefile target to build and run the application.

make all_hbm_rnd_rama_run

The above target will generate the output file <Project>/makefile/Run_RandomAddressRAMA.perf file with the following data.

Addr Pattern   Total Size(MB) Transaction Size(B)  Throughput Achieved(GB/s)

Random         256 (M0->PC0)             64                     4.75415
Random         256 (M0->PC0)             128                    9.59875
Random         256 (M0->PC0)             256                    12.6208
Random         256 (M0->PC0)             512                    13.1328
Random         256 (M0->PC0)             1024                   13.1261

Random         512 (M0->PC0_1)           64                     6.39976
Random         512 (M0->PC0_1)           128                    9.59946
Random         512 (M0->PC0_1)           256                    12.799
Random         512 (M0->PC0_1)           512                    13.9621
Random         512 (M0->PC0_1)           1024                   14.1694

Random         1024 (M0->PC0_3)          64                     6.39984
Random         1024 (M0->PC0_3)          128                    9.5997
Random         1024 (M0->PC0_3)          256                    12.7994
Random         1024 (M0->PC0_3)          512                    13.7546
Random         1024 (M0->PC0_3)          1024                   14.0694

The top five rows show the point to point accesses, i.e., 256 MB accesses, with a transaction size variation. The bandwidth achieved is very similar to the previous step without the RAMA IP. The next ten rows with access to 512 MB and 1024 MB respectively show a significant increase in achieved bandwidth compared to the previous step when configuration did not utilize the RAMA IP.