Program Listing for File DeviceFunctor.h
↰ Return to documentation for file (source/lib/include/DeviceFunctor.h
)
// SPDX-License-Identifier: LGPL-3.0-or-later
#pragma once
#include <stdio.h>
#include <climits>
#include <iostream>
#include <vector>
#include "device.h"
template <typename FPTYPE>
struct DescrptSeRGPUExecuteFunctor {
void operator()(const FPTYPE* coord,
const int* type,
const int* ilist,
const int* jrange,
const int* jlist,
int* array_int,
unsigned long long* array_longlong,
const FPTYPE* avg,
const FPTYPE* std,
FPTYPE* descript,
FPTYPE* descript_deriv,
FPTYPE* rij,
int* nlist,
const int nloc,
const int nall,
const int nnei,
const int ndescrpt,
const float rcut_r,
const float rcut_r_smth,
const std::vector<int> sec_a,
const bool fill_nei_a,
const int MAGIC_NUMBER);
};
template <typename FPTYPE>
struct ProdForceSeAGPUExecuteFunctor {
void operator()(FPTYPE* force,
const FPTYPE* net_derive,
const FPTYPE* in_deriv,
const int* nlist,
const int nloc,
const int nall,
const int nnei,
const int ndescrpt,
const int n_a_sel,
const int n_a_shift);
};
template <typename FPTYPE>
struct ProdForceSeRGPUExecuteFunctor {
void operator()(FPTYPE* force,
const FPTYPE* net_derive,
const FPTYPE* in_deriv,
const int* nlist,
const int nloc,
const int nall,
const int nnei,
const int ndescrpt);
};
template <typename FPTYPE>
struct ProdVirialSeAGPUExecuteFunctor {
void operator()(FPTYPE* virial,
FPTYPE* atom_virial,
const FPTYPE* net_deriv,
const FPTYPE* in_deriv,
const FPTYPE* rij,
const int* nlist,
const int nloc,
const int nall,
const int nnei,
const int ndescrpt,
const int n_a_sel,
const int n_a_shift);
};
template <typename FPTYPE>
struct ProdVirialSeRGPUExecuteFunctor {
void operator()(FPTYPE* virial,
FPTYPE* atom_virial,
const FPTYPE* net_deriv,
const FPTYPE* in_deriv,
const FPTYPE* rij,
const int* nlist,
const int nloc,
const int nall,
const int nnei,
const int ndescrpt);
};
template <typename FPTYPE>
struct GeluGPUExecuteFunctor {
void operator()(const FPTYPE* in, FPTYPE* out, const int size);
};
template <typename FPTYPE>
struct GeluGradGPUExecuteFunctor {
void operator()(const FPTYPE* dy,
const FPTYPE* in,
FPTYPE* out,
const int size);
};
template <typename FPTYPE>
struct GeluGradGradGPUExecuteFunctor {
void operator()(const FPTYPE* dy,
const FPTYPE* dy_,
const FPTYPE* in,
FPTYPE* out,
const int size);
};
template <typename FPTYPE>
struct TabulateFusionGPUExecuteFunctor {
void operator()(const FPTYPE* table,
const FPTYPE* table_info,
const FPTYPE* in,
const FPTYPE* ff,
const int nloc,
const int nnei,
const int last_layer_size,
FPTYPE* out);
};
template <typename FPTYPE>
struct TabulateFusionGradGPUExecuteFunctor {
void operator()(const FPTYPE* table,
const FPTYPE* table_info,
const FPTYPE* in,
const FPTYPE* ff,
const FPTYPE* dy,
const int nloc,
const int nnei,
const int last_layer_size,
FPTYPE* dy_dx,
FPTYPE* dy_df);
};
template <typename FPTYPE>
struct TabulateCheckerGPUExecuteFunctor {
void operator()(const FPTYPE* table_info,
const FPTYPE* in,
int* out,
const int nloc,
const int nnei);
};