LBM implementation of lid-driven cavity with CUDA and openMP