Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# CNN-blocking
Tool for optimize CNN blocking
usage: run_optimizer.py [-h] [-s SCHEDULE] [-v]
{basic,mem_explore, dataflow_explore} arch network
positional arguments:
{basic,mem_explore, dataflow_explore} optimizer type
arch architecture specification
layer layer specification
optional arguments:
-h, --help show this help message and exit
-s SCHEDULE, --schedule SCHEDULE restriction of the schedule space
this is optional but restricting the schedule space will accelerate the scipt significantly
-v, --verbose vebosity
# Examples
## To optimize loop blocking.
Dataflow: C | K
Memory Architecture: 3 level
Network: AlexNet Conv3 Batch16
```
python ./tools/run_optimizer.py basic ./examples/arch/3_level_mem_basic_example.json ./examples/layer/alex_conv3_batch16.json -s ./examples/schedule/dataflow_C_K.json -v
```
## To optimize memory capacity.
Dataflow: C | K
Memory Architecture: 3 level
Network: AlexNet Conv3 Batch16
```
python ./tools/run_optimizer.py mem_explore ./examples/arch/3_level_mem_explore_example.json ./examples/layer/alex_conv3_batch16.json -s ./examples/schedule/eyeriss_alex_conv3.json -v
```
## To explore dataflow.
Dataflow: All
Memory Architecture: Eyeriss
Network: AlexNet Conv3 Batch16
```
python ./tools/run_optimizer.py dataflow_explore ./examples/arch/3_level_mem_basic_example.json ./examples/layer/alex_conv3_batch16.json -v
```
or:
```
python ./tools/run_optimizer.py dataflow_explore ./examples/arch/3_level_mem_basic_example.json ./examples/layer/alex_conv3_batch16.json -n user_defined_pickle_filename -v
```