code: def using_quantile_device_dmatrix(
      client: Client, X: da.Array, y: da.Array
  ) -> da.Array:
      """`DaskQuantileDMatrix` is a data type specialized for `hist` tree methods for
       reducing memory usage.
  
      .. versionadded:: 1.2.0
  
      """
      X = dask_cudf.from_dask_dataframe(dd.from_dask_array(X))
      y = dask_cudf.from_dask_dataframe(dd.from_dask_array(y))
  
      # `DaskQuantileDMatrix` is used instead of `DaskDMatrix`, be careful that it can not
      # be used for anything else other than training unless a reference is specified. See
      # the `ref` argument of `DaskQuantileDMatrix`.
      dtrain = dxgb.DaskQuantileDMatrix(client, X, y)
      output = dxgb.train(
          client,
          {"verbosity": 2, "tree_method": "hist", "device": "cuda"},
          dtrain,
          num_boost_round=4,
      )
  
      prediction = dxgb.predict(client, output, X)
      return prediction
  
file_path: xgboost/demo/dask/gpu_training.py
imports: import dask_cudf
  from dask import array
  from dask import dataframe
  from dask.distributed import Client
  from dask_cuda import LocalCUDACluster
  from xgboost import dask
  from xgboost.dask import DaskDMatrix
label_desc: Use image node_id 2 for calling a global function with example usage: using_quantile_device_dmatrix(client, X, y) and returns: prediction