Pairwise ranking objective implementation on gpu (#4873)

* - pairwise ranking objective implementation on gpu
   - there are couple of more algorithms (ndcg and map) for which support will be added
     as follow-up pr's
   - with no label groups defined, get gradient is 90x faster on gpu (120m instance
     mortgage dataset)
   - it can perform by an order of magnitude faster with ~ 10 groups (and adequate cores
     for the cpu implementation)

* Add JSON config to rank obj.
This commit is contained in:
sriramch
2019-10-22 20:40:07 -07:00
committed by Jiaming Yuan
parent 5620322a48
commit 310fe60b35
8 changed files with 776 additions and 412 deletions

View File

@@ -40,11 +40,12 @@ namespace obj {
DMLC_REGISTRY_LINK_TAG(regression_obj_gpu);
DMLC_REGISTRY_LINK_TAG(hinge_obj_gpu);
DMLC_REGISTRY_LINK_TAG(multiclass_obj_gpu);
DMLC_REGISTRY_LINK_TAG(rank_obj_gpu);
#else
DMLC_REGISTRY_LINK_TAG(regression_obj);
DMLC_REGISTRY_LINK_TAG(hinge_obj);
DMLC_REGISTRY_LINK_TAG(multiclass_obj);
#endif // XGBOOST_USE_CUDA
DMLC_REGISTRY_LINK_TAG(rank_obj);
#endif // XGBOOST_USE_CUDA
} // namespace obj
} // namespace xgboost