HiRep 0.1
Loading...
Searching...
No Matches
global_sum.h
Go to the documentation of this file.
1/***************************************************************************\
2* Copyright (c) 2008, 2022, Claudio Pica, Sofie Martins *
3* All rights reserved. *
4\***************************************************************************/
5
9
15#ifndef GLOBAL_SUM_H
16#define GLOBAL_SUM_H
17
18#include "hr_complex.h"
19#include "spinor_field.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
31void global_sum(double *d, int n);
32
39void global_sum_int(int *d, int n);
40
47void global_max(double *d, int n);
48void global_max_flt(float *d, int n);
49
56void global_min(double *d, int n);
57
64void bcast(double *d, int n);
65
72void bcast_int(int *i, int n);
73
74#ifdef WITH_GPU
75
84int global_sum_gpu_int(int *vector, int size);
85
94float global_sum_gpu_float(float *vector, int size);
95
104double global_sum_gpu_double(double *vector, int size);
105
114hr_complex_flt global_sum_gpu_complex_flt(hr_complex_flt *vector, int size);
115
124hr_complex global_sum_gpu_complex(hr_complex *vector, int size);
125
134int global_max_gpu_int(int *vector, int size);
135
144float global_max_gpu_float(float *vector, int size);
145
154double global_max_gpu_double(double *vector, int size);
155
156#endif
157
158#ifdef __cplusplus
159}
160#endif
161
162#endif
int global_max_gpu_int(int *vector, int size)
GPU max reduction (integer)
Definition global_sum_gpu.cu:107
float global_sum_gpu_float(float *vector, int size)
Sums across GPU nodes after finding the local sum (single precision reals)
Definition global_sum_gpu.cu:67
hr_complex global_sum_gpu_complex(hr_complex *vector, int size)
Sums across GPU nodes after finding the local sum (double precision complex)
Definition global_sum_gpu.cu:97
void bcast_int(int *i, int n)
FIXME: add docs.
Definition global_sum.c:203
float global_max_gpu_float(float *vector, int size)
GPU max reduction (single precision reals)
Definition global_sum_gpu.cu:117
void bcast(double *d, int n)
FIXME: add docs.
Definition global_sum.c:169
void global_sum(double *d, int n)
Collects sum results from the local lattices and sums over all nodes (double).
Definition global_sum.c:16
int global_sum_gpu_int(int *vector, int size)
Sums across GPU nodes after finding the local sum (integer)
Definition global_sum_gpu.cu:57
hr_complex_flt global_sum_gpu_complex_flt(hr_complex_flt *vector, int size)
Sums across GPU nodes after finding the local sum (single precision complex)
Definition global_sum_gpu.cu:87
void global_min(double *d, int n)
Finds minimum across nodes after finding the local minimum.
Definition global_sum.c:131
void global_max(double *d, int n)
Finds maximum across nodes after finding the local maximum.
Definition global_sum.c:93
double global_sum_gpu_double(double *vector, int size)
Sums across GPU nodes after finding the local sum (double precision reals)
Definition global_sum_gpu.cu:77
double global_max_gpu_double(double *vector, int size)
Sums across GPU nodes after finding the local sum (double precision reals)
Definition global_sum_gpu.cu:127
void global_sum_int(int *d, int n)
Collects sum results from the local lattices and sums over all nodes (integer).
Definition global_sum.c:55
Type definitions and macros for complex numbers.
The elementary site structures defined in suN.h are used in this file to define field structures that...