Taichi: Productive, portable, and performant GPU programming in Python