/*! * Copyright (c) 2021 Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See LICENSE file in the project root for * license information. */ #ifdef USE_CUDA_EXP #include "cuda_regression_objective.hpp" #include #include namespace LightGBM { CUDARegressionL2loss::CUDARegressionL2loss(const Config& config): CUDARegressionObjectiveInterface(config) {} CUDARegressionL2loss::CUDARegressionL2loss(const std::vector& strs): CUDARegressionObjectiveInterface(strs) {} CUDARegressionL2loss::~CUDARegressionL2loss() {} void CUDARegressionL2loss::Init(const Metadata& metadata, data_size_t num_data) { CUDARegressionObjectiveInterface::Init(metadata, num_data); } CUDARegressionL1loss::CUDARegressionL1loss(const Config& config): CUDARegressionObjectiveInterface(config) {} CUDARegressionL1loss::CUDARegressionL1loss(const std::vector& strs): CUDARegressionObjectiveInterface(strs) {} CUDARegressionL1loss::~CUDARegressionL1loss() {} void CUDARegressionL1loss::Init(const Metadata& metadata, data_size_t num_data) { CUDARegressionObjectiveInterface::Init(metadata, num_data); cuda_data_indices_buffer_.Resize(static_cast(num_data)); cuda_percentile_result_.Resize(1); if (cuda_weights_ != nullptr) { const int num_blocks = (num_data + GET_GRADIENTS_BLOCK_SIZE_REGRESSION - 1) / GET_GRADIENTS_BLOCK_SIZE_REGRESSION + 1; cuda_weights_prefix_sum_.Resize(static_cast(num_data)); cuda_weights_prefix_sum_buffer_.Resize(static_cast(num_blocks)); cuda_weight_by_leaf_buffer_.Resize(static_cast(num_data)); } cuda_residual_buffer_.Resize(static_cast(num_data)); } CUDARegressionHuberLoss::CUDARegressionHuberLoss(const Config& config): CUDARegressionObjectiveInterface(config) {} CUDARegressionHuberLoss::CUDARegressionHuberLoss(const std::vector& strs): CUDARegressionObjectiveInterface(strs) {} CUDARegressionHuberLoss::~CUDARegressionHuberLoss() {} CUDARegressionFairLoss::CUDARegressionFairLoss(const Config& config): CUDARegressionObjectiveInterface(config) {} CUDARegressionFairLoss::CUDARegressionFairLoss(const std::vector& strs): CUDARegressionObjectiveInterface(strs) {} CUDARegressionFairLoss::~CUDARegressionFairLoss() {} CUDARegressionPoissonLoss::CUDARegressionPoissonLoss(const Config& config): CUDARegressionObjectiveInterface(config) {} CUDARegressionPoissonLoss::CUDARegressionPoissonLoss(const std::vector& strs): CUDARegressionObjectiveInterface(strs) {} CUDARegressionPoissonLoss::~CUDARegressionPoissonLoss() {} void CUDARegressionPoissonLoss::Init(const Metadata& metadata, data_size_t num_data) { CUDARegressionObjectiveInterface::Init(metadata, num_data); LaunchCheckLabelKernel(); } double CUDARegressionPoissonLoss::LaunchCalcInitScoreKernel(const int class_id) const { return Common::SafeLog(CUDARegressionObjectiveInterface::LaunchCalcInitScoreKernel(class_id)); } } // namespace LightGBM #endif // USE_CUDA_EXP