As the population of anthropogenic space objects transitions from sparse clusters to mega-constellations exceeding 100,000 satellites, traditional orbital propagation techniques face a critical bottleneck. Standard CPU-bound implementations of the Simplified General Perturbations 4 (SGP4) algorithm are less well suited to handle the requisite scale of collision avoidance and Space Situational Awareness (SSA) tasks. This paper introduces \texttt{jaxsgp4}, an open-source high-performance reimplementation of SGP4 utilising the \texttt{JAX} library. \texttt{JAX} has gained traction in the landscape of computational research, offering an easy mechanism for Just-In-Time (JIT) compilation, automatic vectorisation and automatic optimisation of code for CPU, GPU and TPU hardware modalities. By refactoring the algorithm into a pure functional paradigm, we leverage these transformations to execute massively parallel propagations on modern GPUs. We demonstrate that \texttt{jaxsgp4} can propagate the entire Starlink constellation (9,341 satellites) each to 1,000 future time steps in under 4 ms on a single A100 GPU, representing a speedup of $1500\times$ over traditional C++ baselines. Furthermore, we argue that the use of 32-bit precision for SGP4 propagation tasks offers a principled trade-off, sacrificing negligible precision loss for a substantial gain in throughput on hardware accelerators.
翻译:随着人造空间物体从稀疏集群过渡到超过10万颗卫星的超大型星座,传统轨道传播技术面临关键瓶颈。标准基于CPU的简化广义摄动4(SGP4)算法实现难以有效处理所需规模的碰撞规避和空间态势感知(SSA)任务。本文介绍\texttt{jaxsgp4},一个利用\texttt{JAX}库对SGP4进行开源高性能重实现的开源工具。\texttt{JAX}已在计算研究领域获得广泛应用,为代码的即时编译(JIT)、自动向量化及针对CPU、GPU和TPU硬件模式的自动优化提供简便机制。通过将算法重构为纯函数范式,我们利用这些转换在现代GPU上实现大规模并行传播。实验表明,\texttt{jaxsgp4}能在单块A100 GPU上于4毫秒内将整个星链星座(9341颗卫星)各自传播至1000个未来时间步,较传统C++基线实现1500倍的加速提升。此外,我们认为在SGP4传播任务中使用32位精度提供了原则性权衡,以可忽略的精度损失换取硬件加速器上显著的吞吐量提升。