@@ -142,7 +142,8 @@ class RegLossObj : public FitInterceptGlmLike {
142
142
143
143
common::Transform<>::Init (
144
144
[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,
146
147
common::Span<GradientPair> _out_gpair,
147
148
common::Span<const bst_float> _preds,
148
149
common::Span<const bst_float> _labels,
@@ -179,7 +180,7 @@ class RegLossObj : public FitInterceptGlmLike {
179
180
180
181
void PredTransform (HostDeviceVector<float > *io_preds) const override {
181
182
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) {
183
184
_preds[_idx] = Loss::PredTransform (_preds[_idx]);
184
185
},
185
186
common::Range{0 , static_cast <int64_t >(io_preds->Size ())}, this ->ctx_ ->Threads (),
@@ -360,7 +361,7 @@ class PoissonRegression : public FitInterceptGlmLike {
360
361
}
361
362
bst_float max_delta_step = param_.max_delta_step ;
362
363
common::Transform<>::Init (
363
- [=] XGBOOST_DEVICE (size_t _idx,
364
+ [=] XGBOOST_DEVICE (size_t _idx, auto has_fp64_support,
364
365
common::Span<int > _label_correct,
365
366
common::Span<GradientPair> _out_gpair,
366
367
common::Span<const bst_float> _preds,
@@ -387,7 +388,7 @@ class PoissonRegression : public FitInterceptGlmLike {
387
388
}
388
389
void PredTransform (HostDeviceVector<bst_float> *io_preds) const override {
389
390
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) {
391
392
_preds[_idx] = expf (_preds[_idx]);
392
393
},
393
394
common::Range{0 , static_cast <int64_t >(io_preds->Size ())}, this ->ctx_ ->Threads (),
@@ -566,7 +567,7 @@ class TweedieRegression : public FitInterceptGlmLike {
566
567
567
568
const float rho = param_.tweedie_variance_power ;
568
569
common::Transform<>::Init (
569
- [=] XGBOOST_DEVICE (size_t _idx,
570
+ [=] XGBOOST_DEVICE (size_t _idx, auto has_fp64_support,
570
571
common::Span<int > _label_correct,
571
572
common::Span<GradientPair> _out_gpair,
572
573
common::Span<const bst_float> _preds,
@@ -597,7 +598,7 @@ class TweedieRegression : public FitInterceptGlmLike {
597
598
}
598
599
void PredTransform (HostDeviceVector<bst_float> *io_preds) const override {
599
600
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) {
601
602
_preds[_idx] = expf (_preds[_idx]);
602
603
},
603
604
common::Range{0 , static_cast <int64_t >(io_preds->Size ())}, this ->ctx_ ->Threads (),
0 commit comments