Why Distributed Training Is Hard: DTensor and the Costs of Abstraction · HackerTrans