Skip to content

Commit

Permalink
Decision forest random splitter (#2270)
Browse files Browse the repository at this point in the history
* Random splitter without chaning high-level interfaces

* Update prototype

* Update descriptor class

* Update Descriptor and train_context classes

* Update enum class

* Working version. Unrefactored

* Update random bin index generation.

* Rename train_best_split* into train_splitter. (DPC version)

* Update splitter for small cases

* Update the code after renaming classes.

* Apply clang-format for updated files.

* Apply clang-format for train_kernel_hist*

* Update proper version of clang format.

* Update engines collestion initialization

* Update tests adding bootstrap_mode and splitter_mode

* Update docs.

* Update tests. Code formatting

* Docs with more detailed descriptions.

* Update docs for splitter_mode enum class

* Add comments forsplitter_mode enum class.

* Fix bug with large case

* Updates according change requests. In scope of #2270 pull request.

* Refactoring for PR #2270.

* Update docs regarding to PR #2270

* Working version, but prediction score is bad. Please do not consider in PR #2270

* Add bin_count as boundaries for bin selection

* Raw fix for large case

* Random splitter with debug info

* Update large_single_pass random spliiter, remove debug prints

* Add example for random splitter

* Enable distributed mode

* Add splitter by histogram

* Valid version for large, small and distr cases

* Apply clang-format

* Apply clang-format

* Default constructors/destructors for proper memory management

* Update structure for kernel_hist_impl_dpc

* Update random treshold generation

* Minor updates

* Fix minor bugs

* Minor updates for single gpu version

* Update histogram calc for single mode version

* Optimized single-GPU version

* Refactoring

* Uniform distribution for Random Splitter

* Update method description and namespaces

* Apply clang-format for common.cpp

* Fix bug for case min_bin > max_bin

* Minor updates

* Update file copyright headers.

* Update clang-format

* Fix typo, remove redundant checking, snake case.
  • Loading branch information
inteldimitrius authored Mar 23, 2023
1 parent f24239b commit 5e080cf
Show file tree
Hide file tree
Showing 18 changed files with 1,162 additions and 514 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
#include "oneapi/dal/algo/decision_forest/backend/gpu/train_service_kernels.hpp"
#include "oneapi/dal/algo/decision_forest/backend/gpu/train_feature_type.hpp"
#include "oneapi/dal/algo/decision_forest/backend/gpu/train_model_manager.hpp"
#include "oneapi/dal/algo/decision_forest/backend/gpu/train_best_split_impl.hpp"
#include "oneapi/dal/algo/decision_forest/backend/gpu/train_best_split_sp_opt_impl.hpp"
#include "oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_impl.hpp"
#include "oneapi/dal/algo/decision_forest/backend/gpu/train_splitter_sp_opt_impl.hpp"

namespace oneapi::dal::decision_forest::backend {

Expand Down Expand Up @@ -104,6 +104,12 @@ class train_kernel_hist_impl {
const pr::ndarray<Index, 1>& node_vs_tree_map,
rng_engine_list_t& rng_engine_list);

std::tuple<pr::ndarray<Float, 1>, sycl::event> gen_random_tresholds(

This comment has been minimized.

Copy link
@icfaust

icfaust Mar 24, 2023

Contributor

english error: should be gen_random_thresholds

const train_context_t& ctx,
Index node_count,
const pr::ndarray<Index, 1>& node_vs_tree_map,
rng_engine_list_t& rng_engine_list);

sycl::event compute_initial_imp_for_node_list(const train_context_t& ctx,
imp_data_t& imp_data_list,
pr::ndarray<Index, 1>& node_list,
Expand Down Expand Up @@ -168,6 +174,7 @@ class train_kernel_hist_impl {
const pr::ndview<Float, 1>& response,
const pr::ndarray<Index, 1>& tree_order,
const pr::ndarray<Index, 1>& selected_ftr_list,
const pr::ndarray<Float, 1>& random_bins_com,
const pr::ndarray<Index, 1>& bin_offset_list,
const imp_data_t& imp_data_list,
pr::ndarray<Index, 1>& node_list,
Expand Down
Loading

0 comments on commit 5e080cf

Please sign in to comment.