## 3 Methodology
### Multi-GPU Cooperative Acceleration Strategy for SAR Image Matching in Large Area  
This research mainly focuses on the matching problem in the area mosaic of multiple SAR images in a large area, because SAR image matching requires processing all image pairs with overlapping areas to obtain connection matching points. As shown in Figure 1.  
Assuming there are N SAR images in total, the maximum processing times of image matching is \(C_{N}^{2}\), which is extremely time-consuming and takes up most of the processing time of the whole process, so it is necessary to design parallel algorithms. Although the GPU parallel acceleration is proposed in the previous section to process fast matching between a pair of SAR images, the following problems still exist in SAR image matching for large areas:  
1. Image matching requires a large number of cumulative calls. If a single GPU node is used for serial processing, assuming that the image matching time after GPU acceleration is T seconds, serial processing is required \(T\times C_{N}^{2}\) seconds, when the number of images (N) is large, the overall image matching time is longer. Therefore, how to reasonably allocate multiple GPU nodes to accelerate multiple image matching is a major problem. 2. In hundreds of SAR images, the imaging mode (bunching, stripe, etc. ), imaging angle (different incidence angles, lift rails), imaging resolution, and imaging width may be different, so SAR image matching \(C_{N}^{2}\) needs various GPU computation resources. If the memory of a single GPU node is exceeded, block processing is required. If it is much smaller than the memory of a single GPU node, it will cause a significant waste of GPU resources. Therefore, how to reasonably allocate GPU node memory is also a big problem. 3. The processing efficiency of SAR image matching is different for different ground objects. For example, for flat terrain areas, the similarity between SAR images is high, and the repetition rate of key point detection is also high, so key point matching can quickly retrieve the corresponding matching points, and the processing efficiency is high. For areas with topographic relief, since the SAR image is a side view image, the distortion and distortion introduced by topographic relief will significantly reduce the repetition rate of key points, so the key point search efficiency is also low, resulting in the overall processing efficiency being slow, as shown in Figure 2. Therefore, how to reasonably allocate GPU nodes according to the different matching efficiencies brought by different figure types is also a big problem. Figure 1: Large area SAR image mosaic overlay. To solve these problems, this paper proposes a multi-GPU cooperative strategy for multi-SAR image matching. 1. Standardized processing of image data to be matched based on upper limit of GPU node memory Generally, each GPU node has multiple GPU graphics cards, and the memory of each GPU graphics card is fixed. For example, the test node used in the experiment has two NVIDIA A100s, and each A100 has 40G memory. Therefore, it is necessary to standardize SAR images to be matched according to the memory upper limit (A100-40G) of a single video card. First, we need to calculate the video storage requirements for single-image matching. According to the analysis of the GPU acceleration of the SAR-SIFT algorithm in the first two sections, the size of the data that needs to be copied from the CPU to the GPU is \(sizeof(float)\times M\times N\) (\(M\times N\) is the size of the overlapping area of the image to be processed). In addition, the GPU needs to open up a new scale space for graphics memory, which is \(S\times sizeof(float)\times M\times N\) (\(S\) is the level series of the scale space), the graphics memory of key point coordinate information is \(K\times 2\times sizeof(Point2f)\), the graphics memory of key point feature descriptor is \(K\times 2\times sizeof(float)\times 136\), and the graphics memory of key point feature description sub distance of the metric is \(K\times K\times sizeof(float)\).