xgboost
generic_parameters.h
Go to the documentation of this file.
1 
5 #ifndef XGBOOST_GENERIC_PARAMETERS_H_
6 #define XGBOOST_GENERIC_PARAMETERS_H_
7 
8 #include <xgboost/logging.h>
9 #include <xgboost/parameter.h>
10 
11 #include <string>
12 
13 namespace xgboost {
14 struct GenericParameter : public XGBoostParameter<GenericParameter> {
15  // Constant representing the device ID of CPU.
16  static int32_t constexpr kCpuId = -1;
17 
18  public:
19  // stored random seed
20  int seed;
21  // whether seed the PRNG each iteration
23  // number of threads to use if OpenMP is enabled
24  // if equals 0, use system default
25  int nthread;
26  // primary device, -1 means no gpu.
27  int gpu_id;
28  // gpu page size in external memory mode, 0 means using the default.
29  size_t gpu_page_size;
31  bool validate_parameters {false};
32  bool validate_features {true};
33 
34  void CheckDeprecated() {
35  if (this->n_gpus != 0) {
36  LOG(WARNING)
37  << "\nn_gpus: "
38  << this->__MANAGER__()->Find("n_gpus")->GetFieldInfo().description;
39  }
40  }
46  void ConfigureGpuId(bool require_gpu);
47 
48  // declare parameters
50  DMLC_DECLARE_FIELD(seed).set_default(0).describe(
51  "Random number seed during training.");
52  DMLC_DECLARE_ALIAS(seed, random_state);
53  DMLC_DECLARE_FIELD(seed_per_iteration)
54  .set_default(false)
55  .describe(
56  "Seed PRNG determnisticly via iterator number, "
57  "this option will be switched on automatically on distributed "
58  "mode.");
59  DMLC_DECLARE_FIELD(nthread).set_default(0).describe(
60  "Number of threads to use.");
61  DMLC_DECLARE_ALIAS(nthread, n_jobs);
62 
63  DMLC_DECLARE_FIELD(gpu_id)
64  .set_default(-1)
65  .set_lower_bound(-1)
66  .describe("The primary GPU device ordinal.");
67  DMLC_DECLARE_FIELD(gpu_page_size)
68  .set_default(0)
69  .set_lower_bound(0)
70  .describe("GPU page size when running in external memory mode.");
71  DMLC_DECLARE_FIELD(enable_experimental_json_serialization)
72  .set_default(false)
73  .describe("Enable using JSON for memory serialization (Python Pickle, "
74  "rabit checkpoints etc.).");
75  DMLC_DECLARE_FIELD(validate_parameters)
76  .set_default(false)
77  .describe("Enable checking whether parameters are used or not.");
78  DMLC_DECLARE_FIELD(validate_features)
79  .set_default(false)
80  .describe("Enable validating input DMatrix.");
81  DMLC_DECLARE_FIELD(n_gpus)
82  .set_default(0)
83  .set_range(0, 1)
84  .describe(
85 "\n\tDeprecated. Single process multi-GPU training is no longer supported."
86 "\n\tPlease switch to distributed training with one process per GPU."
87 "\n\tThis can be done using Dask or Spark. See documentation for details.");
88  }
89 
90  private:
91  // number of devices to use (deprecated).
92  int n_gpus {0};
93 };
94 } // namespace xgboost
95 
96 #endif // XGBOOST_GENERIC_PARAMETERS_H_
int gpu_id
Definition: generic_parameters.h:27
static int32_t constexpr kCpuId
Definition: generic_parameters.h:16
Definition: parameter.h:84
Definition: generic_parameters.h:14
void CheckDeprecated()
Definition: generic_parameters.h:34
bool validate_features
Definition: generic_parameters.h:32
bool enable_experimental_json_serialization
Definition: generic_parameters.h:30
void ConfigureGpuId(bool require_gpu)
Configure the parameter `gpu_id&#39;.
DMLC_DECLARE_PARAMETER(GenericParameter)
Definition: generic_parameters.h:49
namespace of xgboost
Definition: base.h:102
size_t gpu_page_size
Definition: generic_parameters.h:29
bool validate_parameters
Definition: generic_parameters.h:31
bool seed_per_iteration
Definition: generic_parameters.h:22
int seed
Definition: generic_parameters.h:20
int nthread
Definition: generic_parameters.h:25