A computer-implemented method comprising: maintaining internal state data for a recurrent neural network that is trained to predict memory access addresses of a computer program in a plurality of memory regions, the internal state data specifying a separate internal state for each of the plurality of memory regions; receiving a current input in a sequence of inputs, the sequence of inputs defining a sequence of prior memory access addresses of the computer program; identifying a particular memory region of the memory access address defined by the current input in the sequence of inputs; selecting, from the internal state data, the internal state for the particular memory region; processing, in accordance with the selected internal state for the particular memory region, the current input in the sequence of inputs using the recurrent neural network; in response to processing the current input, generating an output defining a probability distribution of a predicted memory access address that is a future memory access address of the computer program in the particular memory region, wherein a memory access associated with the predicted memory access address is a read access, and updating the selected internal state of the particular memory region; determining that one or more probabilities in the probability distribution meet a threshold criterion; in response to the determining, fetching data from one or more predicted memory access addresses associated with the one or more probabilities that meet the criterion; storing the data in local cache; and associating the updated selected internal state with the particular memory region in the internal state data. maintaining internal state data for a recurrent neural network that is trained to predict memory access addresses of a computer program in a plurality of memory regions, the internal state data specifying a separate internal state for each of the plurality of memory regions; receiving a current input in a sequence of inputs, the sequence of inputs defining a sequence of prior memory access addresses of the computer program; identifying a particular memory region of the memory access address defined by the current input in the sequence of inputs; selecting, from the internal state data, the internal state for the particular memory region; processing, in accordance with the selected internal state for the particular memory region, the current input in the sequence of inputs using the recurrent neural network; in response to processing the current input, generating an output defining a probability distribution of a predicted memory access address that is a future memory access address of the computer program in the particular memory region, wherein a memory access associated with the predicted memory access address is a read access, and updating the selected internal state of the particular memory region; determining that one or more probabilities in the probability distribution meet a threshold criterion; in response to the determining, fetching data from one or more predicted memory access addresses associated with the one or more probabilities that meet the criterion; storing the data in local cache; and associating the updated selected internal state with the particular memory region in the internal state data.