Bridge++
Ver.2.1.3
deviceManager_OpenACC.cpp
Go to the documentation of this file.
1
9
#ifdef USE_ACCEL_OPENACC
10
11
#include "
ResourceManager/deviceManager_OpenACC.h
"
12
13
// the following code only applies to NVIDIA
14
#ifdef _ACCEL
15
#include "accel.h"
16
#endif
17
18
#include "
lib/Communicator/communicator.h
"
19
#include "
lib/IO/bridgeIO.h
"
20
using
Bridge::vout
;
21
22
int
DeviceManager_OpenACC::m_num_devices
= 1;
23
int
DeviceManager_OpenACC::m_device_id
= 0;
24
25
Bridge::VerboseLevel
DeviceManager_OpenACC::m_vl
=
Bridge::CRUCIAL
;
26
27
const
std::string
DeviceManager_OpenACC::class_name
28
=
"DeviceManager_OpenACC"
;
29
30
//====================================================================
31
void
DeviceManager_OpenACC::init
(
int
device_num_offset = 0)
32
{
33
m_vl
=
CommonParameters::Vlevel
();
34
35
vout
.
general
(
m_vl
,
"%s: being initialized.\n"
,
class_name
.c_str());
36
37
int
process_id = Communicator::nodeid();
38
vout
.
general
(
m_vl
,
" process_id = %d\n"
, process_id);
39
40
#ifdef _ACCEL // the following code only applies to NVIDIA
41
vout
.
general
(
m_vl
,
" NVIDIA environment is used.\n"
);
42
m_num_devices
= acc_get_num_devices(acc_device_nvidia);
43
m_device_id
= process_id %
m_num_devices
+ device_num_offset;
44
acc_set_device_num(
m_device_id
, acc_device_nvidia);
45
#endif
46
vout
.
general
(
m_vl
,
" number of devices = %d\n"
,
m_num_devices
);
47
vout
.
general
(
m_vl
,
" device_id = %d is used on process = %d\n"
,
48
m_device_id
, process_id);
49
50
}
51
52
//====================================================================
53
void
DeviceManager_OpenACC::finalize
()
54
{
55
vout
.
paranoiac
(
m_vl
,
"%s: finalization.\n"
,
class_name
.c_str());
56
}
57
58
#endif
59
//============================================================END=====
bridgeIO.h
DeviceManager_OpenACC::init
static void init(int device_num_offset)
setup: called in main only once.
DeviceManager_OpenACC::finalize
static void finalize()
finalization.
Bridge::BridgeIO::paranoiac
void paranoiac(const char *format,...)
Definition:
bridgeIO.cpp:300
DeviceManager_OpenACC::m_vl
static Bridge::VerboseLevel m_vl
verbose level.
Definition:
deviceManager_OpenACC.h:33
deviceManager_OpenACC.h
DeviceManager_OpenACC::m_device_id
static int m_device_id
device id used in this process.
Definition:
deviceManager_OpenACC.h:32
DeviceManager_OpenACC::m_num_devices
static int m_num_devices
number of devices.
Definition:
deviceManager_OpenACC.h:31
CommonParameters::Vlevel
static Bridge::VerboseLevel Vlevel()
Definition:
commonParameters.h:122
communicator.h
Bridge::VerboseLevel
VerboseLevel
Definition:
bridgeIO.h:45
Bridge::CRUCIAL
@ CRUCIAL
Definition:
bridgeIO.h:47
Bridge::BridgeIO::general
void general(const char *format,...)
Definition:
bridgeIO.cpp:262
Bridge::vout
BridgeIO vout
Definition:
bridgeIO.cpp:572
DeviceManager_OpenACC::class_name
static const std::string class_name
Definition:
deviceManager_OpenACC.h:28
src
lib_alt_Accel
ResourceManager
deviceManager_OpenACC.cpp
Generated on Thu Apr 16 2026 22:04:19 for Bridge++ by
1.8.17