diff --git a/cpp/include/cudf/detail/utilities/element_argminmax.cuh b/cpp/include/cudf/detail/utilities/element_argminmax.cuh index 45b56278dba8..e6f2e79fc2e5 100644 --- a/cpp/include/cudf/detail/utilities/element_argminmax.cuh +++ b/cpp/include/cudf/detail/utilities/element_argminmax.cuh @@ -37,7 +37,9 @@ struct element_argminmax_fn { bool const has_nulls; bool const arg_min; - __device__ inline auto operator()(size_type const& lhs_idx, size_type const& rhs_idx) const + // The noinline attribute is due to the aggressive inlining of thrust::reduce_by_key + // resulting in very high compile times. + __noinline__ __device__ auto operator()(size_type const& lhs_idx, size_type const& rhs_idx) const { // The extra bounds checking is due to issue github.com/rapidsai/cudf/9156 and // github.com/NVIDIA/thrust/issues/1525