EvoGP is a high-performance framework for GPU acceleration of Tree-based Genetic Programming (TGP). Given the computationally intensive nature of TGP, EvoGP is proposed to address three key issues: structural heterogeneity, the complexity of integrating multi-level parallelism, and the incompatibility between high-performance CUDA execution and flexible Python-based environments. It addresses these issues by using a tensor representation that encodes variable-sized trees as fixed-form memory-aligned arrays, an adaptive parallelism strategy that dynamically combines intra-object and inter-object parallelism depending on the dataset size, and the integration of custom CUDA kernels into the PyTorch runtime. Experimental results show that EvoGP achieves up to 140x speedup over state-of-the-art GPU-based TGP implementations, while maintaining competitive accuracy and significantly improving scalability at large population sizes. EvoGP is open source and available on GitHub.