Modern GPU programming