Learning Execution through Neural Code Fusion
Zhan Shi, Kevin Swersky, Danny Tarlow, Paruhasarathy Ranganathan, Milad Hashemi
Learning Execution through Neural Code Fusion Zhan Shi, Kevin - - PowerPoint PPT Presentation
Learning Execution through Neural Code Fusion Zhan Shi, Kevin Swersky, Danny Tarlow, Paruhasarathy Ranganathan , Milad Hashemi Overview Proprietary + Confidential Motivation Background Neural Code Fusion Experimental Results
Zhan Shi, Kevin Swersky, Danny Tarlow, Paruhasarathy Ranganathan, Milad Hashemi
Confidential + Proprietary Proprietary + Confidential
2
Confidential + Proprietary Proprietary + Confidential
3
Proprietary + Confidential Proprietary + Confidential
2% Pergormance/Year is the New Normal
4
Source: Paruhasarathy Ranganathan, More Moore: Thinking Outside the (Server) Box
Confidential + Proprietary Proprietary + Confidential
○ Branch prediction, value prediction, cache replacement, prefetching...
5
Confidential + Proprietary Proprietary + Confidential
○ Branch prediction, value prediction, cache replacement, prefetching...
○ Variable naming, fjnding bugs, algorithm classifjcation, program synthesis… ○ Pergormance-related tasks: device mapping, thread coarsening, throughput prediction...
6
Confidential + Proprietary Proprietary + Confidential
○ Branch prediction, value prediction, cache replacement, prefetching...
○ Variable naming, fjnding bugs, algorithm classifjcation, program synthesis… ○ Pergormance-related tasks: device mapping, thread coarsening, throughput prediction...
7
Confidential + Proprietary Proprietary + Confidential
for (i = 0; i < k; i++) { }
8
Confidential + Proprietary Proprietary + Confidential
for (i = 0; i < k; i++) { }
9
Highly biased
Confidential + Proprietary Proprietary + Confidential
for (i = 0; i < k; i++) { }
10
Highly biased Branch history doesn’t help
Confidential + Proprietary Proprietary + Confidential
while(...){ generate k; for (i = 0; i < k; i++) { } }
11
Highly biased Branch history doesn’t help
Confidential + Proprietary Proprietary + Confidential
while(...){ generate k; for (i = 0; i < k; i++) { } }
12
Highly biased Branch history doesn’t help
[Static] i and k are compared [Dynamic] values of i and k
Confidential + Proprietary Proprietary + Confidential
13
Confidential + Proprietary Proprietary + Confidential
14
Confidential + Proprietary Proprietary + Confidential
Battaglia et al., 2018
15
Confidential + Proprietary Proprietary + Confidential
16
Input graph
Confidential + Proprietary Proprietary + Confidential
17
Input graph Step 0
Confidential + Proprietary Proprietary + Confidential
18
Input graph Step 0 Step 1
Confidential + Proprietary Proprietary + Confidential
19
Input graph Step 0 Step 1 Step 2
Confidential + Proprietary Proprietary + Confidential
20
Input graph Step 0 Step 1 Step 2
GRU GRU
Confidential + Proprietary Proprietary + Confidential
Allamanis et al., 2017
21
Confidential + Proprietary Proprietary + Confidential
model?
22
Confidential + Proprietary Proprietary + Confidential
23
Confidential + Proprietary Proprietary + Confidential
24
Confidential + Proprietary Proprietary + Confidential
25
Confidential + Proprietary Proprietary + Confidential
26
Confidential + Proprietary Proprietary + Confidential
27
Confidential + Proprietary Proprietary + Confidential
28
Confidential + Proprietary Proprietary + Confidential
29
Confidential + Proprietary Proprietary + Confidential
30
Confidential + Proprietary Proprietary + Confidential
31
Confidential + Proprietary Proprietary + Confidential
graph simultaneously
○ Value prediction, indirect branch prediction, memory disambiguation, caching…
32
Confidential + Proprietary Proprietary + Confidential
○ The values of the set of variable nodes ○ Captured during program execution
33
Confidential + Proprietary Proprietary + Confidential
○ Categorical: [1, 0, 0, 0] ○ Scalar: 3 ○ Binary: 11
34
Confidential + Proprietary Proprietary + Confidential
35
for(k=0; k < n; k+=3){ for (i = 0; i < k; i++) { } }
Confidential + Proprietary Proprietary + Confidential
○ Binary > scalar > categorical
36
Confidential + Proprietary Proprietary + Confidential
37
Confidential + Proprietary Proprietary + Confidential
○ SPEC06 INT
○ Dynamic: control fmow (branch prediction) and data fmow (prefetching) ○ Static: algorithm classifjcation
○ 70% training ○ 30% testing
38
Confidential + Proprietary Proprietary + Confidential
39
Confidential + Proprietary Proprietary + Confidential
assembly with no external data sources.
40
Confidential + Proprietary Proprietary + Confidential
○ creates useful representations
○ Data is usually purely dynamic ○ Model is history-based
○ Learned representation can also transfer to a unseen static task
41