-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathenv.cpp
33 lines (28 loc) · 973 Bytes
/
env.cpp
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
31
32
33
#include "env.h"
#include <sstream>
#include <iostream>
/*
* All available launch options for ONECCL_BINDINGS_FOR_PYTORCH
* ONECCL_BINDINGS_FOR_PYTORCH_ENV_VERBOSE: Default = 0, Set verbose level in ONECCL_BINDINGS_FOR_PYTORCH
* ONECCL_BINDINGS_FOR_PYTORCH_ENV_WAIT_GDB: Default = 0, Set 1 to force the oneccl_bindings_for_pytorch wait for GDB attaching
*/
#define ONECCL_BINDINGS_FOR_PYTORCH_ENV_TYPE_DEF(var) \
int var = [&]() -> int { \
if (auto env = std::getenv("ONECCL_BINDINGS_FOR_PYTORCH_" #var)) \
return std::stoi(env, 0, 10); \
return 0; \
} ()
int oneccl_bindings_for_pytorch_env(int env_type) {
static struct {
ONECCL_BINDINGS_FOR_PYTORCH_ENV_TYPE_DEF(ENV_VERBOSE);
ONECCL_BINDINGS_FOR_PYTORCH_ENV_TYPE_DEF(ENV_WAIT_GDB);
} env;
switch (env_type) {
case ENV_VERBOSE:
return env.ENV_VERBOSE;
case ENV_WAIT_GDB:
return env.ENV_WAIT_GDB;
default:
return 0;
}
}