## 3 Proposed Architecture
### Target Tracking Using Multiple State-Space Models  
The KF and PF, which can be used for tracking the position of a target have system state equations based on Markov chains. In other words, if the target moves differently from the predefined system state equation, the estimation result in inaccurate. Therefore, in this paper, we define several other system state equations that are expected and go through them like the current system state equations. This proposed structure also can be used for multiple target tracking using multiple system models. From each multiple state update model, we obtain a measured value. Then the measured values are compared with actual measured values, and particles that have measured values with the smallest differences are selected for the remaining PF process. Using proposed method, tracking of sudden movements of a target can be easily enabled using multiple system state equations based on GPU. The operation of the GPU-based PF using the proposed system state equations is shown in Figure 6. The process of updating the state of each particle by multiple system state equations is performed in parallel using the kernel function in the GPU. For all particles obtained from the multiple state-space model, the state update process, weight calculation, and normalized process are performed in parallel. To obtain the particles of the state-space model suitable for the current system state, the predicted measured values are compared with actual measured values by finding the smallest difference. Then the particles with the smallest differences are selected and resampled. In our implementation, we use systematic resampling algorithm [25; 26] in which the random number generation is required in resampling process. There is a study [27] to accelerate resampling in GPU-based PF. In our study, for reducing the additional overhead running random number calculation during the resampling process, we utilized thread-based running method, which is provided by host CPU, in the process of copying data to the GPU. Algorithm 3 describes the PF processing using multiple state-space models in GPU. The transition matrix \(A_{m}\) is used to formulate multiple state-space models. The PF processing for the selected state-space model is performed in the individual block unit of GPU. This block runs the threads on which the corresponding particles are allocated. Through the synchronization between threads, the average measurement result can be estimated from the updated state, so that we could determine the appropriate state-space model, then continue to perform the remained PF processing incrementally. Figure 6: PF using multiple state-space models in GPU. ```
1:Set initial state \(s_{0}^{nn}\)\((m=1,2,...,L)\)
2:Generate particles \(s_{0(l)}^{nn}\)\((i=1,2,...,N)\), \((m=1,2,...,L)\)
3:Set initial weights \(W_{0(i)}^{nn}=1/N\)\((i=1,2,...,N)\), \((m=1,2,...,L)\)
4:for\(k=1,2,3,...,\;\;i\leftarrow\;\) calculated by thread index, \(m\leftarrow\;\) calculated by block index
5:\(s_{k(l)}^{nn}=A_{n}s_{k-1(i)}^{nn}+p_{k}^{nn}(i=1,2,...N)\)
6:\(z=TDOA\) measurement values
7:\(\_\)\(\_\)\(\_\)\(\_\)\(\_\)\(



Figure 9b shows the partial execution time of the algorithm in TDOA measurement calculation, PF processing, and copying data to GPU in the proposed multiple state-space model based algorithm. As with the result in Figure 9a, the total execution time of the algorithm is increased as the number of particles increased. Also, we found out that the total execution time is shorter than that of the CPU based algorithm, even though the time required to copy data for executing the algorithm in GPU is included. We compared the execution time of the proposed GPU-based algorithm and the CPU-based algorithm according to the sampling rate of input data when using 2000 particles. The GPU algorithm used for this experiment is a simple GPU-based PF algorithm, not using a multiple state-space model based GPU PF algorithm for accurate comparison with the CPU-based algorithm.