* Revert " Optimize ‘hist’ for multi-core CPU (#4529)"
This reverts commit 4d6590be3c.
* Fix build
This commit is contained in:
committed by
GitHub
parent
1733c9e8f7
commit
f4e7b707c9
@@ -103,14 +103,8 @@ class QuantileHistMock : public QuantileHistMaker {
|
||||
RealImpl::InitData(gmat, gpair, fmat, tree);
|
||||
GHistIndexBlockMatrix dummy;
|
||||
hist_.AddHistRow(nid);
|
||||
|
||||
std::vector<std::vector<float*>> hist_buffers;
|
||||
std::vector<std::vector<uint8_t>> hist_is_init;
|
||||
std::vector<ExpandEntry> nodes = {ExpandEntry(nid, -1, -1, tree.GetDepth(0), 0.0, 0)};
|
||||
BuildHistsBatch(nodes, const_cast<RegTree*>(&tree), gmat, gpair, &hist_buffers, &hist_is_init);
|
||||
RealImpl::InitNewNode(nid, gmat, gpair, fmat,
|
||||
const_cast<RegTree*>(&tree), &snode_[0], tree[0].Parent());
|
||||
EvaluateSplitsBatch(nodes, gmat, fmat, hist_is_init, hist_buffers);
|
||||
BuildHist(gpair, row_set_collection_[nid],
|
||||
gmat, dummy, hist_[nid], false);
|
||||
|
||||
// Check if number of histogram bins is correct
|
||||
ASSERT_EQ(hist_[nid].size(), gmat.cut.Ptrs().back());
|
||||
@@ -151,13 +145,10 @@ class QuantileHistMock : public QuantileHistMaker {
|
||||
RealImpl::InitData(gmat, row_gpairs, *(*dmat), tree);
|
||||
hist_.AddHistRow(0);
|
||||
|
||||
std::vector<ExpandEntry> nodes = {ExpandEntry(0, -1, -1, tree.GetDepth(0), 0.0, 0)};
|
||||
std::vector<std::vector<float*>> hist_buffers;
|
||||
std::vector<std::vector<uint8_t>> hist_is_init;
|
||||
BuildHistsBatch(nodes, const_cast<RegTree*>(&tree), gmat, row_gpairs, &hist_buffers, &hist_is_init);
|
||||
RealImpl::InitNewNode(0, gmat, row_gpairs, *(*dmat),
|
||||
const_cast<RegTree*>(&tree), &snode_[0], tree[0].Parent());
|
||||
EvaluateSplitsBatch(nodes, gmat, **dmat, hist_is_init, hist_buffers);
|
||||
BuildHist(row_gpairs, row_set_collection_[0],
|
||||
gmat, quantile_index_block, hist_[0], false);
|
||||
|
||||
RealImpl::InitNewNode(0, gmat, row_gpairs, *(*dmat), tree);
|
||||
|
||||
/* Compute correct split (best_split) using the computed histogram */
|
||||
const size_t num_row = dmat->get()->Info().num_row_;
|
||||
@@ -208,7 +199,6 @@ class QuantileHistMock : public QuantileHistMaker {
|
||||
const auto split_gain
|
||||
= evaluator->ComputeSplitScore(0, fid, GradStats(left_sum),
|
||||
GradStats(right_sum));
|
||||
|
||||
if (split_gain > best_split_gain) {
|
||||
best_split_gain = split_gain;
|
||||
best_split_feature = fid;
|
||||
@@ -218,8 +208,7 @@ class QuantileHistMock : public QuantileHistMaker {
|
||||
}
|
||||
|
||||
/* Now compare against result given by EvaluateSplit() */
|
||||
EvaluateSplitsBatch(nodes, gmat, **dmat, hist_is_init, hist_buffers);
|
||||
|
||||
RealImpl::EvaluateSplit(0, gmat, hist_, *(*dmat), tree);
|
||||
ASSERT_EQ(snode_[0].best.SplitIndex(), best_split_feature);
|
||||
ASSERT_EQ(snode_[0].best.split_value, gmat.cut.Values()[best_split_threshold]);
|
||||
|
||||
@@ -310,7 +299,7 @@ TEST(Updater, QuantileHist_EvalSplits) {
|
||||
std::vector<std::pair<std::string, std::string>> cfg
|
||||
{{"num_feature", std::to_string(QuantileHistMock::GetNumColumns())},
|
||||
{"split_evaluator", "elastic_net"},
|
||||
{"reg_lambda", "1.0f"}, {"reg_alpha", "0"}, {"max_delta_step", "0"},
|
||||
{"reg_lambda", "0"}, {"reg_alpha", "0"}, {"max_delta_step", "0"},
|
||||
{"min_child_weight", "0"}};
|
||||
QuantileHistMock maker(cfg);
|
||||
maker.TestEvaluateSplit();
|
||||
|
||||
Reference in New Issue
Block a user