PyPO User Manual
 
Loading...
Searching...
No Matches
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"
9#include "MemUtils.h"
10#include "Debug.h"
11
12#define CSIZE 10
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
29extern "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,
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:1365
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:1088
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:1179
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:1555
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:1467
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:1269
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:217
Definition Structs.h:230
Definition Structs.h:278
Definition Structs.h:247
Definition Structs.h:337
Definition Structs.h:321
Definition Structs.h:299