23 if (nt->nrn_fast_imem) {
27 nt->nrn_fast_imem =
nullptr;
38 nt->nrn_fast_imem->nrn_sav_rhs = (
double*)
ecalloc_align(
n,
sizeof(
double));
39 nt->nrn_fast_imem->nrn_sav_d = (
double*)
ecalloc_align(
n,
sizeof(
double));
54 parallel loop present(
vec_rhs, vec_area, fast_imem_d, fast_imem_rhs)
if (nt->
compute_gpu)
57 for (
int i = i1;
i < i3; ++
i) {
58 fast_imem_rhs[
i] = (fast_imem_d[
i] *
vec_rhs[
i] + fast_imem_rhs[
i]) * vec_area[
i] * 0.01;
74 for (
int i = i1;
i < i3; ++
i) {
75 fast_imem_rhs[
i] = (
vec_rhs[
i] + fast_imem_rhs[
i]) * vec_area[
i] * 0.01;
nrn_pragma_acc(routine seq) nrn_pragma_omp(declare target) philox4x32_ctr_t coreneuron_random123_philox4x32_helper(coreneuron nrn_pragma_omp(end declare target) namespace coreneuron
Provide a helper function in global namespace that is declared target for OpenMP offloading to functi...
void free_memory(void *pointer)
THIS FILE IS AUTO GENERATED DONT MODIFY IT.
void * ecalloc_align(size_t n, size_t size, size_t alignment)
void nrn_calc_fast_imem_init(NrnThread *nt)
void nrn_fast_imem_alloc()
void nrn_calc_fast_imem(NrnThread *nt)
nrn_pragma_acc(routine seq) int vector_capacity(void *v)
int const size_t const size_t n
Represent main neuron object computed by single thread.
NrnFastImem * nrn_fast_imem