Skip to content

Commit 3859d7d

Browse files
committed
separate logger
1 parent f63a706 commit 3859d7d

File tree

12 files changed

+45
-20
lines changed

12 files changed

+45
-20
lines changed

cpp/include/culda/culda.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ class CuLDA {
7575
DeviceInfo dev_info_;
7676
json11::Json opt_;
7777
std::shared_ptr<spdlog::logger> logger_;
78+
std::unique_ptr<CuSimLogger> logger_container_;
7879
thrust::device_vector<float> dev_alpha_, dev_beta_;
7980
thrust::device_vector<float> dev_grad_alpha_, dev_new_beta_;
8081
thrust::device_vector<float> dev_gamma_, dev_new_gamma_, dev_phi_;

cpp/include/cuw2v/cuw2v.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class CuW2V {
5252
DeviceInfo dev_info_;
5353
json11::Json opt_;
5454
std::shared_ptr<spdlog::logger> logger_;
55+
std::unique_ptr<CuSimLogger> logger_container_;
5556
int block_cnt_, block_dim_;
5657
int num_dims_, num_words_, window_size_;
5758
float *emb_in_, *emb_out_, lr_;

cpp/include/utils/ioutils.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class IoUtils {
4545
std::ifstream stream_fin_;
4646
json11::Json opt_;
4747
std::shared_ptr<spdlog::logger> logger_;
48+
std::unique_ptr<CuSimLogger> logger_container_;
4849
std::unordered_map<std::string, int> word_idmap_, word_count_;
4950
std::vector<std::string> word_list_;
5051
int num_lines_, remain_lines_;

cpp/include/utils/log.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
// reference: https://github.com/kakao/buffalo/blob/5f571c2c7d8227e6625c6e538da929e4db11b66d/lib/misc/log.cc
88
#pragma once
99
#include <memory>
10-
10+
#include <string>
1111
#define SPDLOG_EOL ""
1212
#define SPDLOG_TRACE_ON
1313
#include "spdlog/spdlog.h"
@@ -32,6 +32,7 @@ namespace cusim {
3232
class CuSimLogger {
3333
public:
3434
CuSimLogger();
35+
explicit CuSimLogger(std::string name);
3536
std::shared_ptr<spdlog::logger>& get_logger();
3637
void set_log_level(int level);
3738
int get_log_level();

cpp/src/culda/culda.cu

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
namespace cusim {
1010

1111
CuLDA::CuLDA() {
12-
logger_ = CuSimLogger().get_logger();
12+
logger_container_.reset(new CuSimLogger("lda"));
13+
logger_ = logger_container_->get_logger();
1314
dev_info_ = GetDeviceInfo();
1415
if (dev_info_.unknown) DEBUG0("Unknown device type");
1516
INFO("cuda device info, major: {}, minor: {}, multi processors: {}, cores: {}",
@@ -28,7 +29,7 @@ bool CuLDA::Init(std::string opt_path) {
2829
auto _opt = json11::Json::parse(str, err_cmt);
2930
if (not err_cmt.empty()) return false;
3031
opt_ = _opt;
31-
CuSimLogger().set_log_level(opt_["c_log_level"].int_value());
32+
logger_container_->set_log_level(opt_["c_log_level"].int_value());
3233
num_topics_ = opt_["num_topics"].int_value();
3334
block_dim_ = opt_["block_dim"].int_value();
3435
block_cnt_ = opt_["hyper_threads"].number_value() * (dev_info_.cores / block_dim_);

cpp/src/cuw2v/cuw2v.cu

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ bool CompareIndex(int lhs, int rhs) {
2424
}
2525

2626
CuW2V::CuW2V() {
27-
logger_ = CuSimLogger().get_logger();
27+
logger_container_.reset(new CuSimLogger("w2v"));
28+
logger_ = logger_container_->get_logger();
2829
dev_info_ = GetDeviceInfo();
2930
if (dev_info_.unknown) DEBUG0("Unknown device type");
3031
INFO("cuda device info, major: {}, minor: {}, multi processors: {}, cores: {}",
@@ -43,7 +44,7 @@ bool CuW2V::Init(std::string opt_path) {
4344
auto _opt = json11::Json::parse(str, err_cmt);
4445
if (not err_cmt.empty()) return false;
4546
opt_ = _opt;
46-
CuSimLogger().set_log_level(opt_["c_log_level"].int_value());
47+
logger_container_->set_log_level(opt_["c_log_level"].int_value());
4748
num_dims_ = opt_["num_dims"].int_value();
4849
block_dim_ = opt_["block_dim"].int_value();
4950
block_cnt_ = opt_["hyper_threads"].number_value() * (dev_info_.cores / block_dim_);

cpp/src/utils/ioutils.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
namespace cusim {
99

1010
IoUtils::IoUtils() {
11-
logger_ = CuSimLogger().get_logger();
11+
logger_container_.reset(new CuSimLogger("ioutils"));
12+
logger_ = logger_container_->get_logger();
1213
}
1314

1415
IoUtils::~IoUtils() {}
@@ -23,7 +24,7 @@ bool IoUtils::Init(std::string opt_path) {
2324
auto _opt = json11::Json::parse(str, err_cmt);
2425
if (not err_cmt.empty()) return false;
2526
opt_ = _opt;
26-
CuSimLogger().set_log_level(opt_["c_log_level"].int_value());
27+
logger_container_->set_log_level(opt_["c_log_level"].int_value());
2728
return true;
2829
}
2930

cpp/src/utils/log.cc

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,26 @@ CuSimLogger::CuSimLogger() {
1616
logger_ = spdlog::default_logger();
1717
}
1818

19+
CuSimLogger::CuSimLogger(std::string name) {
20+
// auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
21+
auto stderr_sink = std::make_shared<spdlog::sinks::stderr_color_sink_mt>();
22+
// spdlog::sinks_init_list sinks = {console_sink, stderr_sink};
23+
logger_ = std::make_shared<spdlog::logger>(name, stderr_sink);
24+
logger_->set_pattern("[%^%-8l%$] %Y-%m-%d %H:%M:%S %v");
25+
}
26+
1927
std::shared_ptr<spdlog::logger>& CuSimLogger::get_logger() {
2028
return logger_;
2129
}
2230

2331
void CuSimLogger::set_log_level(int level) {
2432
global_logging_level_ = level;
2533
switch (level) {
26-
case 0: spdlog::set_level(spdlog::level::off); break;
27-
case 1: spdlog::set_level(spdlog::level::warn); break;
28-
case 2: spdlog::set_level(spdlog::level::info); break;
29-
case 3: spdlog::set_level(spdlog::level::debug); break;
30-
default: spdlog::set_level(spdlog::level::trace); break;
34+
case 0: logger_->set_level(spdlog::level::off); break;
35+
case 1: logger_->set_level(spdlog::level::warn); break;
36+
case 2: logger_->set_level(spdlog::level::info); break;
37+
case 3: logger_->set_level(spdlog::level::debug); break;
38+
default: logger_->set_level(spdlog::level::trace); break;
3139
}
3240
}
3341

cusim/cuw2v/pycuw2v.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,10 @@ def init_model(self):
8686
def train_model(self):
8787
self.preprocess_data()
8888
self.init_model()
89-
if not self.opt.neg:
89+
if self.opt.neg:
90+
self.obj.build_random_table( \
91+
self.word_count, self.opt.random_size, self.opt.num_threads)
92+
else:
9093
self.obj.build_huffman_tree(self.word_count)
9194
h5f = h5py.File(pjoin(self.opt.processed_data_dir, "token.h5"), "r")
9295
for epoch in range(1, self.opt.epochs + 1):
@@ -112,9 +115,6 @@ def _train_epoch(self, h5f):
112115
offset = next_offset
113116

114117
# call cuda kernel
115-
if self.opt.neg:
116-
self.obj.build_random_table( \
117-
self.word_count, self.opt.random_size, self.opt.num_threads)
118118
_loss_nume, _loss_deno = \
119119
self.obj.feed_data(cols, indptr)
120120

cusim/proto/config.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ message CuW2VConfigProto {
5151
optional int32 seed = 14 [default = 777];
5252
optional int32 table_seed = 15 [default = 777];
5353
optional int32 cuda_seed = 16 [default = 777];
54-
optional int32 random_size = 17 [default = 1000000];
54+
optional int32 random_size = 12 [default = 1000000];
5555

5656
optional int32 neg = 17 [default = 10];
5757
// as recommended in w2v paper

0 commit comments

Comments
 (0)