the whole project before multi-gpu implementation