# Introduction of L3 APIs¶

2D-RTM L3 APIs are provided to allow users to experiment the shot parallelism, that is simultaneously running the backward propagation path in the previous shot and the forward propagation path in the current shot. Figure 1 shows the details of the shot parallelism and how it’s used to improve the system throughput.

Figure 1. 2D-RTM shot parallelism implemented by L3 APIs

The detailed implementation of shot parallelism can be found in the execute defined in L3/tests/rtm/main.cpp, which also provies an usage example of 2D-RTM L3 APIs. The execute function depends on a set of other L3 APIs defined by class FPGA. More detailed information about FPGA class can be found in L3/include/sw/fpga_xrt.hpp