FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
backend.cpp
1// FEAT3: Finite Element Analysis Toolbox, Version 3
2// Copyright (C) 2010 by Stefan Turek & the FEAT group
3// FEAT3 is released under the GNU General Public License version 3,
4// see the file 'copyright.txt' in the top level directory for details.
5
6#include <kernel/backend.hpp>
7#ifdef FEAT_HAVE_CUDA
8#include <kernel/util/cuda_util.hpp>
9#endif
10
11namespace FEAT
12{
15
17 {
18 _preferred_backend = preferred_backend;
19 if (preferred_backend != PreferredBackend::cuda)
20 {
21#ifdef FEAT_HAVE_CUDA
22 FEAT::Util::cuda_synchronize();
23#endif
24 }
25 }
26
28 {
29 return _preferred_backend;
30 }
31
32 std::ostream & operator<< (std::ostream & left, PreferredBackend value)
33 {
34 switch (value)
35 {
37 left << "generic";
38 break;
39
41 left << "mkl";
42 break;
43
45 left << "cuda";
46 break;
47
48 default:
49 left << "unknown preferred backend";
50 break;
51 }
52
53 return left;
54 }
55
56} // namespace FEAT
static PreferredBackend _preferred_backend
the currently preferred backend
Definition: backend.hpp:139
static void set_preferred_backend(PreferredBackend preferred_backend)
set new preferred backend
Definition: backend.cpp:16
static PreferredBackend get_preferred_backend()
get current preferred backend
Definition: backend.cpp:27
FEAT namespace.
Definition: adjactor.hpp:12
PreferredBackend
The backend that shall be used in all compute heavy calculations.
Definition: backend.hpp:124
@ value
specifies whether the space should supply basis function values