# GPU Accelerated PIC and SIC for OFDM-NOMA
## 4 Numerical Results and Discussion  
In this section, first we discuss the BER performances of PIC and SIC and then present their implementation on GPU. Single-cell NOMA with different numbers of active users was considered. The \(K\) users were distributed in the coverage area of the base station such that \(|\alpha_{1}|^{2}>|\alpha_{2}|^{2}>...>|\alpha_{K}|^{2}\). The user locations were assumed to be fixed. The received power by the base station from the closest user (\(P|\alpha_{1}|^{2}\)) was set at \(-90\) dBm, and the received power differences between the users was \(2\) dB, i.e., \(10\text{log}_{10}(\frac{P|\mu_{i}|^{2}}{P|\alpha_{i+1}|^{2}})=2\) dB. Figure 4 shows the BER of the first user versus the total number of users (\(K\)) for both PIC and SIC receivers. The results were obtained for different SNR levels of the first user, \(\text{SNR}=P|\alpha_{1}|^{2}/\sigma_{n}^{2}\). When SNR was taken as \(15\) dB, \(\sigma_{n}^{2}\) was set at \(-105\) dBm, and similarly, when SNR was \(20\) dB, \(\sigma_{n}^{2}\) was \(-110\) dBm. The results in Figure 4 show that for a large number of users in a cell, an increase in the SNR had an insignificant impact on the BER performance of the SIC receiver. This is because the performance was mainly limited by the interference by the other users (see Equation (4)). For the PIC receiver, on the other hand, an increase in the SNR had a significant impact on the BER performance even for a high number of users. Here, it should be noted that the BER performance for the PIC receiver was obtained using Equation (6), which assumed that signature signals were present for each user, which helped in the detection. Next, we discuss the implementation of the two interference cancellation methods on the GPU platform. Tables 1 and 2 summarize the computation times obtained both on GPU and CPU for the  
Figure 3: Functions and kernels for SIC and PIC using CUDA. two interference cancellation techniques. The results with GPU include only the execution times of SIC and PIC; in other words, the time for communication between GPU and CPU spent to copy global variables back and forth to CPU was neglected. MATLAB functions used for FFT and IFFT computations used multiple CPU cores, while the rest of the computations including loops were not parallelized. The size of OFDM was taken as 2048 in Table 1 and 4096 in Table 2, and quadrature phase shift keying (QPSK) with maximum likelihood (ML) decoding was considered [20; 21; 22]. A typical NOMA cell was expected to support about 50 users [16]; however, this can be increased by clustering, grouping, or using multiple input multiple output (MIMO) techniques [23; 24]. In order to observe the trend with a large number of users, the number of users was varied from 50-350. The time spent on CPU sharply varied for the SIC and PIC schemes in both OFDM FFT sizes. PIC performed summation (see Figure 2) and also iterated FFT computation and demodulation tasks apart from the same iterated tasks as SIC. Consequently, it took about twice more time to execute PIC than SIC in both tables with CPU. It was also observed that FFT size had a marginal effect on SIC execution time on the GPU platform. It took about from 69 ms for 50 UEsand reaching 515 ms for 350 users. On the one hand, the SIC scheme on GPU was executed slower than on CPU, but on the other hand, it was faster than PIC on CPU. SIC ran slower on GPU, because the process was iterative and depended on the frequency (clock rate) of each called core, rather than on the number of cores. As was mentioned earlier, our CPU had four cores with 2.3 GHz each, and the frequency of our GPU cores was 1.5 GHz (1582 MHz). Moreover, PIC on a CPU with an FFT size of 4096 was the slowest time of all the results. This was due to serial approach of CPU running the scheme and FFT computation. Fifty users may be decoded in about 88 ms. The time spent to decode 350 users impractically reached about 616 ms.  
As seen in Tables 1 and 2, the SIC execution time on CPU started from only about 28 ms and 47 ms for 50 users.