From 28f4e8e83420c514c8754c140037dd01c8ecd4c8 Mon Sep 17 00:00:00 2001 From: jiamingy Date: Sun, 3 Jul 2022 03:56:33 +0800 Subject: [PATCH] Rename `IterativeDMatrix`. --- src/data/data.cc | 4 +-- ...device_dmatrix.cu => iterative_dmatrix.cu} | 8 ++--- ...e_device_dmatrix.h => iterative_dmatrix.h} | 29 +++++++++---------- ...e_dmatrix.cu => test_iterative_dmatrix.cu} | 12 ++++---- tests/cpp/helpers.cu | 8 ++--- 5 files changed, 29 insertions(+), 32 deletions(-) rename src/data/{iterative_device_dmatrix.cu => iterative_dmatrix.cu} (95%) rename src/data/{iterative_device_dmatrix.h => iterative_dmatrix.h} (72%) rename tests/cpp/data/{test_iterative_device_dmatrix.cu => test_iterative_dmatrix.cu} (97%) diff --git a/src/data/data.cc b/src/data/data.cc index 600894798873..228a919c1511 100644 --- a/src/data/data.cc +++ b/src/data/data.cc @@ -26,7 +26,7 @@ #include "../common/group_data.h" #include "../common/threading_utils.h" #include "../data/adapter.h" -#include "../data/iterative_device_dmatrix.h" +#include "../data/iterative_dmatrix.h" #include "file_iterator.h" #include "validation.h" @@ -938,7 +938,7 @@ DMatrix *DMatrix::Create(DataIterHandle iter, DMatrixHandle proxy, XGDMatrixCallbackNext *next, float missing, int nthread, int max_bin) { - return new data::IterativeDeviceDMatrix(iter, proxy, reset, next, missing, + return new data::IterativeDMatrix(iter, proxy, reset, next, missing, nthread, max_bin); } diff --git a/src/data/iterative_device_dmatrix.cu b/src/data/iterative_dmatrix.cu similarity index 95% rename from src/data/iterative_device_dmatrix.cu rename to src/data/iterative_dmatrix.cu index c5f1894ca60f..3ac3707c9ff0 100644 --- a/src/data/iterative_device_dmatrix.cu +++ b/src/data/iterative_dmatrix.cu @@ -1,5 +1,5 @@ /*! - * Copyright 2020 XGBoost contributors + * Copyright 2020-2022 XGBoost contributors */ #include #include @@ -7,7 +7,7 @@ #include "../common/hist_util.cuh" #include "simple_batch_iterator.h" -#include "iterative_device_dmatrix.h" +#include "iterative_dmatrix.h" #include "sparse_page_source.h" #include "ellpack_page.cuh" #include "proxy_dmatrix.h" @@ -16,7 +16,7 @@ namespace xgboost { namespace data { -void IterativeDeviceDMatrix::Initialize(DataIterHandle iter_handle, float missing) { +void IterativeDMatrix::InitFromCUDA(DataIterHandle iter_handle, float missing) { // A handle passed to external iterator. DMatrixProxy* proxy = MakeProxy(proxy_); CHECK(proxy); @@ -160,7 +160,7 @@ void IterativeDeviceDMatrix::Initialize(DataIterHandle iter_handle, float missin rabit::Allreduce(&info_.num_col_, 1); } -BatchSet IterativeDeviceDMatrix::GetEllpackBatches(const BatchParam& param) { +BatchSet IterativeDMatrix::GetEllpackBatches(const BatchParam& param) { CHECK(page_); // FIXME(Jiamingy): https://github.com/dmlc/xgboost/issues/7976 if (param.max_bin != batch_param_.max_bin) { diff --git a/src/data/iterative_device_dmatrix.h b/src/data/iterative_dmatrix.h similarity index 72% rename from src/data/iterative_device_dmatrix.h rename to src/data/iterative_dmatrix.h index 9920891d235c..7e1c78cdbbd2 100644 --- a/src/data/iterative_device_dmatrix.h +++ b/src/data/iterative_dmatrix.h @@ -1,9 +1,9 @@ /*! - * Copyright 2020 by Contributors - * \file iterative_device_dmatrix.h + * Copyright 2020-2022 by Contributors + * \file iterative_dmatrix.h */ -#ifndef XGBOOST_DATA_ITERATIVE_DEVICE_DMATRIX_H_ -#define XGBOOST_DATA_ITERATIVE_DEVICE_DMATRIX_H_ +#ifndef XGBOOST_DATA_ITERATIVE_DMATRIX_H_ +#define XGBOOST_DATA_ITERATIVE_DMATRIX_H_ #include #include @@ -19,7 +19,7 @@ namespace xgboost { namespace data { -class IterativeDeviceDMatrix : public DMatrix { +class IterativeDMatrix : public DMatrix { MetaInfo info_; Context ctx_; BatchParam batch_param_; @@ -30,18 +30,17 @@ class IterativeDeviceDMatrix : public DMatrix { XGDMatrixCallbackNext *next_; public: - void Initialize(DataIterHandle iter, float missing); + void InitFromCUDA(DataIterHandle iter, float missing); public: - explicit IterativeDeviceDMatrix(DataIterHandle iter, DMatrixHandle proxy, - DataIterResetCallback *reset, XGDMatrixCallbackNext *next, - float missing, int nthread, int max_bin) + explicit IterativeDMatrix(DataIterHandle iter, DMatrixHandle proxy, DataIterResetCallback *reset, + XGDMatrixCallbackNext *next, float missing, int nthread, int max_bin) : proxy_{proxy}, reset_{reset}, next_{next} { - batch_param_ = BatchParam{0, max_bin}; + batch_param_ = BatchParam{MakeProxy(proxy_)->DeviceIdx(), max_bin}; ctx_.UpdateAllowUnknown(Args{{"nthread", std::to_string(nthread)}}); - this->Initialize(iter, missing); + this->InitFromCUDA(iter, missing); } - ~IterativeDeviceDMatrix() override = default; + ~IterativeDMatrix() override = default; bool EllpackExists() const override { return true; } bool SparsePageExists() const override { return false; } @@ -77,14 +76,14 @@ class IterativeDeviceDMatrix : public DMatrix { }; #if !defined(XGBOOST_USE_CUDA) -inline void IterativeDeviceDMatrix::Initialize(DataIterHandle iter, float missing) { +inline void IterativeDMatrix::InitFromCUDA(DataIterHandle iter, float missing) { // silent the warning about unused variables. (void)(proxy_); (void)(reset_); (void)(next_); common::AssertGPUSupport(); } -inline BatchSet IterativeDeviceDMatrix::GetEllpackBatches(const BatchParam& param) { +inline BatchSet IterativeDMatrix::GetEllpackBatches(const BatchParam& param) { common::AssertGPUSupport(); auto begin_iter = BatchIterator(new SimpleBatchIteratorImpl(page_)); @@ -94,4 +93,4 @@ inline BatchSet IterativeDeviceDMatrix::GetEllpackBatches(const Bat } // namespace data } // namespace xgboost -#endif // XGBOOST_DATA_ITERATIVE_DEVICE_DMATRIX_H_ +#endif // XGBOOST_DATA_ITERATIVE_DMATRIX_H_ diff --git a/tests/cpp/data/test_iterative_device_dmatrix.cu b/tests/cpp/data/test_iterative_dmatrix.cu similarity index 97% rename from tests/cpp/data/test_iterative_device_dmatrix.cu rename to tests/cpp/data/test_iterative_dmatrix.cu index 629c67bf9387..381cf1a45ac3 100644 --- a/tests/cpp/data/test_iterative_device_dmatrix.cu +++ b/tests/cpp/data/test_iterative_dmatrix.cu @@ -1,10 +1,10 @@ /*! - * Copyright 2020 XGBoost contributors + * Copyright 2020-2022 XGBoost contributors */ #include #include "../helpers.h" -#include "../../../src/data/iterative_device_dmatrix.h" +#include "../../../src/data/iterative_dmatrix.h" #include "../../../src/data/ellpack_page.cuh" #include "../../../src/data/device_adapter.cuh" @@ -13,7 +13,7 @@ namespace data { void TestEquivalent(float sparsity) { CudaArrayIterForTest iter{sparsity}; - IterativeDeviceDMatrix m( + IterativeDMatrix m( &iter, iter.Proxy(), Reset, Next, std::numeric_limits::quiet_NaN(), 0, 256); size_t offset = 0; @@ -88,7 +88,7 @@ TEST(IterativeDeviceDMatrix, Basic) { TEST(IterativeDeviceDMatrix, RowMajor) { CudaArrayIterForTest iter(0.0f); - IterativeDeviceDMatrix m( + IterativeDMatrix m( &iter, iter.Proxy(), Reset, Next, std::numeric_limits::quiet_NaN(), 0, 256); size_t n_batches = 0; @@ -139,7 +139,7 @@ TEST(IterativeDeviceDMatrix, RowMajorMissing) { reinterpret_cast(get(j_interface["data"][0]))); thrust::copy(h_data.cbegin(), h_data.cend(), ptr); - IterativeDeviceDMatrix m( + IterativeDMatrix m( &iter, iter.Proxy(), Reset, Next, std::numeric_limits::quiet_NaN(), 0, 256); auto &ellpack = *m.GetBatches({0, 256}).begin(); @@ -159,7 +159,7 @@ TEST(IterativeDeviceDMatrix, IsDense) { int num_bins = 16; auto test = [num_bins] (float sparsity) { CudaArrayIterForTest iter(sparsity); - IterativeDeviceDMatrix m( + IterativeDMatrix m( &iter, iter.Proxy(), Reset, Next, std::numeric_limits::quiet_NaN(), 0, 256); if (sparsity == 0.0) { diff --git a/tests/cpp/helpers.cu b/tests/cpp/helpers.cu index a68385717f9a..5e0993cd4308 100644 --- a/tests/cpp/helpers.cu +++ b/tests/cpp/helpers.cu @@ -2,7 +2,7 @@ #include "helpers.h" #include "../../src/data/device_adapter.cuh" -#include "../../src/data/iterative_device_dmatrix.h" +#include "../../src/data/iterative_dmatrix.h" namespace xgboost { @@ -28,12 +28,10 @@ int CudaArrayIterForTest::Next() { return 1; } - std::shared_ptr RandomDataGenerator::GenerateDeviceDMatrix() { CudaArrayIterForTest iter{this->sparsity_, this->rows_, this->cols_, 1}; - auto m = std::make_shared( - &iter, iter.Proxy(), Reset, Next, std::numeric_limits::quiet_NaN(), - 0, bins_); + auto m = std::make_shared( + &iter, iter.Proxy(), Reset, Next, std::numeric_limits::quiet_NaN(), 0, bins_); return m; } } // namespace xgboost