@@ -142,7 +142,8 @@ class RegLossObj : public FitInterceptGlmLike {
142142
143143 common::Transform<>::Init (
144144 [block_size, ndata, n_targets] XGBOOST_DEVICE (
145- size_t data_block_idx, common::Span<float > _additional_input,
145+ size_t data_block_idx, auto has_fp64_support,
146+ common::Span<float > _additional_input,
146147 common::Span<GradientPair> _out_gpair,
147148 common::Span<const bst_float> _preds,
148149 common::Span<const bst_float> _labels,
@@ -179,7 +180,7 @@ class RegLossObj : public FitInterceptGlmLike {
179180
180181 void PredTransform (HostDeviceVector<float > *io_preds) const override {
181182 common::Transform<>::Init (
182- [] XGBOOST_DEVICE (size_t _idx, common::Span<float > _preds) {
183+ [] XGBOOST_DEVICE (size_t _idx, auto has_fp64_support, common::Span<float > _preds) {
183184 _preds[_idx] = Loss::PredTransform (_preds[_idx]);
184185 },
185186 common::Range{0 , static_cast <int64_t >(io_preds->Size ())}, this ->ctx_ ->Threads (),
@@ -360,7 +361,7 @@ class PoissonRegression : public FitInterceptGlmLike {
360361 }
361362 bst_float max_delta_step = param_.max_delta_step ;
362363 common::Transform<>::Init (
363- [=] XGBOOST_DEVICE (size_t _idx,
364+ [=] XGBOOST_DEVICE (size_t _idx, auto has_fp64_support,
364365 common::Span<int > _label_correct,
365366 common::Span<GradientPair> _out_gpair,
366367 common::Span<const bst_float> _preds,
@@ -387,7 +388,7 @@ class PoissonRegression : public FitInterceptGlmLike {
387388 }
388389 void PredTransform (HostDeviceVector<bst_float> *io_preds) const override {
389390 common::Transform<>::Init (
390- [] XGBOOST_DEVICE (size_t _idx, common::Span<bst_float> _preds) {
391+ [] XGBOOST_DEVICE (size_t _idx, auto has_fp64_support, common::Span<bst_float> _preds) {
391392 _preds[_idx] = expf (_preds[_idx]);
392393 },
393394 common::Range{0 , static_cast <int64_t >(io_preds->Size ())}, this ->ctx_ ->Threads (),
@@ -566,7 +567,7 @@ class TweedieRegression : public FitInterceptGlmLike {
566567
567568 const float rho = param_.tweedie_variance_power ;
568569 common::Transform<>::Init (
569- [=] XGBOOST_DEVICE (size_t _idx,
570+ [=] XGBOOST_DEVICE (size_t _idx, auto has_fp64_support,
570571 common::Span<int > _label_correct,
571572 common::Span<GradientPair> _out_gpair,
572573 common::Span<const bst_float> _preds,
@@ -597,7 +598,7 @@ class TweedieRegression : public FitInterceptGlmLike {
597598 }
598599 void PredTransform (HostDeviceVector<bst_float> *io_preds) const override {
599600 common::Transform<>::Init (
600- [] XGBOOST_DEVICE (size_t _idx, common::Span<bst_float> _preds) {
601+ [] XGBOOST_DEVICE (size_t _idx, auto has_fp64_support, common::Span<bst_float> _preds) {
601602 _preds[_idx] = expf (_preds[_idx]);
602603 },
603604 common::Range{0 , static_cast <int64_t >(io_preds->Size ())}, this ->ctx_ ->Threads (),
0 commit comments