|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Functions | |
| void | initialize_gpu_resources () |
| Initialize GPU resources (copy grids to constant memory) Should be called at the start of each calculate_HR. | |
| void | finalize_gpu_resources () |
| Release GPU resources (clear any error states) Should be called at the end of each calculate_HR. | |
| void | snap_psibeta_atom_batch_gpu (const LCAO_Orbitals &orb, const InfoNonlocal &infoNL_, const int T0, const ModuleBase::Vector3< double > &R0, const ModuleBase::Vector3< double > &A, const AdjacentAtomInfo &adjs, const UnitCell *ucell, const Parallel_Orbitals *paraV, const int npol, const int nlm_dim, std::vector< std::vector< std::unordered_map< int, std::vector< std::complex< double > > > > > &nlm_tot) |
| Atom-level GPU batch processing interface. | |
| void module_rt::gpu::finalize_gpu_resources | ( | ) |
Release GPU resources (clear any error states) Should be called at the end of each calculate_HR.
| void module_rt::gpu::initialize_gpu_resources | ( | ) |
Initialize GPU resources (copy grids to constant memory) Should be called at the start of each calculate_HR.
| void module_rt::gpu::snap_psibeta_atom_batch_gpu | ( | const LCAO_Orbitals & | orb, |
| const InfoNonlocal & | infoNL_, | ||
| const int | T0, | ||
| const ModuleBase::Vector3< double > & | R0, | ||
| const ModuleBase::Vector3< double > & | A, | ||
| const AdjacentAtomInfo & | adjs, | ||
| const UnitCell * | ucell, | ||
| const Parallel_Orbitals * | paraV, | ||
| const int | npol, | ||
| const int | nlm_dim, | ||
| std::vector< std::vector< std::unordered_map< int, std::vector< std::complex< double > > > > > & | nlm_tot | ||
| ) |
Atom-level GPU batch processing interface.
Processes ALL neighbors for a center atom in a SINGLE kernel launch. This significantly reduces kernel launch overhead compared to neighbor-level batching.
| orb | Orbital information |
| infoNL_ | Non-local pseudopotential information |
| T0 | Center atom type (projector location) |
| R0 | Center atom position (already multiplied by lat0) |
| A | Vector potential |
| adjs | Adjacent atom information for this center atom |
| ucell | Unit cell pointer |
| paraV | Parallel orbitals information |
| npol | Polarization number |
| nlm_dim | 1 for no current, 4 for current calculation |
| nlm_tot | Output: nlm_tot[ad][dir][iw_index] = nlm_vector |