PyPO User Manual
InterfaceCUDA.h
Go to the documentation of this file.
1 #include <iostream>
2 #include <string>
3 #include <cmath>
4 #include <array>
5 
6 #include "GUtils.h"
7 #include "Structs.h"
8 #include "InterfaceReflector.h"
9 #include "MemUtils.h"
10 #include "Debug.h"
11 
12 #define CSIZE 12
13 #define CSIZERT 5
14 
15 #ifdef _WIN32
16 # define PYPO_DLL __declspec(dllexport)
17 #else
18 # define PYPO_DLL
19 #endif
20 
21 #ifndef __InterfaceCUDA_h
22 #define __InterfaceCUDA_h
23 /*! \file InterfaceCUDA.h
24  \brief Declarations of PO and RT library for GPU.
25 
26  Provides double and single precision interface for NVIDIA GPUs running CUDA.
27 */
28 
29 extern "C"
30 {
31  PYPO_DLL void callKernelf_JM(c2Bundlef *res, reflparamsf source, reflparamsf target,
33  c2Bundlef *currents,
34  float k, float epsilon,
35  float t_direction, int nBlocks, int nThreads);
36 
37  PYPO_DLL void callKernelf_EH(c2Bundlef *res, reflparamsf source, reflparamsf target,
39  c2Bundlef *currents,
40  float k, float epsilon,
41  float t_direction, int nBlocks, int nThreads);
42 
43  PYPO_DLL void callKernelf_JMEH(c4Bundlef *res, reflparamsf source, reflparamsf target,
45  c2Bundlef *currents,
46  float k, float epsilon,
47  float t_direction, int nBlocks, int nThreads);
48 
49  PYPO_DLL void callKernelf_EHP(c2rBundlef *res, reflparamsf source, reflparamsf target,
51  c2Bundlef *currents,
52  float k, float epsilon,
53  float t_direction, int nBlocks, int nThreads);
54 
55  PYPO_DLL void callKernelf_FF(c2Bundlef *res, reflparamsf source, reflparamsf target,
57  c2Bundlef *currents,
58  float k, float epsilon,
59  float t_direction, int nBlocks, int nThreads);
60 
61  PYPO_DLL void callKernelf_scalar(arrC1f *res, reflparamsf source, reflparamsf target,
62  reflcontainerf *cs, reflcontainerf *ct, arrC1f *inp,
63  float k, float epsilon,
64  float t_direction, int nBlocks, int nThreads);
65 
66  PYPO_DLL void callRTKernel(reflparamsf ctp, cframef *fr_in,
67  cframef *fr_out, float epsilon, float t0,
68  int nBlocks, int nThreads);
69 }
70 
71 #endif
Methods for printing complex or real arrays of length 3 for GPU.
Linear algebra functions for the CUDA version of PyPO.
PYPO_DLL void callKernelf_EHP(c2rBundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads)
Definition: Kernelsf.cu:1633
PYPO_DLL void callKernelf_JM(c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads)
Definition: Kernelsf.cu:1353
PYPO_DLL void callKernelf_EH(c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads)
Definition: Kernelsf.cu:1445
PYPO_DLL void callKernelf_scalar(arrC1f *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, arrC1f *inp, float k, float epsilon, float t_direction, int nBlocks, int nThreads)
Definition: Kernelsf.cu:1825
PYPO_DLL void callKernelf_FF(c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads)
Definition: Kernelsf.cu:1736
PYPO_DLL void callKernelf_JMEH(c4Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads)
Definition: Kernelsf.cu:1536
PYPO_DLL void callRTKernel(reflparamsf ctp, cframef *fr_in, cframef *fr_out, float epsilon, float t0, int nBlocks, int nThreads)
Definition: KernelsRTf.cu:408
Header for reflector generation interface.
Utility class for CUDA memory allocations.
Structs used within PyPO.
Definition: Structs.h:219
Definition: Structs.h:232
Definition: Structs.h:280
Definition: Structs.h:249
Definition: Structs.h:341
Definition: Structs.h:325
Definition: Structs.h:301