I expected that reducing the precision of my data (e.g., from int64 to int8) would speed up the training. But, even if I reduce the overall size of my dataset by 74%, I do not see an improvement. Is this expected?
I think you should pass the data directly as
DMatrix(), XGBoosts internal data type. As stated in the official documentation:
DMatrix is an internal data structure that is used by XGBoost, which is optimized for both memory efficiency and training speed. You can construct DMatrix from multiple different sources of data.
I think this also answers your question, since XGBoost is optimized for
DMatrix(), the impact of changes like yours will be small at best.
Changing float precision cannot make any difference as "XGBoost treats all data as 32-bit float internally."