#ifndef XGBOOST_METRIC_RANK_METRIC_H_ #define XGBOOST_METRIC_RANK_METRIC_H_ /** * Copyright 2023 by XGBoost Contributors */ #include // for shared_ptr #include "../common/common.h" // for AssertGPUSupport #include "../common/ranking_utils.h" // for NDCGCache, MAPCache #include "metric_common.h" // for PackedReduceResult #include "xgboost/context.h" // for Context #include "xgboost/data.h" // for MetaInfo #include "xgboost/host_device_vector.h" // for HostDeviceVector namespace xgboost::metric::cuda_impl { PackedReduceResult NDCGScore(Context const *ctx, MetaInfo const &info, HostDeviceVector const &predt, bool minus, std::shared_ptr p_cache); PackedReduceResult MAPScore(Context const *ctx, MetaInfo const &info, HostDeviceVector const &predt, bool minus, std::shared_ptr p_cache); PackedReduceResult PreScore(Context const *ctx, MetaInfo const &info, HostDeviceVector const &predt, std::shared_ptr p_cache); #if !defined(XGBOOST_USE_CUDA) && !defined(XGBOOST_USE_HIP) inline PackedReduceResult NDCGScore(Context const *, MetaInfo const &, HostDeviceVector const &, bool, std::shared_ptr) { common::AssertGPUSupport(); return {}; } inline PackedReduceResult MAPScore(Context const *, MetaInfo const &, HostDeviceVector const &, bool, std::shared_ptr) { common::AssertGPUSupport(); return {}; } inline PackedReduceResult PreScore(Context const *, MetaInfo const &, HostDeviceVector const &, std::shared_ptr) { common::AssertGPUSupport(); return {}; } #endif } // namespace xgboost::metric::cuda_impl #endif // XGBOOST_METRIC_RANK_METRIC_H_