JAX:承诺问题
4.0当你在JAX中使用`default_device`上下文管理器在CPU上创建数组时,数组实际上并未"提交"(committed)到该设备,JAX会自由地将其移动到其他设备(如GPU)。这会导致看似简单的数组切片操作耗时数秒——因为JAX可能每次都在移动整个父数组。解决方案是使用`jax.device_put`显式将数组提交到目标设备,这样后续操作的速度可以从1.2秒降至0.0002秒以下。对于需要在GPU上训练但将数据集保存在CPU内存中的场景(如LLM训练),理解这一机制至关重要。