nvmlConfigurator.cpp 2.91 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//================================================================================
// Name        : nvmlConfigurator.cpp
// Author      : Weronika Filinger, EPCC @ The University of Edinburgh
// Contact     :
// Copyright   :
// Description : Source file for nvml plugin configurator class.
//================================================================================

//================================================================================
// This file is part of DCDB (DataCenter DataBase)
// Copyright (C) 2019 Leibniz Supercomputing Centre
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
//================================================================================

#include "nvmlConfigurator.h"

nvmlConfigurator::nvmlConfigurator() {
31
32
33
34
35
36
37
	/* 
	 * TODO
	 * If you want sensor or group to be named differently in the config file, you can change it here
	 */

	_gpuFeatureMAP["GPU_ENERGY"] = GPU_ENERGY;
	_gpuFeatureMAP["GPU_POWER"] = GPU_POWER;
Weronika's avatar
Weronika committed
38
	_gpuFeatureMAP["GPU_TEMP"] = GPU_TEMP;
39
	_gpuFeatureMAP["GPU_FAN"] = GPU_FAN;
40
41
42
	_gpuFeatureMAP["GPU_MEM_USED"] = GPU_MEM_USED;
	_gpuFeatureMAP["GPU_MEM_FREE"] = GPU_MEM_FREE;
	_gpuFeatureMAP["GPU_MEM_TOT"] = GPU_MEM_TOT;
43
44
45
	_gpuFeatureMAP["GPU_CLK_GP"] = GPU_CLK_GP;	
	_gpuFeatureMAP["GPU_CLK_SM"] = GPU_CLK_SM;
	_gpuFeatureMAP["GPU_CLK_MEM"] = GPU_CLK_MEM;
46
47
48

	_groupName = "group";
	_baseName = "sensor";
49
50
51
52
53
}

nvmlConfigurator::~nvmlConfigurator() {}

void nvmlConfigurator::sensorBase(nvmlSensorBase& s, CFG_VAL config) {
54
	//ADD {
55

56
57
58
59
60
61
62
63
64
65
66
	BOOST_FOREACH (boost::property_tree::iptree::value_type &val, config) {
		if (boost::iequals(val.first, "feature")) {
			gpuFeatureMap_t::iterator it = _gpuFeatureMAP.find(val.second.data());
			if (it != _gpuFeatureMAP.end()) {
				s.setFeatureType(it->second);
			} else {
				LOG(warning) << "  feature \"" << val.second.data() << "\" not known.";
			}
		}
	}  //                                        
	//}
67
68
69
}

void nvmlConfigurator::sensorGroup(nvmlSensorGroup& s, CFG_VAL config) {
70
71
72
73
74
75
	ADD {
		/* 
		 * TODO
		 * Add ATTRIBUTE macros for sensorGroup attributes
		 */
	}
76
77
78
79
}


void nvmlConfigurator::printConfiguratorConfig(LOG_LEVEL ll) {
80
81
82
83
84
85
	/*
	 * TODO
	 * Log attributes here for debug reasons or delete this method if there are
	 * not attributes to log.
	 */
	LOG_VAR(ll) << "  NumSpacesAsIndention: " << 2;
86
}