## 2 Related Works  
In autonomous vehicle navigation systems, SLAM is a method used to generate map awareness of the vehicle. It is mainly used to know or locate the position of the vehicle body (i.e., similar to odometry) based on an environmental scan comparison with the generated map. Unlike odometry algorithms which use motion sensors (e.g., encoders, IMUs, etc.) to estimate pose, SLAM reduces or eliminates the drift issue seen in odometry. Drift error is an accumulation of small computational errors due to sensor accuracy specifications, electrical noises, temperature, etc., which when summed in odometry pose estimation can result in a linear increase of pose error based on travel distance. SLAM solves or reduces drift error of pose estimation by using an optimization technique using map data. This requires sensors which are able to sense the environment and object distances such as LiDAR or three-dimensional (3D) camera and sometimes additional sensors such as IMU encoders are needed [2; 3]. The map is generated through the accumulation of scan data by this sensor during vehicle motion. Some of the SLAM methods also require odometry sensors such as IMU or wheel speed to provide better pose estimation accuracy. When the SLAM recognizes previously visited areas by comparing the environment with the map, it triggers pose correction to eliminate or reduce the drift error. Figure 1 illustrates the SLAM framework used in this work. Although the SLAM method provides improved pose calculation for autonomous vehicles by recognizing previously recorded areas, there are still some issues that need to be addressed, for example, creating a real-time process in SLAM for mapping has some computation problems related to reduced performance due to the use of a scan matcher. A scan matcher is used to perform two different tasks. On the one hand, one task is the initial pose estimation, and on the other hand, a second task is the pose correction. The initial pose estimation compares the previous step of sensor scans of LiDAR or camera against current scan data. Thus, the disparity residual of current scan data versus the previous scan data in each step is used to estimate vehicle motion for the initial pose, similar to the odometry method. Over time, it eventually drifts due to the accumulation of error. The drift error is then corrected using the latter method, which is a scan matcher against the overall map. The process records the map by accumulating scan data in every step of vehicle motion. Using a larger scale scan matcher, unlike the former task, it compares the current scan with the whole map globally. When the scan matcher finds similarity above a certain threshold on the global map, the position of the scan and vehicle when drifting are aligned to a recognized area, and thus a pose correction scenario is created. A small map runs fast enough with SLAM, however, overtime it will become cumbersome as the map grows larger during SLAM's map creation. As the map size becomes larger, it consumes more memory capacity and the scan matching performance becomes slower [4; 5; 6]. Some improvements have been introduced to improve computational performance. In [7; 8; 9; 10; 11], there are some SLAM methods that use specialized computer hardware for parallel programming, for example, a graphic processing unit (GPU). The GPU is much faster than the central processing unit (CPU) for processing a large dimension of matrix arrays or parallel executions. Map data in SLAM are similar to a multimedia image which  
Figure 1: Simultaneous localization and mapping (SLAM) framework. consists of a pixel in a multidimensional large array format. Meanwhile, the scan matcher also involves repetitive calculations to process the array data in various rotations and translations until similarity is found above a certain threshold. Thus, this kind of parallel computation is suitable to offload the workload through GPU.