What are the performance implications of activation checkpointing (gradient checkpointing) at Mistral AI, and how does it trade compute for memory?