Optimization for viewshed analysis on GPU