diff --git a/src/objective/lambdarank_obj.cc b/src/objective/lambdarank_obj.cc index d0ff5bda5..93c694ec1 100644 --- a/src/objective/lambdarank_obj.cc +++ b/src/objective/lambdarank_obj.cc @@ -414,7 +414,7 @@ class LambdaRankNDCG : public LambdaRankObj { }; namespace cuda_impl { -#if !defined(XGBOOST_USE_CUDA) +#if !defined(XGBOOST_USE_CUDA) && !defined(XGBOOST_USE_HIP) void LambdaRankGetGradientNDCG(Context const*, std::int32_t, HostDeviceVector const&, const MetaInfo&, std::shared_ptr, linalg::VectorView, // input bias ratio @@ -430,7 +430,7 @@ void LambdaRankUpdatePositionBias(Context const*, linalg::VectorView*, std::shared_ptr) { common::AssertGPUSupport(); } -#endif // !defined(XGBOOST_USE_CUDA) +#endif // !defined(XGBOOST_USE_CUDA) && !defined(XGBOOST_USE_HIP) } // namespace cuda_impl namespace cpu_impl { @@ -533,7 +533,7 @@ class LambdaRankMAP : public LambdaRankObj { } }; -#if !defined(XGBOOST_USE_CUDA) +#if !defined(XGBOOST_USE_CUDA) && !defined(XGBOOST_USE_HIP) namespace cuda_impl { void MAPStat(Context const*, MetaInfo const&, common::Span, std::shared_ptr) { @@ -549,7 +549,7 @@ void LambdaRankGetGradientMAP(Context const*, std::int32_t, HostDeviceVector const&, const MetaInfo&, std::shared_ptr, @@ -615,7 +615,7 @@ void LambdaRankGetGradientPairwise(Context const*, std::int32_t, HostDeviceVecto common::AssertGPUSupport(); } } // namespace cuda_impl -#endif // !defined(XGBOOST_USE_CUDA) +#endif // !defined(XGBOOST_USE_CUDA) && !defined(XGBOOST_USE_HIP) XGBOOST_REGISTER_OBJECTIVE(LambdaRankNDCG, LambdaRankNDCG::Name()) .describe("LambdaRank with NDCG loss as objective") diff --git a/src/objective/lambdarank_obj.cu b/src/objective/lambdarank_obj.cu index 934a2aa62..38b912f1e 100644 --- a/src/objective/lambdarank_obj.cu +++ b/src/objective/lambdarank_obj.cu @@ -518,9 +518,9 @@ void LambdaRankGetGradientPairwise(Context const* ctx, std::int32_t iter, Launch(ctx, iter, predt, info, p_cache, delta, ti_plus, tj_minus, li, lj, out_gpair); } -struct ReduceOp : thrust::binary_function const&, thrust::tuple - const&, thrust::tuple> { - thrust::tuple __host__ XGBOOST_DEVICE operator()(thrust::tuple const& l, thrust::tuple const& r) { +struct ReduceOp { + template + Tup XGBOOST_DEVICE operator()(Tup const& l, Tup const& r) const { return thrust::make_tuple(thrust::get<0>(l) + thrust::get<0>(r), thrust::get<1>(l) + thrust::get<1>(r)); }