References DGEMM
This commit is contained in:
parent
4a7f2e462d
commit
d62a0e45b4
Binary file not shown.
@ -130,6 +130,26 @@ In the following sections of this paper, we will provide a brief introduction to
|
||||
%c. Challenges and limitations of traditional approaches
|
||||
|
||||
|
||||
The perturbative triples correction,
|
||||
\begin{equation}
|
||||
E_{(T)} = \sum_{ijkabc} E_{ijk}^{abc}
|
||||
\end{equation}
|
||||
is a sum of $N=N_o^3 \times N_v^3$ terms,
|
||||
\begin{equation}
|
||||
E_{ijk}^{abc} = \frac{(4 W_{ijk}^{abc} +
|
||||
W_{ijk}^{bca} + W_{ijk}^{cab})
|
||||
(V_{ijk}^{abc} - V_{ijk}^{cba})}{\epsilon_i + \epsilon_j + \epsilon_k -
|
||||
\epsilon_a - \epsilon_b - \epsilon_c}
|
||||
\end{equation}
|
||||
which depend on the canonical orbital energies $\epsilon$, and the tensors $W$ and $V$.
|
||||
The indices $i,j,k$ and $a,b,c$ denote respectively occupied and virtual orbitals.
|
||||
|
||||
The bottleneck is the computation of $W$, which requires $\order{N_o^3 \times
|
||||
N_v^4}$ operations. However, most of the operations involved in the computation of $W$
|
||||
can be recast into matrix multiplications, which are among the most efficient
|
||||
operations than can be executed on modern CPUs and
|
||||
accelerators.\cite{ma_2011,haidar_2015,dinapoli_2014,springer_2018}
|
||||
|
||||
%=================================================================%
|
||||
\section{Semi-Stochastic Algorithm}
|
||||
\label{sec:algorithm}
|
||||
@ -145,6 +165,12 @@ In the following sections of this paper, we will provide a brief introduction to
|
||||
%c. Discussion of the algorithm's advantages and potential trade-offs
|
||||
%d. Detailed pseudocode or algorithmic steps, if applicable
|
||||
|
||||
\subsection{Stochastic formulation}
|
||||
|
||||
\subsection{Test code}
|
||||
\label{subsec:test_code}
|
||||
% Include the test code here, if applicable.
|
||||
|
||||
|
||||
%=================================================================%
|
||||
\section{Implementation Details}
|
||||
|
20
triples.org
20
triples.org
@ -2,7 +2,7 @@
|
||||
|
||||
* Stochastic formulation
|
||||
|
||||
The perturbative correction is expressed as:
|
||||
The perturbative correction reads:
|
||||
|
||||
\[
|
||||
E_{(T)} = \sum_{ijkabc} E_{ijk}^{abc} = \sum_{ijkabc} \frac{(4 W_{ijk}^{abc} +
|
||||
@ -12,14 +12,19 @@ E_{(T)} = \sum_{ijkabc} E_{ijk}^{abc} = \sum_{ijkabc} \frac{(4 W_{ijk}^{abc} +
|
||||
\epsilon_a - \epsilon_b - \epsilon_c}
|
||||
\]
|
||||
|
||||
|
||||
If $E_{(T)}$ is computed as
|
||||
where the indices $i,j,k$ run over the $N_o$ occupied orbitals, and
|
||||
the indices $a,b,c$ run over the $N_v$ virtual orbitals.
|
||||
|
||||
If $E_{(T)}$ is re-expressed as
|
||||
\[
|
||||
E_{(T)} = \sum_{ijkabc} \frac{1}{N} \left( E_{ijk}^{abc} \times N \right)
|
||||
\]
|
||||
where $N$ is the total number of terms, it can be computed by drawing
|
||||
uniformly samples $E_{ijk}^{abc}$ and computing the statistical
|
||||
average.
|
||||
where $N=N_o^3 N_v^3$ is the total number of terms, it can be computed by drawing
|
||||
uniformly samples $E_{ijk}^{abc}$ and using the statistical average as
|
||||
|
||||
\[
|
||||
E_{(T)} = N \times \langle E_{ijk}^{abc} \rangle
|
||||
\]
|
||||
|
||||
The stochastic calculation is unbiased, but the rate of convergence of
|
||||
the statistical error is be governed by the variance of the
|
||||
@ -115,8 +120,7 @@ $E_B$ stochastically and we can separate the buckets into stochastic
|
||||
|
||||
\[
|
||||
E_{(T)} = \sum_{B \in \mathcal{D}} E_B + \frac{1}{|\mathcal{S}|} \sum_{B \in \mathcal{S}}
|
||||
\left \langle E^B_{abc} \times \frac{\epsilon_{\text{occ}} -
|
||||
\epsilon_a - \epsilon_b - \epsilon_c}{\mathcal{N}} \right \rangle_{P(a,b,c), (a,b,c) \in B}
|
||||
\left \langle E^B_{abc} \times \frac{- \epsilon_a - \epsilon_b - \epsilon_c}{\mathcal{N}} \right \rangle_{P(a,b,c), (a,b,c) \in B}
|
||||
\]
|
||||
|
||||
All the buckets don't have the same size: the number of triplets per
|
||||
|
Loading…
Reference in New Issue
Block a user