use a common file for functions and config, while keeping CUDA/CPU specific data types