CuPBoP: CUDA for Parallelized and Broad-range Processors (Full Report)