TUNING OF LOOP ORDERS IN BLOCKED DENSE BASIC LINEAR ALGEBRA SUBROUTINES
First Claim
1. An apparatus to tune loop ordering in computer programs, the apparatus comprising:
- a sequence generator to generate a plurality of sequence pairs, a first one of the sequence pairs including;
(i) a first input sequence representing first accesses to first tensors in a first loop nest of a first computer program, and (ii) a first output sequence representing a first tuned loop nest corresponding to the first accesses to the first tensors in the first loop nest;
a model trainer to train a recurrent neural network using the sequence pairs as training data, the recurrent neural network to be trained to tune loop ordering of a second computer program based on a second input sequence representing second accesses to second tensors in a second loop nest of the second computer program; and
a memory interface to store, in memory, a trained model corresponding to the recurrent neural network.
1 Assignment
0 Petitions
Accused Products
Abstract
An example includes a sequence generator to generate a plurality of sequence pairs, a first one of the sequence pairs including: (i) a first input sequence representing first accesses to first tensors in a first loop nest of a first computer program, and (ii) a first output sequence representing a first tuned loop nest corresponding to the first accesses to the first tensors in the first loop nest; a model trainer to train a recurrent neural network based on the sequence pairs as training data, the recurrent neural network to be trained to tune loop ordering of a second computer program based on a second input sequence representing second accesses to a second tensor in a second loop nest of the second computer program; and a memory interface to store, in memory, a trained model corresponding to the recurrent neural network.
-
Citations
24 Claims
-
1. An apparatus to tune loop ordering in computer programs, the apparatus comprising:
-
a sequence generator to generate a plurality of sequence pairs, a first one of the sequence pairs including;
(i) a first input sequence representing first accesses to first tensors in a first loop nest of a first computer program, and (ii) a first output sequence representing a first tuned loop nest corresponding to the first accesses to the first tensors in the first loop nest;a model trainer to train a recurrent neural network using the sequence pairs as training data, the recurrent neural network to be trained to tune loop ordering of a second computer program based on a second input sequence representing second accesses to second tensors in a second loop nest of the second computer program; and a memory interface to store, in memory, a trained model corresponding to the recurrent neural network. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer readable storage medium comprising instructions that, when executed by a processor, cause the processor to at least:
-
generate a plurality of sequence pairs, a first one of the sequence pairs including;
(i) a first input sequence representing first accesses to first tensors in a first loop nest of a first computer program, and (ii) a first output sequence representing a first tuned loop nest corresponding to the first accesses to the first tensors in the first loop nest;train a recurrent neural network using the sequence pairs as training data, the recurrent neural network to be trained to tune loop ordering of a second computer program based on a second input sequence representing second accesses to second tensors in a second loop nest of the second computer program; and store, in memory, a trained model corresponding to the recurrent neural network. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method to tune loop ordering in computer programs, the method comprising:
-
generating a plurality of sequence pairs, a first one of the sequence pairs including;
(i) a first input sequence representing first accesses to first tensors in a first loop nest of a first computer program, and (ii) a first output sequence representing a first tuned loop nest corresponding to the first accesses to the first tensors in the first loop nest;training a recurrent neural network using the sequence pairs as training data, the recurrent neural network to be trained to tune loop ordering of a second computer program based on a second input sequence representing second accesses to second tensors in a second loop nest of the second computer program; and storing, in memory, a trained model corresponding to the recurrent neural network. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. An apparatus to tune loop ordering in computer programs, the apparatus comprising:
-
means for generating a plurality of sequence pairs, a first one of the sequence pairs including;
(i) a first input sequence representing first accesses to first tensors in a first loop nest of a first computer program, and (ii) a first output sequence representing a first tuned loop nest corresponding to the first accesses to the first tensors in the first loop nest;means for training a recurrent neural network using the sequence pairs as training data, the recurrent neural network to be trained to tune loop ordering of a second computer program based on a second input sequence representing second accesses to second tensors in a second loop nest of the second computer program; and means for storing, in memory, a trained model corresponding to the recurrent neural network. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification