# Efficient GPU Implementation of the McMurchie-Davidson Method for Shell-Based ERI Computations
## 6 Performance Evaluation  
In this section, in order to evaluate the performance frontiers of the proposed algorithms, we report computational experiments involving the proposed implementations of the McMurchie-Davidson method for shell-based ERI computations of molecules of interest. Thus, this section describes our observations and findings. The experiments used an NVIDIA A100 Tensor Core GPU and an Intel Xeon Gold 6338 CPU. We measured the ERI computation times for the four GPU implementations presented in Section 5. The number of threads per CUDA block was set to 256. The number of CUDA blocks launched was determined based on the following: for BBM, the number of threads was equal to the number of Basis-ERIs; for SBM, the number of threads corresponded to the number of shell-based ERIs. In the cases of BTM and STM, the number of CUDA blocks was set to 1/256 of those used in BBM and SBM, respectively. Considering the above-mentioned points, we conducted the following two experiments:  
**Experiment 1**: In this experiment, our goal was to evaluate the performance frontiers (execution time) of ERI calculations in monatomic molecules. As such, we used monatomic hydrogen as the molecule of interest, and evaluated through five types of basis function sets defined in the correlation-consistent basis sets [48]. **Experiment 2**: In this experiment, our goal was to evaluate the performance frontiers (execution time) of ERI calculations in polyatomic molecules. As such, benzene (C\({}_{6}\)H\({}_{6}\)), naphthalene (C\({}_{10}\)H\({}_{8}\)), and copper oxide (CuO) were selected as the polyatomic molecules of interest. Furthermore, we used the STO-3G [41] and 6-3 IG**[49] basis sets. While direct comparisons with other state-of-the-art approaches could be insightful, many existing software packages incorporate acceleration techniques such as screening, to enhance performance. These optimizations significantly modify the computational workflow, making a straightforward comparison with our method difficult. Therefore, rather than making a direct comparison, this study evaluates the efficiency of the proposed parallelization strategies within a controlled computational framework. One of the key motivations behind conducting the above-mentioned experiments lies in the structural differences between the central coordinates of the basis functions of monatomic and polyatomic molecules. Whereas the central coordinates are identical in monatomic molecules, they are different in polyatomic molecules. Concretely speaking, the parameter \(x\) of the Boys function in the GTO-ERI calculations of monatomic molecules is always zero, leading to \(F_{n}(0)=\frac{1}{2n+1}\), as described in Section 3. The above context results in a significant simplification of the Boys function evaluation, which is a computational bottleneck in the GTO-ERI calculations. In order to show a glimpse of the performance frontiers of the proposed algorithms, Table 3 shows the results of Experiment 1. Here, following the observations of Section 2, the number of Basis-ERIs in Table 3 is calculated from the relation \(\frac{M(M+1)(M^{2}+M+2)}{8}\), where \(M\) is the number of basis functions. Similarly, the number of shell-based ERIs in Table 3 is calculated from the relation \(\frac{N(N+1)(N^{2}+N+2)}{8}\), where \(N\) is the number of shells. The results indicate that for monatomic molecules, the shell-based methods performed slowercompared to other frameworks. The reason for poor performance can be attributed to two reasons. * First, as mentioned earlier, the computation of the Boys function can always be simplified as \(F_{n}(0)=\frac{1}{2n+1}\) in the context of GTO-ERIs of monatomic molecules. As a result, the Boys function evaluation does not pose a significant computational overhead. Consequently, the key advantage of shell-based methods in reducing the number of Boys function evaluations is diminished. Instead, as discussed in Section 5.2.3, the increased memory access in the shell-based method leads to longer execution times.