├── Acc_results_compare_trace.pl ├── Acc_results_processing_silent.pl ├── Extract_operations.pl ├── Parse_all_results.pl ├── README.md ├── config ├── multipliers │ ├── alex_net_multipliers.pl │ ├── captioning_multipliers.pl │ ├── langmod_multipliers.pl │ ├── resnet152_multipliers.pl │ └── vgg19_net_multipliers.pl ├── tech │ └── Config_Baseline_28nm_1_8.pl ├── templates │ ├── tech.ttemplate │ └── zsim.ztemplate └── zsim │ └── zsim_Baseline_8.cfg ├── energy-plot.py ├── energy-sweep.py ├── main.py ├── ops ├── alex_net_16_16_Ops.pl ├── alex_net_16_1_Ops.pl ├── alex_net_16_2_Ops.pl ├── alex_net_16_4_Ops.pl ├── alex_net_16_8_Ops.pl ├── alex_net_32_16_Ops.pl ├── alex_net_32_1_Ops.pl ├── alex_net_32_2_Ops.pl ├── alex_net_32_4_Ops.pl ├── alex_net_32_8_Ops.pl ├── alex_net_8_16_Ops.pl ├── alex_net_8_1_Ops.pl ├── alex_net_8_2_Ops.pl ├── alex_net_8_4_Ops.pl ├── alex_net_8_8_Ops.pl ├── captioning_16_16_Ops.pl ├── captioning_16_1_Ops.pl ├── captioning_16_2_Ops.pl ├── captioning_16_4_Ops.pl ├── captioning_16_8_Ops.pl ├── captioning_32_16_Ops.pl ├── captioning_32_1_Ops.pl ├── captioning_32_2_Ops.pl ├── captioning_32_4_Ops.pl ├── captioning_32_8_Ops.pl ├── captioning_8_16_Ops.pl ├── captioning_8_1_Ops.pl ├── captioning_8_2_Ops.pl ├── captioning_8_4_Ops.pl ├── captioning_8_8_Ops.pl ├── langmod_16_16_Ops.pl ├── langmod_16_1_Ops.pl ├── langmod_16_2_Ops.pl ├── langmod_16_4_Ops.pl ├── langmod_16_8_Ops.pl ├── langmod_32_16_Ops.pl ├── langmod_32_1_Ops.pl ├── langmod_32_2_Ops.pl ├── langmod_32_4_Ops.pl ├── langmod_32_8_Ops.pl ├── langmod_8_16_Ops.pl ├── langmod_8_1_Ops.pl ├── langmod_8_2_Ops.pl ├── langmod_8_4_Ops.pl ├── langmod_8_8_Ops.pl ├── resnet152_16_16_Ops.pl ├── resnet152_16_1_Ops.pl ├── resnet152_16_2_Ops.pl ├── resnet152_16_4_Ops.pl ├── resnet152_16_8_Ops.pl ├── resnet152_32_16_Ops.pl ├── resnet152_32_1_Ops.pl ├── resnet152_32_2_Ops.pl ├── resnet152_32_4_Ops.pl ├── resnet152_32_8_Ops.pl ├── resnet152_8_16_Ops.pl ├── resnet152_8_1_Ops.pl ├── resnet152_8_2_Ops.pl ├── resnet152_8_4_Ops.pl ├── resnet152_8_8_Ops.pl ├── vgg19_net_16_16_Ops.pl ├── vgg19_net_16_1_Ops.pl ├── vgg19_net_16_2_Ops.pl ├── vgg19_net_16_4_Ops.pl ├── vgg19_net_16_8_Ops.pl ├── vgg19_net_32_16_Ops.pl ├── vgg19_net_32_1_Ops.pl ├── vgg19_net_32_2_Ops.pl ├── vgg19_net_32_4_Ops.pl ├── vgg19_net_32_8_Ops.pl ├── vgg19_net_8_16_Ops.pl ├── vgg19_net_8_1_Ops.pl ├── vgg19_net_8_2_Ops.pl ├── vgg19_net_8_4_Ops.pl └── vgg19_net_8_8_Ops.pl ├── setup.sh ├── simulate_zsim.sh ├── template.py └── util.py /Acc_results_compare_trace.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | use strict; 4 | use List::Util 'sum'; 5 | #use IPC::System::Simple qw(system capture); 6 | use File::Basename; 7 | use FileHandle; 8 | use Cwd; 9 | my $top = $ARGV[0]; 10 | require $ARGV[1]; 11 | our(%NNops, %NNops1, %NNops2, %NNops3, %NNops4); 12 | my $word_size=$ARGV[2]; 13 | my $batch_size=$ARGV[3]; 14 | require $ARGV[5]; 15 | my $comparison_config=$ARGV[6]; 16 | our(%multipliers); 17 | my $Config_BaseDir="/pool0/bartolo/TSMC/sim-auto/config/tech"; #TODO: Fill with the correct path 18 | my @arch=("Baseline", $comparison_config); 19 | my @Freq=(1,1); #TODO: Feed them as inputs later 20 | my $availtypes=2; 21 | my $config_path; 22 | my $nops;my $temp1;my $temp2; 23 | my $output_file= "./results/".$ARGV[4]; 24 | my @Summary=([0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]); 25 | open my $file_parser,'>',$output_file or die $!; 26 | # printing variable names 27 | my ($par_dir, $sub_dir); 28 | for (my $systype=0;$systype<$availtypes;$systype++){ 29 | my @Total_output=(0) x 11; #8 entries from the parser 30 | $config_path=$Config_BaseDir."/Config_".$arch[$systype]."_28nm_".$Freq[$systype]."_".$word_size.".pl"; 31 | print $file_parser $arch[$systype],"\n";; 32 | print $file_parser "Layer, Active time, Stalled time, Total time, Compute active energy, Register file energy, Idle Energy, Total Cache Energy, Total Mem Energy, Mem Reads, Mem Writes, Total Energy\n"; 33 | my $top1=$top.'/'.$word_size.'/'.$batch_size.'/'.$arch[$systype]; 34 | opendir($par_dir, $top1); 35 | my @files = sort { $a cmp $b } readdir($par_dir); 36 | while (my $sub_folders = shift @files) { 37 | next if ($sub_folders =~ /^..?$/); # skip . and .. 38 | my $path = $top1 . '/' . $sub_folders; 39 | next unless (-d $path); # skip anything that isn't a directory 40 | opendir($sub_dir, $path); 41 | while (my $file = readdir($sub_dir)) { 42 | next unless $file =~ /\.out?$/i; 43 | my $full_path = $path . '/' . $file; 44 | #print_file_names($full_path); 45 | #if($systype==0){ 46 | # $nops=$NNops{basename($path)}; 47 | #}elsif($systype==1){ 48 | # $nops=$NNops1{basename($path)}; 49 | #}elsif($systype==2){ 50 | # $nops=$NNops2{basename($path)}; 51 | #}elsif($systype==3){ 52 | # $nops=$NNops3{basename($path)}; 53 | #}elsif($systype==4){ 54 | # $nops=$NNops4{basename($path)}; 55 | #} 56 | $nops=$NNops{basename($path)}; 57 | my $multiplier=$multipliers{basename($path)}; 58 | #print $nops." is the value of nops \n"; 59 | my $parser_output=`./Acc_results_processing_silent.pl $full_path $config_path $nops $multiplier`; 60 | my @_parsed_numbers=split(/\,/,$parser_output); 61 | $_parsed_numbers[10]=$_parsed_numbers[3]+$_parsed_numbers[4]+$_parsed_numbers[5]+$_parsed_numbers[6]+$_parsed_numbers[7]; 62 | chomp $_parsed_numbers[9]; 63 | print $file_parser basename($path) ,", ", join(",",@_parsed_numbers),"\n"; 64 | @Total_output= map { $Total_output[$_] + $_parsed_numbers[$_]} 0..10; 65 | } 66 | closedir($sub_dir); 67 | } 68 | @{$Summary[$systype]}=@Total_output; 69 | print $file_parser "Total,",join(",",@Total_output),"\n"; 70 | closedir($par_dir); 71 | 72 | if($systype==0){ 73 | $temp1=$Summary[$systype][2]; 74 | $temp2=$Summary[$systype][10]; 75 | } 76 | #doing the benefits. Coding is super crude here :). Well who cares ! 77 | $Summary[$systype][0]=$Summary[$systype][0]/$temp1*100; 78 | $Summary[$systype][1]=$Summary[$systype][1]/$temp1*100; 79 | $Summary[$systype][2]=$Summary[$systype][2]/$temp1*100; 80 | 81 | $Summary[$systype][3]=($Summary[$systype][3]+$Summary[$systype][4])/$temp2*100; 82 | $Summary[$systype][4]=$Summary[$systype][5]/$temp2*100; 83 | $Summary[$systype][5]=($Summary[$systype][6]+$Summary[$systype][7])/$temp2*100; 84 | $Summary[$systype][6]=$Summary[$systype][10]/$temp2*100; 85 | $Summary[$systype][7]=100/$Summary[$systype][2]; 86 | $Summary[$systype][8]=100/$Summary[$systype][6]; 87 | $Summary[$systype][9]=$Summary[$systype][7]*$Summary[$systype][8]; 88 | 89 | print $file_parser "Percentage & Benefits \n"; 90 | print $file_parser "System, Active time, Stalled time, Total time, Compute active energy (compute + reg file), Idle energy, Mem energy (Cache + Mem), Total energy, Exec. time benefits, Energy benefits, EDP\n"; 91 | print $file_parser $arch[$systype],", ",,join(",",@{$Summary[$systype]}),"\n"; 92 | } 93 | close $file_parser; 94 | sub print_file_names() 95 | { 96 | my $file = shift; 97 | my $fh1 = FileHandle->new($file) 98 | or die "ERROR: $!"; #ERROR HERE 99 | print("$file\n"); 100 | } 101 | -------------------------------------------------------------------------------- /Acc_results_processing_silent.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | use strict; 4 | use List::Util 'sum'; 5 | sub max ($$) {$_[$_[0]<$_[1]] } 6 | require $ARGV[1]; 7 | my $nops=$ARGV[2]; 8 | my $multiplier=$ARGV[3]; 9 | #my $ncompute=256; #TODO: replace this with the actual number used from the schedule file 10 | our ($ncompute,$NCORES,$NUM_CACHE_LEVELS,@NCACHE,$NCONTROLLERS,$leakage_power,$Dynamic_E_per_op,$Frequency,$EPI,$Idle_ratio,@CACHE_E_WRITE,@CACHE_E_READ,@CACHE_LKG,@MEM_E_per_bit,$MEM_LKG,$LINE_SIZE,$BUF_E,$BUF_LKG,$BUF_LOOKUP,$reg_bit_width,$reg_e_per_bit); 11 | #print $NCORES, "\n"; 12 | #Architecture Params 13 | $nops=$nops*$NCORES; 14 | my $reg_energy_access= $reg_bit_width * $reg_e_per_bit; 15 | my$EPI=$Dynamic_E_per_op; #The energy per instruction value in nJ. This value is obtained by dividing the peak power with the max fequency 16 | my$Leakage=$leakage_power/$Frequency; 17 | my $Idle_ratio=($leakage_power/$Frequency)/$EPI; # the percentage of peak energy spent in Idle mode 18 | my $sleep_ratio=($leakage_power/$Frequency)/$EPI; # the percentage of energy spent in contention stall mode 19 | my @Core_cycles= (0) x $NCORES; 20 | my $cycles_cnt=0; 21 | my @Core_ccycles= (0) x $NCORES; 22 | my $ccycles_cnt=0; 23 | my @Core_inst=(0) x $NCORES; 24 | my $inst_cnt=0; 25 | my $TOTAL_cycles=0; 26 | my @fhGETS=(); 27 | my @fhGETX=(); 28 | my @hGETS=(); 29 | my @hGETX=(); 30 | my @mGETS=(); 31 | my @mGETXIM= (); 32 | my @mGETXSM=(); 33 | my @PUTS= (); 34 | my @PUTX=(); 35 | my @INV=(); 36 | my @INVX= (); 37 | my @MemRD= (0) x $NCONTROLLERS; 38 | my @MemWT= (0) x $NCONTROLLERS; 39 | my @Buffer=(0) x $NCONTROLLERS; 40 | my @MemeACTPRE = (0) x $NCONTROLLERS; 41 | my @MemeRDWR = (0) x $NCONTROLLERS; 42 | my @MemeREF = (0) x $NCONTROLLERS; 43 | my @MemeBKGD = (0) x $NCONTROLLERS; 44 | my $MemEnergy=0; 45 | my $MEM_CNTR=0; 46 | my @Total_mem_power= (0) x $NCONTROLLERS; 47 | my $MEM_PWR_CNTR=0; 48 | my $FILE_NAME=$ARGV[0]; 49 | open my $DATA_FILE, '<', $FILE_NAME or die $!; 50 | while (my $line= <$DATA_FILE>){ 51 | if (index($line,"cycles")>=0){ 52 | my ($Num_cycles)= $line=~ /([0-9]+)/; 53 | $Core_cycles[$cycles_cnt]=$Num_cycles; 54 | if($TOTAL_cycles<$Num_cycles){ 55 | $TOTAL_cycles=$Num_cycles; 56 | } 57 | $cycles_cnt++; 58 | } 59 | elsif (index($line,"cCycles")>=0){ 60 | my ($Num_cCycles)= $line=~ /([0-9]+)/; 61 | $Core_ccycles[$ccycles_cnt]=$Num_cCycles; 62 | $ccycles_cnt++; 63 | } 64 | elsif (index($line,"ops")>=0){ 65 | my ($Num_instrs)= $line=~ /([0-9]+)/; 66 | $Core_inst[$inst_cnt]=$Num_instrs; 67 | $inst_cnt++; 68 | } 69 | elsif (index($line,"fhGETS")>=0){ 70 | my ($Num_TMP)= $line=~ /([0-9]+)/; 71 | $fhGETS[++$#fhGETS]=$Num_TMP; 72 | } 73 | elsif (index($line,"fhGETX")>=0){ 74 | my ($Num_TMP)= $line=~ /([0-9]+)/; 75 | $fhGETX[++$#fhGETX]=$Num_TMP; 76 | } 77 | elsif (index($line,"hGETS")>=0){ 78 | my ($Num_TMP)= $line=~ /([0-9]+)/; 79 | $hGETS[++$#hGETS]=$Num_TMP; 80 | } 81 | elsif (index($line,"hGETX")>=0){ 82 | my ($Num_TMP)= $line=~ /([0-9]+)/; 83 | $hGETX[++$#hGETX]=$Num_TMP; 84 | } 85 | elsif (index($line,"mGETS")>=0){ 86 | my ($Num_TMP)= $line=~ /([0-9]+)/; 87 | $mGETS[++$#mGETS]=$Num_TMP; 88 | } 89 | elsif (index($line,"mGETXIM")>=0){ 90 | my ($Num_TMP)= $line=~ /([0-9]+)/; 91 | $mGETXIM[++$#mGETXIM]=$Num_TMP; 92 | } 93 | elsif (index($line,"mGETXSM")>=0){ 94 | my ($Num_TMP)= $line=~ /([0-9]+)/; 95 | $mGETXSM[++$#mGETXSM]=$Num_TMP; 96 | } 97 | elsif (index($line,"PUTS")>=0){ 98 | my ($Num_TMP)= $line=~ /([0-9]+)/; 99 | $PUTS[++$#PUTS]=$Num_TMP; 100 | } 101 | elsif (index($line,"PUTX")>=0){ 102 | my ($Num_TMP)= $line=~ /([0-9]+)/; 103 | $PUTX[++$#PUTX]=$Num_TMP; 104 | } 105 | elsif (index($line,"INV")>=0){ 106 | my ($Num_TMP)= $line=~ /([0-9]+)/; 107 | $INV[++$#INV]=$Num_TMP; 108 | } 109 | elsif (index($line,"INVX")>=0){ 110 | my ($Num_TMP)= $line=~ /([0-9]+)/; 111 | $INVX[++$#INVX]=$Num_TMP; 112 | } 113 | elsif (index($line,"rd:")>=0){ 114 | my ($Num_TMP)= $line=~ /([0-9]+)/; 115 | $MemRD[$MEM_CNTR]=$Num_TMP; 116 | } 117 | elsif (index($line,"BufWrites:")>=0){ 118 | my ($Num_TMP)= $line=~ /([0-9]+)/; 119 | $Buffer[$MEM_CNTR]=$Num_TMP; 120 | } 121 | elsif (index($line,"wr:")>=0){ 122 | my ($Num_TMP)= $line=~ /([0-9]+)/; 123 | $MemWT[$MEM_CNTR]=$Num_TMP; 124 | $MEM_CNTR++; 125 | } 126 | elsif (index($line,"eACTPRE:")>=0){ 127 | $MEM_CNTR--; 128 | my ($Num_TMP)= $line=~ /([0-9]+)/; 129 | $MemeACTPRE[$MEM_CNTR]=$Num_TMP; 130 | } 131 | elsif (index($line,"eRDWR:")>=0){ 132 | my ($Num_TMP)= $line=~ /([0-9]+)/; 133 | $MemeRDWR[$MEM_CNTR]=$Num_TMP; 134 | } 135 | elsif (index($line,"eREF:")>=0){ 136 | my ($Num_TMP)= $line=~ /([0-9]+)/; 137 | $MemeREF[$MEM_CNTR]=$Num_TMP; 138 | } 139 | elsif (index($line,"eBKGD:")>=0){ 140 | my ($Num_TMP)= $line=~ /([0-9]+)/; 141 | $MemeBKGD[$MEM_CNTR]=$Num_TMP; 142 | $MEM_CNTR++; 143 | } 144 | elsif (index($line,"Total average power")>=0){ 145 | my ($Num_TMP)= $line=~ /([0-9]+)/; 146 | $Total_mem_power[$MEM_PWR_CNTR]=$Num_TMP; 147 | $MEM_PWR_CNTR++; 148 | } 149 | elsif (index($line,"eACTPRE:")>=0){ 150 | my ($Num_TMP)= $line=~ /([0-9]+)/; 151 | $MemEnergy+=$Num_TMP; 152 | } 153 | elsif (index($line,"eRDWR:")>=0){ 154 | my ($Num_TMP)= $line=~ /([0-9]+)/; 155 | $MemEnergy+=$Num_TMP; 156 | } 157 | elsif (index($line,"eREF:")>=0){ 158 | my ($Num_TMP)= $line=~ /([0-9]+)/; 159 | $MemEnergy+=$Num_TMP; 160 | } 161 | elsif (index($line,"eBKGD:")>=0){ 162 | my ($Num_TMP)= $line=~ /([0-9]+)/; 163 | $MemEnergy+=$Num_TMP; 164 | } 165 | } 166 | 167 | #Total Statitics 168 | #Timing 169 | my $active_time=$nops/($ncompute*$NCORES)/$Frequency; 170 | my $sum_of_cycles=sum(@Core_cycles); 171 | @Core_cycles=map {$Core_cycles[$_]-$Core_ccycles[$_]}0..$NCORES-1; 172 | #CORE 173 | my @Idle_cycles= map {$Core_cycles[$_]-$Core_inst[$_]} 0 .. $NCORES-1; 174 | my @CPI= map {$Core_cycles[$_]/max($Core_inst[$_],1)} 0 .. $NCORES-1; 175 | my @IPC= sum(@Core_inst)/$TOTAL_cycles; 176 | my @Energy_Cores_Active=map{$Core_inst[$_]*$EPI} 0 .. $NCORES-1; 177 | my @Energy_Cores_IDLE=map{$Core_cycles[$_]*$Leakage} 0 .. $NCORES-1; 178 | my @Energy_Cores_SLEEP=map{$Core_ccycles[$_]*$Idle_ratio*$EPI} 0 .. $NCORES-1; 179 | my $TOTAL_CORES_ACTIVE=sum(@Energy_Cores_Active); 180 | my $TOTAL_CORES_IDLE=sum(@Energy_Cores_IDLE); 181 | my $TOTAL_CORES_SLEEP=sum(@Energy_Cores_SLEEP); 182 | my $AVG_CPI=sum(@CPI)/$NCORES; 183 | my $AVG_IPC=sum(@IPC)/$NCORES; 184 | my $AVG_INSTR=sum(@Core_inst)/$NCORES; 185 | #CACHE 186 | my $total_num_cache=$NCACHE[0]+$NCACHE[1]*8; #ToDo make more robust 187 | my @L1d_Hits=map {$hGETS[$_]+$hGETX[$_]+$fhGETS[$_]+$fhGETX[$_]} 0..$NCORES-1; 188 | my @L1d_Misses=map {$mGETS[$_]+$mGETXSM[$_]+$mGETXIM[$_]} 0..$NCORES-1; 189 | my @L1dunfilterd_Hits=map {$hGETS[$_]+$hGETX[$_]} 0..$NCORES-1; 190 | my @L1I_Hits=map {$hGETS[$_]+$hGETX[$_]+$fhGETS[$_]+$fhGETX[$_]} $NCORES..2*$NCORES-1; 191 | my @L1I_Misses=map {$mGETS[$_]+$mGETXSM[$_]+$mGETXIM[$_]} $NCORES..2*$NCORES-1; 192 | my @Lower_Level_Hits= map {$hGETS[$_]+$hGETX[$_]} 2*$NCORES..$total_num_cache-1; 193 | my @Lower_Level_Misses=map {$mGETS[$_]+$mGETXSM[$_]+$mGETXIM[$_]} 2*$NCORES..$total_num_cache-1; 194 | my @NUM_READS_L1i=map{$L1I_Hits[$_]+$L1I_Misses[$_]}0..$NCORES-1; 195 | my @NUM_WRITES_L1i=map{$L1I_Misses[$_]}0..$NCORES-1+map{$PUTX[$_]+$PUTS[$_]}$NCORES..2*$NCORES-1;; 196 | #my @NUM_WRITES_L1i= @NUM_WRITES_L1i1+map{$PUTX[$_]+$PUTS[$_]}$NCORES..2*$NCORES-1; 197 | my @NUM_READS_L1d=map{$L1d_Hits[$_]+$L1d_Misses[$_]}0..$NCORES-1; 198 | my @NUM_WRITES_L1d=map{$L1d_Misses[$_]}0..$NCORES-1+map{$PUTX[$_]+$PUTS[$_]}0..$NCORES-1; 199 | #my @NUM_WRITES_L1d= @NUM_WRITES_L1d1+map{$PUTX[$_]+$PUTS[$_]}0..$NCORES-1; 200 | my @NUM_READS_LLC=map{$Lower_Level_Hits[$_]+$Lower_Level_Misses[$_]}0..$#Lower_Level_Misses; 201 | my @NUM_WRITES_LLC1=map{$Lower_Level_Misses[$_]}0..$#Lower_Level_Misses; 202 | my @NUM_WRITES_LLC2= map{$PUTX[$_]+$PUTS[$_]}2*$NCORES..$total_num_cache-1; 203 | my @NUM_WRITES_LLC= @NUM_WRITES_LLC1+map{$PUTX[$_]+$PUTS[$_]}2*$NCORES..$total_num_cache-1; 204 | # This a for loop to get the total energy values 205 | my @L1I_ENERGY=map{($NUM_READS_L1i[$_]*$CACHE_E_READ[0]+$NUM_WRITES_L1i[$_]*$CACHE_E_WRITE[0])+$CACHE_LKG[0]*1e-3*($TOTAL_cycles/$Frequency*1e-9)}0..$NCORES-1; 206 | my @L1d_ENERGY=map{($NUM_READS_L1d[$_]*$CACHE_E_READ[1]+$NUM_WRITES_L1d[$_]*$CACHE_E_WRITE[1])+$CACHE_LKG[1]*1e-3*($TOTAL_cycles/$Frequency*1e-9)}0..$NCORES-1; 207 | my @LLC_ENERGY=(); 208 | for (my $i=1;$i<=$#NCACHE;$i++){ 209 | for(my $j=0;$j<$NCACHE[$i];$j++){ 210 | my $index=($i-1)*$NCACHE[$i]+$j; 211 | $LLC_ENERGY[$index]=$NUM_READS_LLC[$index]*$CACHE_E_READ[$i+1]+$NUM_WRITES_LLC[$index]*$CACHE_E_WRITE[$i+1]+$CACHE_LKG[$i+1]*1e-3*($TOTAL_cycles/$Frequency*1e-9)*$NCACHE[$i];#NCACHE is weird here; 212 | } 213 | } 214 | my @L1I_HitRate=map{$L1I_Hits[$_]/max(1,($L1I_Hits[$_]+$L1I_Misses[$_]))}0..$#L1I_Hits; 215 | 216 | my @L1d_HitRate=map{$L1d_Hits[$_]/max(1,($L1d_Hits[$_]+$L1d_Misses[$_]))}0..$#L1d_Hits; 217 | #my @LLC_HitRate=map{$Lower_Level_Hits[$_]/($Lower_Level_Hits[$_]+$Lower_Level_Misses[$_])}0..$#Lower_Level_Hits; 218 | my $TOTAL_L1i_ENERGY=sum(@L1I_ENERGY); 219 | my $TOTAL_L1d_ENERGY=sum(@L1d_ENERGY); 220 | my $TOTAL_LLC_ENERGY=sum(@LLC_ENERGY); 221 | my $L1I_AVG_HIT_RATE=sum(@L1I_HitRate)/scalar(@L1I_HitRate); 222 | my $L1d_AVG_HIT_RATE=sum(@L1d_HitRate)/scalar(@L1d_HitRate); 223 | my @L1d_MPKI=map{$L1d_Misses[$_]/$Core_inst[$_]*1e3}0 ..$NCORES-1; 224 | my @L1I_MPKI=map{$L1I_Misses[$_]/$Core_inst[$_]*1e3}0 ..$NCORES-1; 225 | my $L2_MPKI=0; 226 | for(my $i=$NCACHE[1];$i<$NCACHE[1]+$NCACHE[2];$i++){ 227 | $L2_MPKI += @Lower_Level_Misses[$i]; 228 | } 229 | $L2_MPKI= $L2_MPKI*1e3/sum(@Core_inst); 230 | my $LLC_MPKI=sum(@Lower_Level_Misses)*1e3/sum(@Core_inst); 231 | my $L1I_AVG_MPKI=sum(@L1I_MPKI)/scalar(@L1I_MPKI); 232 | my $L1d_AVG_MPKI=sum(@L1d_MPKI)/scalar(@L1d_MPKI); 233 | my $L1d_unfiltered=sum(@L1dunfilterd_Hits)/scalar(@L1dunfilterd_Hits); 234 | 235 | 236 | 237 | #Memory 238 | my $MEM_RD=sum(@MemRD); 239 | my $MEM_WT=sum(@MemWT); 240 | my @MEM_RD_ENERGY=map{$MemRD[$_]*$MEM_E_per_bit[0]*$LINE_SIZE}0..$NCONTROLLERS-1; 241 | my @MEM_WT_ENERGY=map{$MemWT[$_]*$MEM_E_per_bit[1]*$LINE_SIZE}0..$NCONTROLLERS-1; 242 | my @MEM_ACTPRE_ENERGY=map{$MemeACTPRE[$_]}0..$NCONTROLLERS-1; 243 | my @MEM_RDWR_ENERGY=map{$MemeRDWR[$_]}0..$NCONTROLLERS-1; 244 | my @MEM_REF_ENERGY=map{$MemeREF[$_]}0..$NCONTROLLERS-1; 245 | my @MEM_BKGD_ENERGY=map{$MemeBKGD[$_]}0..$NCONTROLLERS-1; 246 | my $TOTAL_RD_ENERGY=sum(@MEM_RD_ENERGY); 247 | my $TOTAL_WT_ENERGY=sum(@MEM_WT_ENERGY); 248 | my $TOTAL_ACTPRE_ENERGY=sum(@MEM_ACTPRE_ENERGY); 249 | my $TOTAL_RDWR_ENERGY=sum(@MEM_RDWR_ENERGY); 250 | my $TOTAL_REF_ENERGY=sum(@MEM_REF_ENERGY); 251 | my $TOTAL_BKGD_ENERGY=sum(@MEM_BKGD_ENERGY); 252 | #my $TOTAL_MEM_ENERGY = $TOTAL_ACTPRE_ENERGY+$TOTAL_RDWR_ENERGY+$TOTAL_REF_ENERGY+$TOTAL_BKGD_ENERGY; 253 | #if($TOTAL_MEM_ENERGY==0){ 254 | # $TOTAL_MEM_ENERGY = $TOTAL_RD_ENERGY+$TOTAL_WT_ENERGY; 255 | #} 256 | my $Exec_TIme=$TOTAL_cycles/$Frequency*1e-9; 257 | my $TOTAL_MEM_ENERGY = $TOTAL_ACTPRE_ENERGY+$TOTAL_RDWR_ENERGY+$TOTAL_REF_ENERGY+$TOTAL_BKGD_ENERGY+$TOTAL_RD_ENERGY+$TOTAL_WT_ENERGY+$Exec_TIme*$MEM_LKG*$NCORES*1e9; 258 | 259 | #Statistics printin 260 | #print "Total cycles", $sum_of_cycles,"\n"; 261 | #print "Leakage", $EPI*$Idle_ratio,"\n"; 262 | #print "Total Leakage", $sum_of_cycles*$EPI*$Idle_ratio,"\n"; 263 | #print "Total dynamic", sum(@Core_inst)*$EPI*(1-$Idle_ratio),"\n"; 264 | #print "MAximum Cycles", $TOTAL_cycles,"\n"; 265 | #print "Total # instructions", sum(@Core_inst),"\n"; 266 | #print "Total Instruction Cache accesses", sum(@NUM_READS_L1i)+sum(@NUM_WRITES_L1i), "\n"; 267 | #print "Total Data Cache accesses", sum(@NUM_READS_L1d)+sum(@NUM_WRITES_L1d),"\n"; 268 | #print "Total L2 Cache reads", sum(@NUM_READS_LLC),"\n"; 269 | #print "Total L2 Cache writes", sum(@NUM_WRITES_LLC2),"\n"; 270 | #print "Total Memory accesses", sum(@MemRD)+sum(@MemWT),"\n"; 271 | #print "Execution time:",$TOTAL_cycles/$Frequency*1e-9," (s)\n"; 272 | #print "--Precentage of time in Execution:",sum(@Core_inst)/$sum_of_cycles*100,"%\n"; 273 | #print "--Percentage of time Waiting:",sum(@Idle_cycles)/$sum_of_cycles*100,"%\n"; 274 | #print "--Percentage of time stalled:",sum(@Core_ccycles)/$sum_of_cycles*100,"%\n"; 275 | #print "The Average CPI:",$AVG_CPI,"\n"; 276 | #print "The Average IPC:",$AVG_IPC,"\n"; 277 | #print "CORE Energy:",($TOTAL_CORES_ACTIVE+$TOTAL_CORES_IDLE+$TOTAL_CORES_SLEEP)*1e-9, "(J)\n"; 278 | #print "--Active Energy :",$TOTAL_CORES_ACTIVE*1e-9,"(J)\n"; 279 | #print "--IDLE Energy :",$TOTAL_CORES_IDLE*1e-9,"(J)\n"; 280 | #print "--Sleep Energy due to contention stalls:",$TOTAL_CORES_SLEEP*1e-9,"(J)\n"; 281 | #print "CACHE Energy:",($TOTAL_L1i_ENERGY+$TOTAL_L1d_ENERGY+$TOTAL_LLC_ENERGY)*1e-9,"(J)\n"; 282 | #print "--L1 Instruction Energy:",$TOTAL_L1i_ENERGY*1e-9,"(J)\n"; 283 | #print "--L1 Data Energy :",$TOTAL_L1d_ENERGY*1e-9,"(J)\n"; 284 | #print "--From L2 to LLC Energy:",$TOTAL_LLC_ENERGY*1e-9,"(J)\n"; 285 | #print "HitRates: \n"; 286 | #print "--L1I:",$L1I_AVG_HIT_RATE*100,"% \n"; 287 | #print "----unfiltered:",$L1d_unfiltered,"\n"; 288 | #print "--L1d:",$L1d_AVG_HIT_RATE*100,"% \n"; 289 | #print "Lower Levels:",$#LLC_HitRate,"\n"; 290 | #print "$_\n" for @LLC_HitRate; 291 | #print "MPKI :\n"; 292 | #print "--l1I",$L1I_AVG_MPKI,"\n"; 293 | #print "--L1d",$L1d_AVG_MPKI,"\n"; 294 | #print "Number of lower levels", $#Lower_Level_Misses,"\n"; 295 | #print "Lower Levels:",$LLC_MPKI,"\n"; 296 | #print "--L2:",$L2_MPKI,"\n"; 297 | 298 | 299 | #print "Memory Reads:", sum(@MemRD),"\n"; 300 | #print "Memory Writes:", sum(@MemWT),"\n"; 301 | 302 | #if($Total_mem_power[0]==0){ 303 | # print "Memory Energy:",($TOTAL_RD_ENERGY+$TOTAL_WT_ENERGY)*1e-12+$MEM_LKG*1e-3*$TOTAL_cycles/$Frequency*1e-9,"(J)\n"; 304 | # print "-- Read Energy:",$TOTAL_RD_ENERGY*1e-12,"(J)\n"; 305 | # print "--Write Energy:",$TOTAL_WT_ENERGY*1e-12,"(J)\n"; 306 | #}else{ 307 | # print "Memory Energy:",(sum(@Total_mem_power)*$TOTAL_cycles/$Frequency*1e-9)*1e-3,"(J)\n"; 308 | #} 309 | #print "Buffer Writes:", sum(@Buffer),"\n"; 310 | #print "Buffer Energy:", ((sum(@Buffer)*$BUF_E)*1e-9+((sum(@MemRD)+sum(@MemWT))*$BUF_LOOKUP)*1e-9+$BUF_LKG*$NCONTROLLERS*1e-3*$TOTAL_cycles/$Frequency*1e-9),"(J)\n"; 311 | 312 | print $active_time*1e-9*2*$multiplier,",",($Exec_TIme-$active_time*1e-9)*$multiplier,",",($Exec_TIme+$active_time*1e-9)*$multiplier,",",$nops*$EPI*1e-9*$multiplier,",",$nops*$reg_energy_access*2e-12*$multiplier,",",($Exec_TIme+$active_time*1e-9)*$leakage_power*$NCORES*$multiplier,",",($TOTAL_LLC_ENERGY)*1e-9*$multiplier,",",($TOTAL_MEM_ENERGY)*1e-12*$multiplier,",",sum(@MemRD)*$multiplier,",",sum(@MemWT)*$multiplier, "\n"; 313 | -------------------------------------------------------------------------------- /Extract_operations.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | use strict; 3 | use warnings; 4 | use List::Util qw(first); 5 | my $schedule_file=$ARGV[0]; 6 | my $opfile=$ARGV[1]; 7 | my $net_type=$ARGV[2]; 8 | my $arg_type=$ARGV[3]; 9 | my $array_index=0; 10 | my @layer_names=(); 11 | my @num_ops=(); 12 | my @Keywords=("time","unit_size","access","to","cost","ti","tb","orders","size","part_lprev","part_lcurr","total_nhops","unit_nhops","part","total","unit"); 13 | my $checklayernames=0; 14 | open my $file_pointer, '<', $schedule_file or die $!; 15 | while (my $line= <$file_pointer>){ 16 | if (index($line,"\"ops\"")>=0){ 17 | my ($num_ops_extracted)= $line=~ /([0-9]+)/; 18 | $num_ops[$array_index]=$num_ops_extracted; 19 | $array_index++; 20 | } 21 | elsif (index($line,"\"mappings\"")>=0){ 22 | $checklayernames=1; 23 | } 24 | elsif (index($line,"\"")>=0 && $checklayernames==1){ 25 | my($extracted_name)= $line=~/([a-zA-Z][a-zA-Z0-9_]+)/; 26 | if(!first { $_ eq $extracted_name} @Keywords){ 27 | $layer_names[$array_index]=$extracted_name; 28 | } 29 | } 30 | } 31 | close ($file_pointer); 32 | 33 | if($net_type>=2){ 34 | my $checklayernames=0; 35 | open my $file_pointer, '<', $schedule_file."_2" or die $!; 36 | while (my $line= <$file_pointer>){ 37 | if (index($line,"\"ops\"")>=0){ 38 | my ($num_ops_extracted)= $line=~ /([0-9]+)/; 39 | $num_ops[$array_index]=$num_ops_extracted; 40 | $array_index++; 41 | } 42 | elsif (index($line,"\"mappings\"")>=0){ 43 | $checklayernames=1; 44 | } 45 | elsif (index($line,"\"")>=0 && $checklayernames==1){ 46 | my($extracted_name)= $line=~/([a-zA-Z][a-zA-Z0-9_]+)/; 47 | if(!first { $_ eq $extracted_name} @Keywords){ 48 | $layer_names[$array_index]=$extracted_name; 49 | } 50 | } 51 | } 52 | close ($file_pointer); 53 | 54 | 55 | if($net_type==3){ 56 | my $checklayernames=0; 57 | open my $file_pointer, '<', $schedule_file."_1" or die $!; 58 | while (my $line= <$file_pointer>){ 59 | if (index($line,"\"ops\"")>=0){ 60 | my ($num_ops_extracted)= $line=~ /([0-9]+)/; 61 | $num_ops[$array_index]=$num_ops_extracted; 62 | $array_index++; 63 | } 64 | elsif (index($line,"\"mappings\"")>=0){ 65 | $checklayernames=1; 66 | } 67 | elsif (index($line,"\"")>=0 && $checklayernames==1){ 68 | my($extracted_name)= $line=~/([a-zA-Z][a-zA-Z0-9_]+)/; 69 | if(!first { $_ eq $extracted_name} @Keywords){ 70 | $layer_names[$array_index]=$extracted_name; 71 | } 72 | } 73 | } 74 | close ($file_pointer); 75 | } 76 | } 77 | 78 | if($arg_type==0){ 79 | open $file_pointer, '>', $opfile or die $!; 80 | print $file_pointer "\% NNops =(\n"; 81 | for (my $i=0;$i<$array_index;$i++){ 82 | print $file_pointer $layer_names[$i],"=>",$num_ops[$i],",\n"; 83 | } 84 | print $file_pointer ");\n1;\n"; 85 | close ($file_pointer); 86 | }else{ 87 | open $file_pointer, '>>', $opfile or die $!; 88 | print $file_pointer "\% NNops$arg_type =(\n"; 89 | for (my $i=0;$i<$array_index;$i++){ 90 | print $file_pointer $layer_names[$i],"=>",$num_ops[$i],",\n"; 91 | } 92 | print $file_pointer ");\n1;\n"; 93 | close ($file_pointer); 94 | } 95 | -------------------------------------------------------------------------------- /Parse_all_results.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | use strict; 4 | use warnings; 5 | 6 | # Note -- $ARGV[0] is the first argument to the script, *not* the script itself 7 | # (*not* like C's argv[0]) 8 | my $network_name=$ARGV[0]; 9 | my $param_batch_size=$ARGV[1]; 10 | my $comparison_config=$ARGV[2]; 11 | my $NN_DATAFLOW_PATH=$ENV{'NN_DATAFLOW_PATH'}; 12 | my $op_directory="ops"; 13 | my $results="results"; 14 | system("mkdir -p ./$op_directory"); 15 | system("mkdir -p ./$results"); 16 | my @word_size=(8); 17 | my @batch_size=($param_batch_size); 18 | my @config_range=("Baseline", $comparison_config); # Always compare vs. Baseline 19 | foreach my $word (@word_size){ 20 | foreach my $batch (@batch_size){ 21 | my $schedule_name=$network_name."_".$word."_".$batch; 22 | my $Operations_file_name=$network_name."_".$word."_".$batch."_Ops.pl"; 23 | my $multipliers_file_name=$network_name."_multipliers.pl"; 24 | # my $iter=0; 25 | # foreach my $config (@config_range){ 26 | # my $schedule_directory="$NN_DATAFLOW_PATH/mod_schedule/$config"; 27 | # system("./Extract_operations.pl $schedule_directory/$schedule_name ./$op_directory/$Operations_file_name $network_type $iter"); 28 | # $iter=$iter+1; 29 | # } 30 | # TODO unify $op_file_name with $comparison_config as we pass to Acc_results_compare_trace.pl 31 | my $op_file_name=$network_name."_".$word."_".$batch."_".$comparison_config.".csv"; 32 | system("./Acc_results_compare_trace.pl ./$network_name ./$op_directory/$Operations_file_name $word $batch $op_file_name ./config/multipliers/$multipliers_file_name $comparison_config"); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # accel-sim 2 | -------------------------------------------------------------------------------- /config/multipliers/alex_net_multipliers.pl: -------------------------------------------------------------------------------- 1 | % multipliers =( 2 | conv1=>1, 3 | conv2=>1, 4 | conv3=>1, 5 | conv4=>1, 6 | conv5=>1, 7 | fc1=>1, 8 | fc2=>1, 9 | fc3=>1, 10 | ); 11 | 1; 12 | 13 | -------------------------------------------------------------------------------- /config/multipliers/captioning_multipliers.pl: -------------------------------------------------------------------------------- 1 | % multipliers =( 2 | act=>1, 3 | conv_1=>1, 4 | embed=>1, 5 | output=>1, 6 | ); 7 | 1; 8 | 9 | -------------------------------------------------------------------------------- /config/multipliers/langmod_multipliers.pl: -------------------------------------------------------------------------------- 1 | % multipliers =( 2 | embed1=>1, 3 | act_1=>4, 4 | proj_1=>4, 5 | conv_1=>4, 6 | conv_2=>32, 7 | act_2=>32, 8 | output=>32, 9 | ); 10 | 1; 11 | 12 | -------------------------------------------------------------------------------- /config/multipliers/resnet152_multipliers.pl: -------------------------------------------------------------------------------- 1 | % multipliers =( 2 | conv1=>1, 3 | conv2_1_a=>1, 4 | conv2_1_b=>1, 5 | conv2_1_c=>1, 6 | conv2_2_a=>1, 7 | conv2_2_b=>1, 8 | conv2_2_c=>1, 9 | conv2_3_a=>1, 10 | conv2_3_b=>1, 11 | conv2_3_c=>1, 12 | conv3_1_a=>1, 13 | conv3_1_b=>1, 14 | conv3_1_c=>1, 15 | conv3_2_a=>1, 16 | conv3_2_b=>1, 17 | conv3_2_c=>1, 18 | conv3_3_a=>1, 19 | conv3_3_b=>1, 20 | conv3_3_c=>1, 21 | conv3_4_a=>1, 22 | conv3_4_b=>1, 23 | conv3_4_c=>1, 24 | conv3_5_a=>1, 25 | conv3_5_b=>1, 26 | conv3_5_c=>1, 27 | conv3_6_a=>1, 28 | conv3_6_b=>1, 29 | conv3_6_c=>1, 30 | conv3_7_a=>1, 31 | conv3_7_b=>1, 32 | conv3_7_c=>1, 33 | conv3_8_a=>1, 34 | conv3_8_b=>1, 35 | conv3_8_c=>1, 36 | conv4_01_a=>1, 37 | conv4_01_b=>1, 38 | conv4_01_c=>1, 39 | conv4_02_a=>1, 40 | conv4_02_b=>1, 41 | conv4_02_c=>1, 42 | conv4_03_a=>1, 43 | conv4_03_b=>1, 44 | conv4_03_c=>1, 45 | conv4_04_a=>1, 46 | conv4_04_b=>1, 47 | conv4_04_c=>1, 48 | conv4_05_a=>1, 49 | conv4_05_b=>1, 50 | conv4_05_c=>1, 51 | conv4_06_a=>1, 52 | conv4_06_b=>1, 53 | conv4_06_c=>1, 54 | conv4_07_a=>1, 55 | conv4_07_b=>1, 56 | conv4_07_c=>1, 57 | conv4_08_a=>1, 58 | conv4_08_b=>1, 59 | conv4_08_c=>1, 60 | conv4_09_a=>1, 61 | conv4_09_b=>1, 62 | conv4_09_c=>1, 63 | conv4_10_a=>1, 64 | conv4_10_b=>1, 65 | conv4_10_c=>1, 66 | conv4_11_a=>1, 67 | conv4_11_b=>1, 68 | conv4_11_c=>1, 69 | conv4_12_a=>1, 70 | conv4_12_b=>1, 71 | conv4_12_c=>1, 72 | conv4_13_a=>1, 73 | conv4_13_b=>1, 74 | conv4_13_c=>1, 75 | conv4_14_a=>1, 76 | conv4_14_b=>1, 77 | conv4_14_c=>1, 78 | conv4_15_a=>1, 79 | conv4_15_b=>1, 80 | conv4_15_c=>1, 81 | conv4_16_a=>1, 82 | conv4_16_b=>1, 83 | conv4_16_c=>1, 84 | conv4_17_a=>1, 85 | conv4_17_b=>1, 86 | conv4_17_c=>1, 87 | conv4_18_a=>1, 88 | conv4_18_b=>1, 89 | conv4_18_c=>1, 90 | conv4_19_a=>1, 91 | conv4_19_b=>1, 92 | conv4_19_c=>1, 93 | conv4_20_a=>1, 94 | conv4_20_b=>1, 95 | conv4_20_c=>1, 96 | conv4_21_a=>1, 97 | conv4_21_b=>1, 98 | conv4_21_c=>1, 99 | conv4_22_a=>1, 100 | conv4_22_b=>1, 101 | conv4_22_c=>1, 102 | conv4_23_a=>1, 103 | conv4_23_b=>1, 104 | conv4_23_c=>1, 105 | conv4_24_a=>1, 106 | conv4_24_b=>1, 107 | conv4_24_c=>1, 108 | conv4_25_a=>1, 109 | conv4_25_b=>1, 110 | conv4_25_c=>1, 111 | conv4_26_a=>1, 112 | conv4_26_b=>1, 113 | conv4_26_c=>1, 114 | conv4_27_a=>1, 115 | conv4_27_b=>1, 116 | conv4_27_c=>1, 117 | conv4_28_a=>1, 118 | conv4_28_b=>1, 119 | conv4_28_c=>1, 120 | conv4_29_a=>1, 121 | conv4_29_b=>1, 122 | conv4_29_c=>1, 123 | conv4_30_a=>1, 124 | conv4_30_b=>1, 125 | conv4_30_c=>1, 126 | conv4_31_a=>1, 127 | conv4_31_b=>1, 128 | conv4_31_c=>1, 129 | conv4_32_a=>1, 130 | conv4_32_b=>1, 131 | conv4_32_c=>1, 132 | conv4_33_a=>1, 133 | conv4_33_b=>1, 134 | conv4_33_c=>1, 135 | conv4_34_a=>1, 136 | conv4_34_b=>1, 137 | conv4_34_c=>1, 138 | conv4_35_a=>1, 139 | conv4_35_b=>1, 140 | conv4_35_c=>1, 141 | conv4_36_a=>1, 142 | conv4_36_b=>1, 143 | conv4_36_c=>1, 144 | conv5_1_a=>1, 145 | conv5_1_b=>1, 146 | conv5_1_c=>1, 147 | conv5_2_a=>1, 148 | conv5_2_b=>1, 149 | conv5_2_c=>1, 150 | conv5_3_a=>1, 151 | conv5_3_b=>1, 152 | conv5_3_c=>1, 153 | ); 154 | 1; 155 | 156 | -------------------------------------------------------------------------------- /config/multipliers/vgg19_net_multipliers.pl: -------------------------------------------------------------------------------- 1 | % multipliers =( 2 | conv01=>1, 3 | conv02=>1, 4 | conv03=>1, 5 | conv04=>1, 6 | conv05=>1, 7 | conv06=>1, 8 | conv07=>1, 9 | conv08=>1, 10 | conv09=>1, 11 | conv10=>1, 12 | conv11=>1, 13 | conv12=>1, 14 | conv13=>1, 15 | conv14=>1, 16 | conv15=>1, 17 | conv16=>1, 18 | fc1=>1, 19 | fc2=>1, 20 | fc3=>1, 21 | ); 22 | 1; 23 | 24 | -------------------------------------------------------------------------------- /config/tech/Config_Baseline_28nm_1_8.pl: -------------------------------------------------------------------------------- 1 | #Architecture Params 2 | $NCORES=4; 3 | $ncompute=256; 4 | $NUM_CACHE_LEVELS=2; 5 | @NCACHE=(2*$NCORES,$NCORES); 6 | $NCONTROLLERS=4; 7 | $leakage_power = 0.097;#W 8 | $Dynamic_E_per_op = 0.00048;#nJ 9 | $Frequency=1; #Core frequency in GHz 10 | $reg_bit_width=8; 11 | $reg_e_per_bit=0.4;#pJ/bit 12 | #Power/Performance Parameters 13 | @CACHE_E=(0.009,0.009,0.0814);#Cache energy access nJ 14 | @CACHE_LKG=(0.068,0.068,0.174); #mW 15 | @MEM_E_per_bit=(5.8,6.2); # Additional Energy per bit in memories in pJ/bit for DRAM based memories (Rd, Wr energy for MD1 model) 16 | $MEM_LKG=8.3; #in mWatts for the whole memory 17 | $LINE_SIZE=256; #line size in Bits 18 | $Do_power_map=0; 19 | #$Initial_X_offset=700; 20 | #$Initial_Y_offset=1100; 21 | #$mem_C_xy=1100; 22 | #$mem_C_yx=700; 23 | #$Core_x=600; 24 | #$Core_y=1000; 25 | #$L1_I_x=240; 26 | #$L1_I_y=100; 27 | #$L1_D_x=360; 28 | #$L1_D_y=100; 29 | #$L2_x=600; 30 | #$L2_y=1000; 31 | #$offset_x=100; 32 | #$offset_y=1100; 33 | #$CoreNAME="NNEngine_"; 34 | #$L1_Inst= "Rdbuf_"; 35 | #$L1_Data="Wrbuf_"; 36 | #$L2="Globalbuf_"; 37 | #$Slot_time=1e-2; 38 | #$memC_power=1; 39 | #$L1I_power=0.174; 40 | #$L1D_power=0.174; 41 | #$L2_power=0.3745; 42 | 1; 43 | -------------------------------------------------------------------------------- /config/templates/tech.ttemplate: -------------------------------------------------------------------------------- 1 | #Architecture Params 2 | $NCORES=4; 3 | $ncompute=256; 4 | $NUM_CACHE_LEVELS=2; 5 | @NCACHE=(2*$NCORES,$NCORES); 6 | $NCONTROLLERS=4; 7 | $leakage_power = 0.097;#W 8 | $Dynamic_E_per_op = 0.00048;#nJ 9 | $Frequency=1; #Core frequency in GHz 10 | $reg_bit_width=8; 11 | $reg_e_per_bit=0.4;#pJ/bit 12 | #Power/Performance Parameters 13 | @CACHE_E=(0.009,0.009,0.0814);#Cache energy access nJ 14 | @CACHE_LKG=(0.068,0.068,0.174); #mW 15 | @MEM_E_per_bit=(5.8,6.2); # Additional Energy per bit in memories in pJ/bit for DRAM based memories (Rd, Wr energy for MD1 model) 16 | $MEM_LKG=8.3; #in mWatts for the whole memory 17 | $LINE_SIZE=256; #line size in Bits 18 | $Do_power_map=0; 19 | #$Initial_X_offset=700; 20 | #$Initial_Y_offset=1100; 21 | #$mem_C_xy=1100; 22 | #$mem_C_yx=700; 23 | #$Core_x=600; 24 | #$Core_y=1000; 25 | #$L1_I_x=240; 26 | #$L1_I_y=100; 27 | #$L1_D_x=360; 28 | #$L1_D_y=100; 29 | #$L2_x=600; 30 | #$L2_y=1000; 31 | #$offset_x=100; 32 | #$offset_y=1100; 33 | #$CoreNAME="NNEngine_"; 34 | #$L1_Inst= "Rdbuf_"; 35 | #$L1_Data="Wrbuf_"; 36 | #$L2="Globalbuf_"; 37 | #$Slot_time=1e-2; 38 | #$memC_power=1; 39 | #$L1I_power=0.174; 40 | #$L1D_power=0.174; 41 | #$L2_power=0.3745; 42 | 1; 43 | -------------------------------------------------------------------------------- /config/templates/zsim.ztemplate: -------------------------------------------------------------------------------- 1 | sys = { 2 | cores = { 3 | c = { 4 | cores = 4; 5 | type = "Null"; 6 | }; 7 | }; 8 | 9 | logic = { 10 | l = { 11 | units = 4; 12 | #frequency = 1500; 13 | traceFilePrefix = "trace"; 14 | rdbuf = "rdbuf"; 15 | wrbuf = "wrbuf"; 16 | }; 17 | }; 18 | 19 | lineSize = 32; 20 | frequency = 1000; 21 | 22 | caches = { 23 | rdbuf = { 24 | array = { ways = 1 }; 25 | caches = 4; 26 | size = 32; 27 | latency = 0; 28 | }; 29 | 30 | wrbuf = { 31 | array = { ways = 1 }; 32 | caches = 4; 33 | size = 32; 34 | latency = 0; 35 | }; 36 | 37 | gbuf = { 38 | latency = 2; 39 | array = { 40 | type = "IdealLRU"; 41 | ways = 64; 42 | }; 43 | caches = 4; 44 | banks = 8; 45 | size = 524288; 46 | children = "rdbuf|wrbuf"; 47 | }; 48 | 49 | coherent = false; 50 | }; 51 | 52 | itcn = { 53 | nodes = 4; 54 | layer = "nch"; 55 | 56 | type = "NUMA"; 57 | addressMap = "NUMA"; 58 | 59 | routingAlgorithm = { 60 | type = "Direct"; 61 | }; 62 | 63 | routers = { 64 | type = "Simple"; 65 | latency = 1; 66 | }; 67 | }; 68 | 69 | mem = { 70 | splitAddrs = false; 71 | controllers = 4; 72 | type = "MD1"; 73 | latency = !rdLat!; 74 | wrLatency = !wrLat!; 75 | bandwidth = !perChannelBW!; 76 | }; 77 | }; 78 | 79 | sim = { 80 | # gmMBytes = 8192; 81 | deadlockDetection = false; 82 | }; 83 | 84 | process0 = { 85 | command = "/scratch0/malviya/zsim-logic/misc/hooks/test_logic_unit_numa 1073741824"; 86 | startFastForwarded = true; 87 | patchRoot = "/scratch0/malviya/zsim-logic/misc/patchRoot/patchRoot_bc4_bn4"; 88 | }; 89 | 90 | -------------------------------------------------------------------------------- /config/zsim/zsim_Baseline_8.cfg: -------------------------------------------------------------------------------- 1 | sys = { 2 | cores = { 3 | c = { 4 | cores = 4; 5 | type = "Null"; 6 | }; 7 | }; 8 | 9 | logic = { 10 | l = { 11 | units = 4; 12 | #frequency = 1500; 13 | traceFilePrefix = "trace"; 14 | rdbuf = "rdbuf"; 15 | wrbuf = "wrbuf"; 16 | }; 17 | }; 18 | 19 | lineSize = 32; 20 | frequency = 1000; 21 | 22 | caches = { 23 | rdbuf = { 24 | array = { ways = 1 }; 25 | caches = 4; 26 | size = 32; 27 | latency = 0; 28 | }; 29 | 30 | wrbuf = { 31 | array = { ways = 1 }; 32 | caches = 4; 33 | size = 32; 34 | latency = 0; 35 | }; 36 | 37 | gbuf = { 38 | latency = 2; 39 | array = { 40 | type = "IdealLRU"; 41 | ways = 64; 42 | }; 43 | caches = 4; 44 | banks = 8; 45 | size = 524288; 46 | children = "rdbuf|wrbuf"; 47 | }; 48 | 49 | coherent = false; 50 | }; 51 | 52 | itcn = { 53 | nodes = 4; 54 | layer = "nch"; 55 | 56 | type = "NUMA"; 57 | addressMap = "NUMA"; 58 | 59 | routingAlgorithm = { 60 | type = "Direct"; 61 | }; 62 | 63 | routers = { 64 | type = "MD1"; 65 | bandwidth = 32; 66 | latency = 5; 67 | }; 68 | }; 69 | 70 | mem = { 71 | splitAddrs = false; 72 | controllers = 4; 73 | type = "Channel"; 74 | channelType = "DDR"; 75 | channelFreq = 800; 76 | pageSize = 2048; 77 | pagePolicy = "open"; 78 | deviceIOWidth = 8; 79 | channelWidth = 8; 80 | burstCount= 32; 81 | queueDepth = 8; 82 | banksPerRank = 8; 83 | ranksPerChannel = 4; 84 | controllerLatency = 2; 85 | timing = { 86 | tCAS = 12; 87 | tRCD = 15; # 18 ns 88 | tRP = 15; # 18 ns 89 | tRPab = 17; # 21 ns 90 | tRAS = 34; # 42 ns 91 | tWR = 12; # 15 ns 92 | tCCD = 4; 93 | tRTP = 6; # 7.5 ns 94 | tRRD = 8; # 10 ns 95 | tWTR = 6; # 7.5 ns 96 | tFAW = 40; # 50 ns 97 | tRTRS = 0; 98 | tRFC = 168; # 210 ns 99 | tREFI = 3120; # 3.9 us 100 | }; 101 | power = { 102 | # merged VDD1, VDD2, VDDCAQ 103 | VDD = 1.2; 104 | IDD0 = 78.0; 105 | IDD2N = 33.2; 106 | IDD2P = 3.2; 107 | IDD3N = 43.0; 108 | IDD3P = 13.3; 109 | #IDD4R calculated with (239.0 - 43)/4 + 43; 110 | IDD4R = 92.0; 111 | #IDD4W calculated with (249.0 - 43)/4 + 43; 112 | IDD4W = 94.5; # (249.0 - 43)/4 + 43; 113 | IDD5 = 198.0; 114 | 115 | channelWirePicoJoulePerBit = 0.0; 116 | }; 117 | }; 118 | }; 119 | 120 | sim = { 121 | gmMBytes = 8192; 122 | deadlockDetection = false; 123 | }; 124 | 125 | process0 = { 126 | command = "/scratch0/malviya/zsim-logic/misc/hooks/test_logic_unit_numa 1073741824"; 127 | startFastForwarded = true; 128 | patchRoot = "/scratch0/malviya/zsim-logic/misc/patchRoot/patchRoot_bc4_bn4"; 129 | }; 130 | 131 | -------------------------------------------------------------------------------- /energy-plot.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import csv 4 | import numpy as np 5 | import matplotlib.pyplot as plt 6 | from matplotlib.ticker import FormatStrFormatter 7 | from matplotlib.ticker import MaxNLocator 8 | from matplotlib.ticker import ScalarFormatter 9 | 10 | import sys, os 11 | 12 | from template import * 13 | from util import * 14 | 15 | 16 | PLOT_DPI = 600 17 | #PLOT_COLORMAP = 'gist_yarg' 18 | #PLOT_COLORMAP = 'coolwarm_r' 19 | #PLOT_COLORMAP = 'winter' 20 | #PLOT_COLORMAP = 'RdYlBu' 21 | #PLOT_COLORMAP = 'RdYlGn' 22 | PLOT_COLORMAP = 'coolwarm' 23 | 24 | 25 | 26 | 27 | networks = ['langmod', 'resnet152'] 28 | networkLayNames = {'langmod': 'LSTM', 'resnet152': 'CNN'} 29 | wordSizes = ['8'] 30 | batchSizes = ['1', '4'] 31 | 32 | csvColumnNames = ['BW', 'rdLat', 'wrLat', 'rdEnergy', 'wrEnergy', 'perChLkg', 33 | 'tProc', 'tMem', 'tTotal', 'eActive', 'eIdle', 'eMem', 'eTotal', 34 | 'bDelay', 'bEnergy', 'bProduct'] 35 | 36 | 37 | 38 | 39 | ## TODO TODO -- clean up copypasta 40 | if __name__ == '__main__': 41 | 42 | for net in networks: 43 | for batchSize in batchSizes: 44 | print('-'*80) 45 | configName = '%s_%s' % (net, batchSize) 46 | csvFileName = './results-energy/%s.csv' % configName 47 | csv = np.genfromtxt(csvFileName, delimiter=',', names=True) 48 | print(csvFileName) 49 | 50 | #print('Min benefits: %f' % np.min(csv['bProduct'])) 51 | #print('Max benefits: %f' % np.max(csv['bProduct'])) 52 | 53 | # make a list of all the (x,y) points to be plotted 54 | # so that we can put labels on them later 55 | bwValues = np.unique(csv['BW']) 56 | rdLatValues = np.unique(csv['rdLat']) 57 | rdEnergyValues = np.unique(csv['rdEnergy']) 58 | 59 | bwRdLatCoords = [(x, y) for x in bwValues for y in rdLatValues] 60 | bwRdEnergyCoords = [(x, y) for x in bwValues for y in rdEnergyValues] 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | ################################################################################ 71 | #########################rdLat bDelay########################################### 72 | ################################################################################ 73 | 74 | fig, ax = plt.subplots() 75 | 76 | C = [] 77 | for x, y in bwRdLatCoords: 78 | filteredRows = np.array([row for row in csv if row['BW'] == x and row['rdLat'] == y]) 79 | bestBDelay = np.max(filteredRows['bDelay']) 80 | C.append(bestBDelay) 81 | C = np.array(C) 82 | C = C.reshape(len(bwValues), len(rdLatValues)) 83 | C = C.T # row-major to x-y 84 | X, Y = np.meshgrid(bwValues, rdLatValues) 85 | p = ax.contour(X, Y, C, cmap=PLOT_COLORMAP) 86 | plt.clabel(p, inline=0, fontsize='large', colors='k', fmt='%1.1f') 87 | 88 | #ax.set_title('%s, batch size %s' % (networkLayNames[net], batchSize)) 89 | ax.xaxis.set_label_text('Bandwidth (GB/s)') 90 | ax.yaxis.set_label_text('Read latency (ns)') 91 | ax.set_xscale('log') 92 | ax.set_xticks(bwValues) 93 | ax.xaxis.set_major_formatter(ScalarFormatter()) 94 | ax.xaxis.set_major_formatter(FormatStrFormatter('%d')) 95 | ax.yaxis.set_major_locator(MaxNLocator(integer=True)) 96 | 97 | 98 | # cbar = plt.colorbar(ax.get_children()[0]) # TODO don't mix fig/ax and plt paradigms 99 | # cbar.ax.set_ylabel('Delay Benefits', rotation=270) 100 | # cbar.ax.get_yaxis().labelpad = 15 101 | 102 | fig.savefig('./plots/%s_rdLat_bDelay.png' % configName, format='png', dpi=PLOT_DPI) 103 | 104 | 105 | ################################################################################ 106 | #########################rdLat bEnergy########################################## 107 | ################################################################################ 108 | 109 | fig, ax = plt.subplots() 110 | 111 | C = [] 112 | for x, y in bwRdLatCoords: 113 | filteredRows = np.array([row for row in csv if row['BW'] == x and row['rdLat'] == y]) 114 | bestBEnergy = np.max(filteredRows['bEnergy']) 115 | C.append(bestBEnergy) 116 | C = np.array(C) 117 | C = C.reshape(len(bwValues), len(rdLatValues)) 118 | C = C.T # row-major to x-y 119 | X, Y = np.meshgrid(bwValues, rdLatValues) 120 | p = ax.contour(X, Y, C, cmap=PLOT_COLORMAP) 121 | plt.clabel(p, inline=0, fontsize='large', colors='k', fmt='%1.1f') 122 | 123 | 124 | #ax.set_title('%s, batch size %s' % (networkLayNames[net], batchSize)) 125 | ax.xaxis.set_label_text('Bandwidth (GB/s)') 126 | ax.yaxis.set_label_text('Read latency (ns)') 127 | ax.set_xscale('log') 128 | ax.set_xticks(bwValues) 129 | ax.xaxis.set_major_formatter(ScalarFormatter()) 130 | ax.xaxis.set_major_formatter(FormatStrFormatter('%d')) 131 | ax.yaxis.set_major_locator(MaxNLocator(integer=True)) 132 | 133 | 134 | # cbar = plt.colorbar(ax.get_children()[0]) # TODO don't mix fig/ax and plt paradigms 135 | # cbar.ax.set_ylabel('Energy Benefits', rotation=270) 136 | # cbar.ax.get_yaxis().labelpad = 15 137 | 138 | fig.savefig('./plots/%s_rdLat_bEnergy.png' % configName, format='png', dpi=PLOT_DPI) 139 | 140 | 141 | 142 | ################################################################################ 143 | #########################rdEnergy bDelay######################################## 144 | ################################################################################ 145 | 146 | fig, ax = plt.subplots() 147 | 148 | 149 | C = [] 150 | for x, y in bwRdEnergyCoords: 151 | filteredRows = np.array([row for row in csv if row['BW'] == x and row['rdEnergy'] == y]) 152 | bestBDelay = np.max(filteredRows['bDelay']) 153 | C.append(bestBDelay) 154 | C = np.array(C) 155 | C = C.reshape(len(bwValues), len(rdEnergyValues)) 156 | C = C.T # row-major to x-y 157 | X, Y = np.meshgrid(bwValues, rdEnergyValues) 158 | p = ax.contour(X, Y, C, cmap=PLOT_COLORMAP) 159 | plt.clabel(p, inline=0, fontsize='large', colors='k', fmt='%1.1f') 160 | 161 | 162 | 163 | 164 | #ax.set_title('%s, batch size %s' % (networkLayNames[net], batchSize)) 165 | ax.xaxis.set_label_text('Bandwidth (GB/s)') 166 | ax.yaxis.set_label_text('Read energy (pJ/bit)') 167 | ax.set_xscale('log') 168 | ax.set_xticks(bwValues) 169 | ax.xaxis.set_major_formatter(ScalarFormatter()) 170 | ax.xaxis.set_major_formatter(FormatStrFormatter('%d')) 171 | 172 | 173 | 174 | # cbar = plt.colorbar(ax.get_children()[0]) # TODO don't mix fig/ax and plt paradigms 175 | # cbar.ax.set_ylabel('Delay Benefits', rotation=270) 176 | # cbar.ax.get_yaxis().labelpad = 15 177 | 178 | fig.savefig('./plots/%s_rdEnergy_bDelay.png' % configName, format='png', dpi=PLOT_DPI) 179 | 180 | 181 | 182 | ################################################################################ 183 | #########################rdEnergy bEnergy######################################## 184 | ################################################################################ 185 | 186 | fig, ax = plt.subplots() 187 | 188 | C = [] 189 | for x, y in bwRdEnergyCoords: 190 | filteredRows = np.array([row for row in csv if row['BW'] == x and row['rdEnergy'] == y]) 191 | bestBEnergy = np.max(filteredRows['bEnergy']) 192 | C.append(bestBEnergy) 193 | C = np.array(C) 194 | C = C.reshape(len(bwValues), len(rdEnergyValues)) 195 | C = C.T # row-major to x-y 196 | X, Y = np.meshgrid(bwValues, rdEnergyValues) 197 | p = ax.contour(X, Y, C, cmap=PLOT_COLORMAP) 198 | plt.clabel(p, inline=0, fontsize='large', colors='k', fmt='%1.1f') 199 | 200 | 201 | #ax.set_title('%s, batch size %s' % (networkLayNames[net], batchSize)) 202 | ax.xaxis.set_label_text('Bandwidth (GB/s)') 203 | ax.yaxis.set_label_text('Read energy (pJ/bit)') 204 | ax.set_xscale('log') 205 | ax.set_xticks(bwValues) 206 | ax.xaxis.set_major_formatter(ScalarFormatter()) 207 | ax.xaxis.set_major_formatter(FormatStrFormatter('%d')) 208 | 209 | 210 | 211 | # cbar = plt.colorbar(ax.get_children()[0]) # TODO don't mix fig/ax and plt paradigms 212 | # cbar.ax.set_ylabel('Energy Benefits', rotation=270) 213 | # cbar.ax.get_yaxis().labelpad = 15 214 | 215 | fig.savefig('./plots/%s_rdEnergy_bEnergy.png' % configName, format='png', dpi=PLOT_DPI) 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | """ 228 | # TODO this actually overwrites the value nPoints times, but w/e 229 | #for i in range(784): 230 | # ax.annotate(1, (csv['BW'][i], csv['rdLat'][i])) 231 | """ 232 | 233 | -------------------------------------------------------------------------------- /energy-sweep.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys, os 4 | 5 | from template import * 6 | from util import * 7 | 8 | 9 | rdWrEnergies = [(5.8, 6.2), 10 | (4.5, 4.9), 11 | (4.3, 4.7), 12 | (3.9, 4.3), 13 | (2.4, 2.7), 14 | (2.2, 2.5), 15 | (1.8, 2.2)] 16 | perChannelLeakages = [8.3, 18, 24, 30.25] 17 | 18 | networks = ['langmod', 'resnet152'] 19 | wordSizes = ['8'] 20 | batchSizes = ['1', '4'] 21 | 22 | bandwidths = [4.6, 9, 18, 74, 106, 418, 840] # in GB/s. 23 | latencies = [(24, 23), (10, 15), (5, 12), (4, 12)] # (rdLat, wrLat) tuples. In ns. 24 | 25 | netBatchCSVColumnNames = ['BW', 'rdLat', 'wrLat', 'rdEnergy', 'wrEnergy', 'perChLkg', 26 | 'tProc', 'tMem', 'tTotal', 'eActive', 'eIdle', 'eMem', 'eTotal', 27 | 'bDelay', 'bEnergy', 'bProduct'] 28 | 29 | 30 | class collectedCSVLine: 31 | def __init__(self, bw, rdLat, wrLat, rdEnergy, wrEnergy, perChLkg): 32 | self.bw = bw 33 | self.rdLat = rdLat 34 | self.wrLat = wrLat 35 | self.rdEnergy = rdEnergy 36 | self.wrEnergy = wrEnergy 37 | self.perChLkg = perChLkg 38 | 39 | def fillRemaining(self, benefitsLine): 40 | benefitsToks = benefitsLine.split(',') 41 | self.tProc = benefitsToks[1] 42 | self.tMem = benefitsToks[2] 43 | self.tTotal = benefitsToks[3] 44 | self.eActive = benefitsToks[4] 45 | self.eIdle = benefitsToks[5] 46 | self.eMem = benefitsToks[6] 47 | self.eTotal = benefitsToks[7] 48 | self.bDelay = benefitsToks[8] 49 | self.bEnergy = benefitsToks[9] 50 | self.bProduct = benefitsToks[10] 51 | 52 | 53 | def getLineStr(self): 54 | return ','.join([self.bw, self.rdLat, self.wrLat, self.rdEnergy, self.wrEnergy, 55 | self.perChLkg, self.tProc, self.tMem, self.tTotal, 56 | self.eActive, self.eIdle, self.eMem, self.eTotal, 57 | self.bDelay, self.bEnergy, self.bProduct]) + '\n' 58 | 59 | 60 | 61 | 62 | def gen_sweeps(processPerl=False,collectResults=False): 63 | for net in networks: 64 | for batchSize in batchSizes: 65 | netBatchCSVPath = './results-energy/%s_%s.csv' % (net, batchSize) 66 | netBatchCSV = open(netBatchCSVPath, 'w+') # always creates file (may be empty) 67 | netBatchCSV.write(','.join(netBatchCSVColumnNames) + '\n') # write the CSV header 68 | 69 | for bw in bandwidths: 70 | for lat in latencies: 71 | configName = 'newMem_%sGBs_%sns_%sns' % (str(bw), str(lat[0]), str(lat[1])) 72 | 73 | for lkg in perChannelLeakages: 74 | for rdWrEn in rdWrEnergies: 75 | bitRdEnStr = str(rdWrEn[0]) 76 | bitWrEnStr = str(rdWrEn[1]) 77 | perChLkgStr = str(lkg) 78 | 79 | #print('<%s %s %s>' % (bitRdEnStr, bitWrEnStr, perChLkgStr)) 80 | 81 | 82 | # csvTempName is the name of the file that ./Parse_all_results.pl 83 | # spits out, that we need to rename to reflect energy values. 84 | csvTempName = '%s_8_%s_' % (net, batchSize) 85 | csvTempName += configName 86 | csvTempName += '.csv' 87 | 88 | csvFullName = '%s_8_%s_' % (net, batchSize) 89 | csvFullName += configName 90 | csvFullName += '_%spJ_%spJ_%smW' % (bitRdEnStr, bitWrEnStr, perChLkgStr) 91 | csvFullName += '.csv' 92 | 93 | 94 | if processPerl: 95 | # For simplicity's sake, we re-generate and overwrite the .pl file 96 | # for the energy post-processing (this to avoid changing the 97 | # naming scheme expected by the .pl script). 98 | tTemplate = './config/templates/tech-energy.ttemplate' 99 | tFile = './config/tech/Config_%s_28nm_1_8.pl' % configName 100 | fillTemplate(tTemplate, tFile, {'bitRdEn': bitRdEnStr, 101 | 'bitWrEn': bitWrEnStr, 102 | 'perChLkg': perChLkgStr}) 103 | os.system('chmod a+x %s' % tFile) # make the .pl file executable 104 | 105 | 106 | # run the current templatization of the tech file 107 | os.system('./Parse_all_results.pl %s %s %s' % (net, batchSize, configName)) 108 | 109 | # rename the .csv to its full (with energy) name 110 | os.system('mv ./results/%s ./results/%s' % (csvTempName, csvFullName)) 111 | 112 | 113 | 114 | if collectResults: 115 | singleRunCSV = open('./results/'+csvFullName, 'r') 116 | benefitsLine = singleRunCSV.readlines()[-1] 117 | 118 | collectedLine = collectedCSVLine(str(bw), str(lat[0]), str(lat[1]), 119 | bitRdEnStr, bitWrEnStr, perChLkgStr) 120 | collectedLine.fillRemaining(benefitsLine) 121 | 122 | netBatchCSV.write(collectedLine.getLineStr()) 123 | singleRunCSV.close() 124 | 125 | 126 | netBatchCSV.close() 127 | 128 | 129 | if __name__ == '__main__': 130 | #gen_sweeps(processPerl=True,collectResults=False) 131 | gen_sweeps(processPerl=False,collectResults=True) 132 | 133 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | ################################################################################ 4 | ## Top-level simulation driver. 5 | ## 6 | ## TODO: clean up nested loops 7 | ################################################################################ 8 | 9 | import sys, os 10 | 11 | from template import * 12 | from util import * 13 | 14 | 15 | #networks = ['alex_net', 'langmod', 'resnet152', 'vgg19_net'] 16 | networks = ['langmod', 'resnet152'] 17 | wordSizes = ['8'] 18 | #batchSizes = ['1', '4', '8', '16'] 19 | batchSizes = ['1', '4'] 20 | configs = ['Baseline'] ## NOTE: we'll append auto-swept configs to this later 21 | 22 | bandwidths = [4.6, 9, 18, 74, 106, 418, 840] # in GB/s. 23 | latencies = [(24, 23), (10, 15), (5, 12), (4, 12)] # (rdLat, wrLat) tuples. In ns. 24 | nMemChannels = 4 # for calculating perChannelBW 25 | 26 | 27 | 28 | if __name__ == '__main__': 29 | # TODO: remove old network directories and results dir for good measure? 30 | 31 | 32 | ################################################# 33 | ## Generate param-sweep directory names and config files 34 | ################################################# 35 | 36 | # first, straight-copy the template files to Baseline files 37 | # TODO can't do this, they need to have macros replaced with 0s. 38 | # Just leave Baseline files in the directories for now. 39 | ''' 40 | os.system('cp %s ./config/zsim/zsim_Baseline_8.cfg' % zTemplate) 41 | os.system('cp %s ./config/tech/Config_Baseline_28nm_1_8.pl' % tTemplate) 42 | os.system('chmod a+x ./config/tech/Config_Baseline_28nm_1_8.pl') 43 | ''' 44 | 45 | # now, templatize the swept parameter files 46 | for bw in bandwidths: 47 | for lat in latencies: 48 | configName = 'newMem_%sGBs_%sns_%sns' % (str(bw), str(lat[0]), str(lat[1])) 49 | configs.append(configName) 50 | 51 | # templatize the zsim .cfg file 52 | zTemplate = './config/templates/zsim.ztemplate' 53 | zFile = './config/zsim/zsim_%s_8.cfg' % configName 54 | perChannelBW = int((int(bw) * 1e3) / nMemChannels); # TODO round? 55 | fillTemplate(zTemplate, zFile, {'perChannelBW': str(perChannelBW), 56 | 'rdLat': str(lat[0]), 57 | 'wrLat': str(lat[1])}); 58 | 59 | # templatize the tech .pl file 60 | # TODO - this doesn't make any substitutions right now, 61 | # it's just a placeholder (just copies and renames the file) 62 | tTemplate = './config/templates/tech.ttemplate' 63 | tFile = './config/tech/Config_%s_28nm_1_8.pl' % configName 64 | fillTemplate(tTemplate, tFile, {}) 65 | os.system('chmod a+x %s' % tFile) # make the .pl file executable 66 | 67 | 68 | ################################################# 69 | ################################################# 70 | 71 | 72 | 73 | 74 | ################################################# 75 | ## Create (by cloning) the directory structure ## 76 | ################################################# 77 | print_nobr("Creating directory structure...") 78 | 79 | for net in networks: 80 | for wordSize in wordSizes: 81 | for batchSize in batchSizes: 82 | for config in configs: 83 | traceSrcSubDir = 'traces/%s/%s/%s/*' % (net, wordSize, batchSize) 84 | configSubDir = '%s/%s/%s/%s' % (net, wordSize, batchSize, config) 85 | 86 | os.system('mkdir -p %s' % configSubDir) # create the subdir 87 | linkclone_dir(traceSrcSubDir, configSubDir) # clone the trace directory 88 | 89 | print(" done.") 90 | ################################################# 91 | ################################################# 92 | 93 | 94 | 95 | 96 | ################################################# 97 | ## do the zim run, then the tech post-processing 98 | ################################################# 99 | print("Beginning simulation runs...") 100 | 101 | for net in networks: 102 | for wordSize in wordSizes: 103 | for batchSize in batchSizes: 104 | for config in configs: 105 | baseDir = os.getcwd() 106 | workDir = '%s/%s/%s/%s' % (net, wordSize, batchSize, config) 107 | 108 | # run zsim simulation 109 | os.system('cd %s && %s/simulate_zsim.sh %s %s' % (workDir, baseDir, config, wordSize)) 110 | print('%s_%s_%s %s zsim finished' % (net, wordSize, batchSize, config)) 111 | 112 | # post-process with energy, etc. perl script 113 | if (config != 'Baseline'): 114 | os.system('./Parse_all_results.pl %s %s %s' % (net, batchSize, config)) 115 | 116 | 117 | print("Finished simulation runs.") 118 | ################################################# 119 | ################################################# 120 | 121 | # Done. 122 | -------------------------------------------------------------------------------- /ops/alex_net_16_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>437133312, 3 | conv2=>1926758400, 4 | conv3=>704471040, 5 | conv4=>1043159040, 6 | conv5=>704471040, 7 | fc1=>150994944, 8 | fc2=>67108864, 9 | fc3=>16777216, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>437133312, 14 | conv2=>1926758400, 15 | conv3=>704471040, 16 | conv4=>1043159040, 17 | conv5=>704471040, 18 | fc1=>150994944, 19 | fc2=>67108864, 20 | fc3=>16777216, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>437133312, 25 | conv2=>1926758400, 26 | conv3=>704471040, 27 | conv4=>1043159040, 28 | conv5=>704471040, 29 | fc1=>150994944, 30 | fc2=>67108864, 31 | fc3=>16777216, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>437133312, 36 | conv2=>1926758400, 37 | conv3=>704471040, 38 | conv4=>1043159040, 39 | conv5=>704471040, 40 | fc1=>150994944, 41 | fc2=>67108864, 42 | fc3=>16777216, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>437133312, 47 | conv2=>1926758400, 48 | conv3=>704471040, 49 | conv4=>1043159040, 50 | conv5=>704471040, 51 | fc1=>150994944, 52 | fc2=>67108864, 53 | fc3=>16777216, 54 | ); 55 | 1; 56 | % NNops5 =( 57 | conv1=>437133312, 58 | conv2=>1926758400, 59 | conv3=>704471040, 60 | conv4=>1043159040, 61 | conv5=>704471040, 62 | fc1=>150994944, 63 | fc2=>67108864, 64 | fc3=>16777216, 65 | ); 66 | 1; 67 | % NNops6 =( 68 | conv1=>437133312, 69 | conv2=>1926758400, 70 | conv3=>704471040, 71 | conv4=>1043159040, 72 | conv5=>704471040, 73 | fc1=>150994944, 74 | fc2=>67108864, 75 | fc3=>16777216, 76 | ); 77 | 1; 78 | % NNops7 =( 79 | conv1=>437133312, 80 | conv2=>1926758400, 81 | conv3=>704471040, 82 | conv4=>1043159040, 83 | conv5=>704471040, 84 | fc1=>150994944, 85 | fc2=>67108864, 86 | fc3=>16777216, 87 | ); 88 | 1; 89 | % NNops8 =( 90 | conv1=>437133312, 91 | conv2=>1926758400, 92 | conv3=>704471040, 93 | conv4=>1043159040, 94 | conv5=>704471040, 95 | fc1=>150994944, 96 | fc2=>67108864, 97 | fc3=>16777216, 98 | ); 99 | 1; 100 | % NNops9 =( 101 | conv1=>437133312, 102 | conv2=>1926758400, 103 | conv3=>704471040, 104 | conv4=>1043159040, 105 | conv5=>704471040, 106 | fc1=>150994944, 107 | fc2=>67108864, 108 | fc3=>16777216, 109 | ); 110 | 1; 111 | % NNops10 =( 112 | conv1=>437133312, 113 | conv2=>1926758400, 114 | conv3=>704471040, 115 | conv4=>1043159040, 116 | conv5=>704471040, 117 | fc1=>150994944, 118 | fc2=>67108864, 119 | fc3=>16777216, 120 | ); 121 | 1; 122 | % NNops11 =( 123 | conv1=>437133312, 124 | conv2=>1926758400, 125 | conv3=>704471040, 126 | conv4=>1043159040, 127 | conv5=>704471040, 128 | fc1=>150994944, 129 | fc2=>67108864, 130 | fc3=>16777216, 131 | ); 132 | 1; 133 | % NNops12 =( 134 | conv1=>437133312, 135 | conv2=>1926758400, 136 | conv3=>704471040, 137 | conv4=>1043159040, 138 | conv5=>704471040, 139 | fc1=>150994944, 140 | fc2=>67108864, 141 | fc3=>16777216, 142 | ); 143 | 1; 144 | % NNops13 =( 145 | conv1=>437133312, 146 | conv2=>1926758400, 147 | conv3=>704471040, 148 | conv4=>1043159040, 149 | conv5=>704471040, 150 | fc1=>150994944, 151 | fc2=>67108864, 152 | fc3=>16777216, 153 | ); 154 | 1; 155 | % NNops14 =( 156 | conv1=>437133312, 157 | conv2=>1926758400, 158 | conv3=>704471040, 159 | conv4=>1043159040, 160 | conv5=>704471040, 161 | fc1=>150994944, 162 | fc2=>67108864, 163 | fc3=>16777216, 164 | ); 165 | 1; 166 | % NNops15 =( 167 | conv1=>437133312, 168 | conv2=>1926758400, 169 | conv3=>704471040, 170 | conv4=>1043159040, 171 | conv5=>704471040, 172 | fc1=>150994944, 173 | fc2=>67108864, 174 | fc3=>16777216, 175 | ); 176 | 1; 177 | % NNops16 =( 178 | conv1=>437133312, 179 | conv2=>1926758400, 180 | conv3=>704471040, 181 | conv4=>1043159040, 182 | conv5=>704471040, 183 | fc1=>150994944, 184 | fc2=>67108864, 185 | fc3=>16777216, 186 | ); 187 | 1; 188 | % NNops17 =( 189 | conv1=>437133312, 190 | conv2=>1926758400, 191 | conv3=>704471040, 192 | conv4=>1043159040, 193 | conv5=>704471040, 194 | fc1=>150994944, 195 | fc2=>67108864, 196 | fc3=>16777216, 197 | ); 198 | 1; 199 | % NNops18 =( 200 | conv1=>437133312, 201 | conv2=>1926758400, 202 | conv3=>704471040, 203 | conv4=>1043159040, 204 | conv5=>704471040, 205 | fc1=>150994944, 206 | fc2=>67108864, 207 | fc3=>16777216, 208 | ); 209 | 1; 210 | % NNops19 =( 211 | conv1=>437133312, 212 | conv2=>1926758400, 213 | conv3=>704471040, 214 | conv4=>1043159040, 215 | conv5=>704471040, 216 | fc1=>150994944, 217 | fc2=>67108864, 218 | fc3=>16777216, 219 | ); 220 | 1; 221 | % NNops20 =( 222 | conv1=>437133312, 223 | conv2=>1926758400, 224 | conv3=>704471040, 225 | conv4=>1043159040, 226 | conv5=>704471040, 227 | fc1=>150994944, 228 | fc2=>67108864, 229 | fc3=>16777216, 230 | ); 231 | 1; 232 | % NNops21 =( 233 | conv1=>437133312, 234 | conv2=>1926758400, 235 | conv3=>704471040, 236 | conv4=>1043159040, 237 | conv5=>704471040, 238 | fc1=>150994944, 239 | fc2=>67108864, 240 | fc3=>16777216, 241 | ); 242 | 1; 243 | % NNops22 =( 244 | conv1=>437133312, 245 | conv2=>1926758400, 246 | conv3=>704471040, 247 | conv4=>1043159040, 248 | conv5=>704471040, 249 | fc1=>150994944, 250 | fc2=>67108864, 251 | fc3=>16777216, 252 | ); 253 | 1; 254 | % NNops23 =( 255 | conv1=>437133312, 256 | conv2=>1926758400, 257 | conv3=>704471040, 258 | conv4=>1043159040, 259 | conv5=>704471040, 260 | fc1=>150994944, 261 | fc2=>67108864, 262 | fc3=>16777216, 263 | ); 264 | 1; 265 | % NNops24 =( 266 | conv1=>437133312, 267 | conv2=>1926758400, 268 | conv3=>704471040, 269 | conv4=>1043159040, 270 | conv5=>704471040, 271 | fc1=>150994944, 272 | fc2=>67108864, 273 | fc3=>16777216, 274 | ); 275 | 1; 276 | % NNops25 =( 277 | conv1=>437133312, 278 | conv2=>1926758400, 279 | conv3=>704471040, 280 | conv4=>1043159040, 281 | conv5=>704471040, 282 | fc1=>150994944, 283 | fc2=>67108864, 284 | fc3=>16777216, 285 | ); 286 | 1; 287 | -------------------------------------------------------------------------------- /ops/alex_net_16_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>27320832, 3 | conv2=>120422400, 4 | conv3=>44029440, 5 | conv4=>65197440, 6 | conv5=>43464960, 7 | fc1=>9437184, 8 | fc2=>4194304, 9 | fc3=>1048576, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>27320832, 14 | conv2=>120422400, 15 | conv3=>44029440, 16 | conv4=>65197440, 17 | conv5=>43464960, 18 | fc1=>9437184, 19 | fc2=>4194304, 20 | fc3=>1048576, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>27320832, 25 | conv2=>120422400, 26 | conv3=>44029440, 27 | conv4=>65197440, 28 | conv5=>43464960, 29 | fc1=>9437184, 30 | fc2=>4194304, 31 | fc3=>1048576, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>27320832, 36 | conv2=>120422400, 37 | conv3=>44029440, 38 | conv4=>65197440, 39 | conv5=>43464960, 40 | fc1=>9437184, 41 | fc2=>4194304, 42 | fc3=>1048576, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>27320832, 47 | conv2=>120422400, 48 | conv3=>44029440, 49 | conv4=>65197440, 50 | conv5=>43464960, 51 | fc1=>9437184, 52 | fc2=>4194304, 53 | fc3=>1048576, 54 | ); 55 | 1; 56 | % NNops5 =( 57 | conv1=>27320832, 58 | conv2=>120422400, 59 | conv3=>44029440, 60 | conv4=>65197440, 61 | conv5=>43464960, 62 | fc1=>9437184, 63 | fc2=>4194304, 64 | fc3=>1048576, 65 | ); 66 | 1; 67 | % NNops6 =( 68 | conv1=>27320832, 69 | conv2=>120422400, 70 | conv3=>44029440, 71 | conv4=>65197440, 72 | conv5=>43464960, 73 | fc1=>9437184, 74 | fc2=>4194304, 75 | fc3=>1048576, 76 | ); 77 | 1; 78 | % NNops7 =( 79 | conv1=>27320832, 80 | conv2=>120422400, 81 | conv3=>44029440, 82 | conv4=>65197440, 83 | conv5=>43464960, 84 | fc1=>9437184, 85 | fc2=>4194304, 86 | fc3=>1048576, 87 | ); 88 | 1; 89 | % NNops8 =( 90 | conv1=>27320832, 91 | conv2=>120422400, 92 | conv3=>44029440, 93 | conv4=>65197440, 94 | conv5=>43464960, 95 | fc1=>9437184, 96 | fc2=>4194304, 97 | fc3=>1048576, 98 | ); 99 | 1; 100 | % NNops9 =( 101 | conv1=>27320832, 102 | conv2=>120422400, 103 | conv3=>44029440, 104 | conv4=>65197440, 105 | conv5=>43464960, 106 | fc1=>9437184, 107 | fc2=>4194304, 108 | fc3=>1048576, 109 | ); 110 | 1; 111 | % NNops10 =( 112 | conv1=>27320832, 113 | conv2=>120422400, 114 | conv3=>44029440, 115 | conv4=>65197440, 116 | conv5=>43464960, 117 | fc1=>9437184, 118 | fc2=>4194304, 119 | fc3=>1048576, 120 | ); 121 | 1; 122 | % NNops11 =( 123 | conv1=>27320832, 124 | conv2=>120422400, 125 | conv3=>44029440, 126 | conv4=>65197440, 127 | conv5=>43464960, 128 | fc1=>9437184, 129 | fc2=>4194304, 130 | fc3=>1048576, 131 | ); 132 | 1; 133 | % NNops12 =( 134 | conv1=>27320832, 135 | conv2=>120422400, 136 | conv3=>44029440, 137 | conv4=>65197440, 138 | conv5=>43464960, 139 | fc1=>9437184, 140 | fc2=>4194304, 141 | fc3=>1048576, 142 | ); 143 | 1; 144 | % NNops13 =( 145 | conv1=>27320832, 146 | conv2=>120422400, 147 | conv3=>44029440, 148 | conv4=>65197440, 149 | conv5=>43464960, 150 | fc1=>9437184, 151 | fc2=>4194304, 152 | fc3=>1048576, 153 | ); 154 | 1; 155 | % NNops14 =( 156 | conv1=>27320832, 157 | conv2=>120422400, 158 | conv3=>44029440, 159 | conv4=>65197440, 160 | conv5=>43464960, 161 | fc1=>9437184, 162 | fc2=>4194304, 163 | fc3=>1048576, 164 | ); 165 | 1; 166 | % NNops15 =( 167 | conv1=>27320832, 168 | conv2=>120422400, 169 | conv3=>44029440, 170 | conv4=>65197440, 171 | conv5=>43464960, 172 | fc1=>9437184, 173 | fc2=>4194304, 174 | fc3=>1048576, 175 | ); 176 | 1; 177 | % NNops16 =( 178 | conv1=>27320832, 179 | conv2=>120422400, 180 | conv3=>44029440, 181 | conv4=>65197440, 182 | conv5=>43464960, 183 | fc1=>9437184, 184 | fc2=>4194304, 185 | fc3=>1048576, 186 | ); 187 | 1; 188 | % NNops17 =( 189 | conv1=>27320832, 190 | conv2=>120422400, 191 | conv3=>44029440, 192 | conv4=>65197440, 193 | conv5=>43464960, 194 | fc1=>9437184, 195 | fc2=>4194304, 196 | fc3=>1048576, 197 | ); 198 | 1; 199 | % NNops18 =( 200 | conv1=>27320832, 201 | conv2=>120422400, 202 | conv3=>44029440, 203 | conv4=>65197440, 204 | conv5=>43464960, 205 | fc1=>9437184, 206 | fc2=>4194304, 207 | fc3=>1048576, 208 | ); 209 | 1; 210 | % NNops19 =( 211 | conv1=>27320832, 212 | conv2=>120422400, 213 | conv3=>44029440, 214 | conv4=>65197440, 215 | conv5=>43464960, 216 | fc1=>9437184, 217 | fc2=>4194304, 218 | fc3=>1048576, 219 | ); 220 | 1; 221 | % NNops20 =( 222 | conv1=>27320832, 223 | conv2=>120422400, 224 | conv3=>44029440, 225 | conv4=>65197440, 226 | conv5=>43464960, 227 | fc1=>9437184, 228 | fc2=>4194304, 229 | fc3=>1048576, 230 | ); 231 | 1; 232 | % NNops21 =( 233 | conv1=>27320832, 234 | conv2=>120422400, 235 | conv3=>44029440, 236 | conv4=>65197440, 237 | conv5=>43464960, 238 | fc1=>9437184, 239 | fc2=>4194304, 240 | fc3=>1048576, 241 | ); 242 | 1; 243 | % NNops22 =( 244 | conv1=>27320832, 245 | conv2=>120422400, 246 | conv3=>44029440, 247 | conv4=>65197440, 248 | conv5=>43464960, 249 | fc1=>9437184, 250 | fc2=>4194304, 251 | fc3=>1048576, 252 | ); 253 | 1; 254 | % NNops23 =( 255 | conv1=>27320832, 256 | conv2=>120422400, 257 | conv3=>44029440, 258 | conv4=>65197440, 259 | conv5=>43464960, 260 | fc1=>9437184, 261 | fc2=>4194304, 262 | fc3=>1048576, 263 | ); 264 | 1; 265 | % NNops24 =( 266 | conv1=>27320832, 267 | conv2=>120422400, 268 | conv3=>44029440, 269 | conv4=>65197440, 270 | conv5=>43464960, 271 | fc1=>9437184, 272 | fc2=>4194304, 273 | fc3=>1048576, 274 | ); 275 | 1; 276 | % NNops25 =( 277 | conv1=>27320832, 278 | conv2=>120422400, 279 | conv3=>44029440, 280 | conv4=>65197440, 281 | conv5=>43464960, 282 | fc1=>9437184, 283 | fc2=>4194304, 284 | fc3=>1048576, 285 | ); 286 | 1; 287 | -------------------------------------------------------------------------------- /ops/alex_net_16_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>54641664, 3 | conv2=>240844800, 4 | conv3=>88058880, 5 | conv4=>130394880, 6 | conv5=>86929920, 7 | fc1=>18874368, 8 | fc2=>8388608, 9 | fc3=>2097152, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>54641664, 14 | conv2=>240844800, 15 | conv3=>88058880, 16 | conv4=>130394880, 17 | conv5=>86929920, 18 | fc1=>18874368, 19 | fc2=>8388608, 20 | fc3=>2097152, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>54641664, 25 | conv2=>240844800, 26 | conv3=>88058880, 27 | conv4=>130394880, 28 | conv5=>86929920, 29 | fc1=>18874368, 30 | fc2=>8388608, 31 | fc3=>2097152, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>54641664, 36 | conv2=>240844800, 37 | conv3=>88058880, 38 | conv4=>130394880, 39 | conv5=>86929920, 40 | fc1=>18874368, 41 | fc2=>8388608, 42 | fc3=>2097152, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>54641664, 47 | conv2=>240844800, 48 | conv3=>88058880, 49 | conv4=>130394880, 50 | conv5=>86929920, 51 | fc1=>18874368, 52 | fc2=>8388608, 53 | fc3=>2097152, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_16_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>109283328, 3 | conv2=>481689600, 4 | conv3=>176117760, 5 | conv4=>260789760, 6 | conv5=>173859840, 7 | fc1=>37748736, 8 | fc2=>16777216, 9 | fc3=>4194304, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>109283328, 14 | conv2=>481689600, 15 | conv3=>176117760, 16 | conv4=>260789760, 17 | conv5=>173859840, 18 | fc1=>37748736, 19 | fc2=>16777216, 20 | fc3=>4194304, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>109283328, 25 | conv2=>481689600, 26 | conv3=>176117760, 27 | conv4=>260789760, 28 | conv5=>173859840, 29 | fc1=>37748736, 30 | fc2=>16777216, 31 | fc3=>4194304, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>109283328, 36 | conv2=>481689600, 37 | conv3=>176117760, 38 | conv4=>260789760, 39 | conv5=>173859840, 40 | fc1=>37748736, 41 | fc2=>16777216, 42 | fc3=>4194304, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>109283328, 47 | conv2=>481689600, 48 | conv3=>176117760, 49 | conv4=>260789760, 50 | conv5=>173859840, 51 | fc1=>37748736, 52 | fc2=>16777216, 53 | fc3=>4194304, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_16_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>218566656, 3 | conv2=>963379200, 4 | conv3=>352235520, 5 | conv4=>528353280, 6 | conv5=>352235520, 7 | fc1=>75497472, 8 | fc2=>33554432, 9 | fc3=>8388608, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>218566656, 14 | conv2=>963379200, 15 | conv3=>352235520, 16 | conv4=>528353280, 17 | conv5=>352235520, 18 | fc1=>75497472, 19 | fc2=>33554432, 20 | fc3=>8388608, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>218566656, 25 | conv2=>963379200, 26 | conv3=>352235520, 27 | conv4=>528353280, 28 | conv5=>352235520, 29 | fc1=>75497472, 30 | fc2=>33554432, 31 | fc3=>8388608, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>218566656, 36 | conv2=>963379200, 37 | conv3=>352235520, 38 | conv4=>528353280, 39 | conv5=>352235520, 40 | fc1=>75497472, 41 | fc2=>33554432, 42 | fc3=>8388608, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>218566656, 47 | conv2=>963379200, 48 | conv3=>352235520, 49 | conv4=>528353280, 50 | conv5=>352235520, 51 | fc1=>75497472, 52 | fc2=>33554432, 53 | fc3=>8388608, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_32_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>437133312, 3 | conv2=>1926758400, 4 | conv3=>704471040, 5 | conv4=>1056706560, 6 | conv5=>704471040, 7 | fc1=>150994944, 8 | fc2=>67108864, 9 | fc3=>16777216, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>437133312, 14 | conv2=>1926758400, 15 | conv3=>704471040, 16 | conv4=>1056706560, 17 | conv5=>704471040, 18 | fc1=>150994944, 19 | fc2=>67108864, 20 | fc3=>16777216, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>437133312, 25 | conv2=>1926758400, 26 | conv3=>704471040, 27 | conv4=>1056706560, 28 | conv5=>704471040, 29 | fc1=>150994944, 30 | fc2=>67108864, 31 | fc3=>16777216, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>437133312, 36 | conv2=>1926758400, 37 | conv3=>704471040, 38 | conv4=>1056706560, 39 | conv5=>704471040, 40 | fc1=>150994944, 41 | fc2=>67108864, 42 | fc3=>16777216, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>437133312, 47 | conv2=>1926758400, 48 | conv3=>704471040, 49 | conv4=>1056706560, 50 | conv5=>704471040, 51 | fc1=>150994944, 52 | fc2=>67108864, 53 | fc3=>16777216, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_32_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>27320832, 3 | conv2=>120422400, 4 | conv3=>44029440, 5 | conv4=>65197440, 6 | conv5=>44029440, 7 | fc1=>9437184, 8 | fc2=>4194304, 9 | fc3=>1048576, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>27320832, 14 | conv2=>120422400, 15 | conv3=>44029440, 16 | conv4=>65197440, 17 | conv5=>44029440, 18 | fc1=>9437184, 19 | fc2=>4194304, 20 | fc3=>1048576, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>27320832, 25 | conv2=>120422400, 26 | conv3=>44029440, 27 | conv4=>65197440, 28 | conv5=>44029440, 29 | fc1=>9437184, 30 | fc2=>4194304, 31 | fc3=>1048576, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>27320832, 36 | conv2=>120422400, 37 | conv3=>44029440, 38 | conv4=>65197440, 39 | conv5=>44029440, 40 | fc1=>9437184, 41 | fc2=>4194304, 42 | fc3=>1048576, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>27320832, 47 | conv2=>120422400, 48 | conv3=>44029440, 49 | conv4=>65197440, 50 | conv5=>44029440, 51 | fc1=>9437184, 52 | fc2=>4194304, 53 | fc3=>1048576, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_32_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>54641664, 3 | conv2=>240844800, 4 | conv3=>88058880, 5 | conv4=>132088320, 6 | conv5=>88058880, 7 | fc1=>18874368, 8 | fc2=>8388608, 9 | fc3=>2097152, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>54641664, 14 | conv2=>240844800, 15 | conv3=>88058880, 16 | conv4=>132088320, 17 | conv5=>88058880, 18 | fc1=>18874368, 19 | fc2=>8388608, 20 | fc3=>2097152, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>54641664, 25 | conv2=>240844800, 26 | conv3=>88058880, 27 | conv4=>132088320, 28 | conv5=>88058880, 29 | fc1=>18874368, 30 | fc2=>8388608, 31 | fc3=>2097152, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>54641664, 36 | conv2=>240844800, 37 | conv3=>88058880, 38 | conv4=>132088320, 39 | conv5=>88058880, 40 | fc1=>18874368, 41 | fc2=>8388608, 42 | fc3=>2097152, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>54641664, 47 | conv2=>240844800, 48 | conv3=>88058880, 49 | conv4=>132088320, 50 | conv5=>88058880, 51 | fc1=>18874368, 52 | fc2=>8388608, 53 | fc3=>2097152, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_32_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>109283328, 3 | conv2=>481689600, 4 | conv3=>176117760, 5 | conv4=>264176640, 6 | conv5=>176117760, 7 | fc1=>37748736, 8 | fc2=>16777216, 9 | fc3=>4194304, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>109283328, 14 | conv2=>481689600, 15 | conv3=>176117760, 16 | conv4=>264176640, 17 | conv5=>176117760, 18 | fc1=>37748736, 19 | fc2=>16777216, 20 | fc3=>4194304, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>109283328, 25 | conv2=>481689600, 26 | conv3=>176117760, 27 | conv4=>264176640, 28 | conv5=>176117760, 29 | fc1=>37748736, 30 | fc2=>16777216, 31 | fc3=>4194304, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>109283328, 36 | conv2=>481689600, 37 | conv3=>176117760, 38 | conv4=>264176640, 39 | conv5=>176117760, 40 | fc1=>37748736, 41 | fc2=>16777216, 42 | fc3=>4194304, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>109283328, 47 | conv2=>481689600, 48 | conv3=>176117760, 49 | conv4=>264176640, 50 | conv5=>176117760, 51 | fc1=>37748736, 52 | fc2=>16777216, 53 | fc3=>4194304, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_32_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>218566656, 3 | conv2=>963379200, 4 | conv3=>352235520, 5 | conv4=>528353280, 6 | conv5=>352235520, 7 | fc1=>75497472, 8 | fc2=>33554432, 9 | fc3=>8388608, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>218566656, 14 | conv2=>963379200, 15 | conv3=>352235520, 16 | conv4=>528353280, 17 | conv5=>352235520, 18 | fc1=>75497472, 19 | fc2=>33554432, 20 | fc3=>8388608, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>218566656, 25 | conv2=>963379200, 26 | conv3=>352235520, 27 | conv4=>528353280, 28 | conv5=>352235520, 29 | fc1=>75497472, 30 | fc2=>33554432, 31 | fc3=>8388608, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>218566656, 36 | conv2=>963379200, 37 | conv3=>352235520, 38 | conv4=>528353280, 39 | conv5=>352235520, 40 | fc1=>75497472, 41 | fc2=>33554432, 42 | fc3=>8388608, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>218566656, 47 | conv2=>963379200, 48 | conv3=>352235520, 49 | conv4=>528353280, 50 | conv5=>352235520, 51 | fc1=>75497472, 52 | fc2=>33554432, 53 | fc3=>8388608, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_8_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>437133312, 3 | conv2=>1926758400, 4 | conv3=>704471040, 5 | conv4=>1056706560, 6 | conv5=>695439360, 7 | fc1=>150994944, 8 | fc2=>67108864, 9 | fc3=>16777216, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>437133312, 14 | conv2=>1926758400, 15 | conv3=>704471040, 16 | conv4=>1056706560, 17 | conv5=>695439360, 18 | fc1=>150994944, 19 | fc2=>67108864, 20 | fc3=>16777216, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>437133312, 25 | conv2=>1926758400, 26 | conv3=>704471040, 27 | conv4=>1056706560, 28 | conv5=>695439360, 29 | fc1=>150994944, 30 | fc2=>67108864, 31 | fc3=>16777216, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>437133312, 36 | conv2=>1926758400, 37 | conv3=>704471040, 38 | conv4=>1056706560, 39 | conv5=>695439360, 40 | fc1=>150994944, 41 | fc2=>67108864, 42 | fc3=>16777216, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>437133312, 47 | conv2=>1926758400, 48 | conv3=>704471040, 49 | conv4=>1056706560, 50 | conv5=>695439360, 51 | fc1=>150994944, 52 | fc2=>67108864, 53 | fc3=>16777216, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_8_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>27320832, 3 | conv2=>120422400, 4 | conv3=>44029440, 5 | conv4=>65197440, 6 | conv5=>43464960, 7 | fc1=>9437184, 8 | fc2=>4194304, 9 | fc3=>1048576, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>27320832, 14 | conv2=>120422400, 15 | conv3=>44029440, 16 | conv4=>65197440, 17 | conv5=>43464960, 18 | fc1=>9437184, 19 | fc2=>4194304, 20 | fc3=>1048576, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>27320832, 25 | conv2=>120422400, 26 | conv3=>44029440, 27 | conv4=>65197440, 28 | conv5=>43464960, 29 | fc1=>9437184, 30 | fc2=>4194304, 31 | fc3=>1048576, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>27320832, 36 | conv2=>120422400, 37 | conv3=>44029440, 38 | conv4=>65197440, 39 | conv5=>43464960, 40 | fc1=>9437184, 41 | fc2=>4194304, 42 | fc3=>1048576, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>27320832, 47 | conv2=>120422400, 48 | conv3=>44029440, 49 | conv4=>65197440, 50 | conv5=>43464960, 51 | fc1=>9437184, 52 | fc2=>4194304, 53 | fc3=>1048576, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_8_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>54641664, 3 | conv2=>240844800, 4 | conv3=>88058880, 5 | conv4=>130394880, 6 | conv5=>86929920, 7 | fc1=>18874368, 8 | fc2=>8388608, 9 | fc3=>2097152, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>54641664, 14 | conv2=>240844800, 15 | conv3=>88058880, 16 | conv4=>130394880, 17 | conv5=>86929920, 18 | fc1=>18874368, 19 | fc2=>8388608, 20 | fc3=>2097152, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>54641664, 25 | conv2=>240844800, 26 | conv3=>88058880, 27 | conv4=>130394880, 28 | conv5=>86929920, 29 | fc1=>18874368, 30 | fc2=>8388608, 31 | fc3=>2097152, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>54641664, 36 | conv2=>240844800, 37 | conv3=>88058880, 38 | conv4=>130394880, 39 | conv5=>86929920, 40 | fc1=>18874368, 41 | fc2=>8388608, 42 | fc3=>2097152, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>54641664, 47 | conv2=>240844800, 48 | conv3=>88058880, 49 | conv4=>130394880, 50 | conv5=>86929920, 51 | fc1=>18874368, 52 | fc2=>8388608, 53 | fc3=>2097152, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_8_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>109283328, 3 | conv2=>481689600, 4 | conv3=>176117760, 5 | conv4=>260789760, 6 | conv5=>173859840, 7 | fc1=>37748736, 8 | fc2=>16777216, 9 | fc3=>4194304, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>109283328, 14 | conv2=>481689600, 15 | conv3=>176117760, 16 | conv4=>260789760, 17 | conv5=>173859840, 18 | fc1=>37748736, 19 | fc2=>16777216, 20 | fc3=>4194304, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>109283328, 25 | conv2=>481689600, 26 | conv3=>176117760, 27 | conv4=>260789760, 28 | conv5=>173859840, 29 | fc1=>37748736, 30 | fc2=>16777216, 31 | fc3=>4194304, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>109283328, 36 | conv2=>481689600, 37 | conv3=>176117760, 38 | conv4=>260789760, 39 | conv5=>173859840, 40 | fc1=>37748736, 41 | fc2=>16777216, 42 | fc3=>4194304, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>109283328, 47 | conv2=>481689600, 48 | conv3=>176117760, 49 | conv4=>260789760, 50 | conv5=>173859840, 51 | fc1=>37748736, 52 | fc2=>16777216, 53 | fc3=>4194304, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/alex_net_8_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>218566656, 3 | conv2=>963379200, 4 | conv3=>352235520, 5 | conv4=>521579520, 6 | conv5=>347719680, 7 | fc1=>75497472, 8 | fc2=>33554432, 9 | fc3=>8388608, 10 | ); 11 | 1; 12 | % NNops1 =( 13 | conv1=>218566656, 14 | conv2=>963379200, 15 | conv3=>352235520, 16 | conv4=>521579520, 17 | conv5=>347719680, 18 | fc1=>75497472, 19 | fc2=>33554432, 20 | fc3=>8388608, 21 | ); 22 | 1; 23 | % NNops2 =( 24 | conv1=>218566656, 25 | conv2=>963379200, 26 | conv3=>352235520, 27 | conv4=>521579520, 28 | conv5=>347719680, 29 | fc1=>75497472, 30 | fc2=>33554432, 31 | fc3=>8388608, 32 | ); 33 | 1; 34 | % NNops3 =( 35 | conv1=>218566656, 36 | conv2=>963379200, 37 | conv3=>352235520, 38 | conv4=>521579520, 39 | conv5=>347719680, 40 | fc1=>75497472, 41 | fc2=>33554432, 42 | fc3=>8388608, 43 | ); 44 | 1; 45 | % NNops4 =( 46 | conv1=>218566656, 47 | conv2=>963379200, 48 | conv3=>352235520, 49 | conv4=>521579520, 50 | conv5=>347719680, 51 | fc1=>75497472, 52 | fc2=>33554432, 53 | fc3=>8388608, 54 | ); 55 | 1; 56 | -------------------------------------------------------------------------------- /ops/captioning_16_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>201326592, 3 | output=>67108864, 4 | conv_1=>262144, 5 | embed=>4669440, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>201326592, 10 | output=>67108864, 11 | conv_1=>262144, 12 | embed=>4669440, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>201326592, 17 | output=>67108864, 18 | conv_1=>262144, 19 | embed=>4669440, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>201326592, 24 | output=>67108864, 25 | conv_1=>262144, 26 | embed=>4669440, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>201326592, 31 | output=>67108864, 32 | conv_1=>262144, 33 | embed=>4669440, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_16_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>12582912, 3 | output=>4194304, 4 | conv_1=>16384, 5 | embed=>291072, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>12582912, 10 | output=>4194304, 11 | conv_1=>16384, 12 | embed=>291072, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>12582912, 17 | output=>4194304, 18 | conv_1=>16384, 19 | embed=>291072, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>12582912, 24 | output=>4194304, 25 | conv_1=>16384, 26 | embed=>291072, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>12582912, 31 | output=>4194304, 32 | conv_1=>16384, 33 | embed=>291072, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_16_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>25165824, 3 | output=>8388608, 4 | conv_1=>32768, 5 | embed=>583680, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>25165824, 10 | output=>8388608, 11 | conv_1=>32768, 12 | embed=>583680, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>25165824, 17 | output=>8388608, 18 | conv_1=>32768, 19 | embed=>583680, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>25165824, 24 | output=>8388608, 25 | conv_1=>32768, 26 | embed=>583680, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>25165824, 31 | output=>8388608, 32 | conv_1=>32768, 33 | embed=>583680, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_16_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>50331648, 3 | output=>16777216, 4 | conv_1=>65536, 5 | embed=>1167360, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>50331648, 10 | output=>16777216, 11 | conv_1=>65536, 12 | embed=>1167360, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>50331648, 17 | output=>16777216, 18 | conv_1=>65536, 19 | embed=>1167360, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>50331648, 24 | output=>16777216, 25 | conv_1=>65536, 26 | embed=>1167360, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>50331648, 31 | output=>16777216, 32 | conv_1=>65536, 33 | embed=>1167360, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_16_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>100663296, 3 | output=>33554432, 4 | conv_1=>131072, 5 | embed=>2334720, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>100663296, 10 | output=>33554432, 11 | conv_1=>131072, 12 | embed=>2334720, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>100663296, 17 | output=>33554432, 18 | conv_1=>131072, 19 | embed=>2334720, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>100663296, 24 | output=>33554432, 25 | conv_1=>131072, 26 | embed=>2334720, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>100663296, 31 | output=>33554432, 32 | conv_1=>131072, 33 | embed=>2334720, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_32_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>201326592, 3 | output=>67108864, 4 | conv_1=>262144, 5 | embed=>4669440, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>201326592, 10 | output=>67108864, 11 | conv_1=>262144, 12 | embed=>4669440, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>201326592, 17 | output=>67108864, 18 | conv_1=>262144, 19 | embed=>4669440, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>201326592, 24 | output=>67108864, 25 | conv_1=>262144, 26 | embed=>4669440, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>201326592, 31 | output=>67108864, 32 | conv_1=>262144, 33 | embed=>4669440, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_32_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>12582912, 3 | output=>4194304, 4 | conv_1=>16384, 5 | embed=>291072, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>12582912, 10 | output=>4194304, 11 | conv_1=>16384, 12 | embed=>291072, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>12582912, 17 | output=>4194304, 18 | conv_1=>16384, 19 | embed=>291072, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>12582912, 24 | output=>4194304, 25 | conv_1=>16384, 26 | embed=>291072, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>12582912, 31 | output=>4194304, 32 | conv_1=>16384, 33 | embed=>291072, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_32_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>25165824, 3 | output=>8388608, 4 | conv_1=>32768, 5 | embed=>583680, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>25165824, 10 | output=>8388608, 11 | conv_1=>32768, 12 | embed=>583680, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>25165824, 17 | output=>8388608, 18 | conv_1=>32768, 19 | embed=>583680, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>25165824, 24 | output=>8388608, 25 | conv_1=>32768, 26 | embed=>583680, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>25165824, 31 | output=>8388608, 32 | conv_1=>32768, 33 | embed=>583680, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_32_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>50331648, 3 | output=>16777216, 4 | conv_1=>65536, 5 | embed=>1167360, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>50331648, 10 | output=>16777216, 11 | conv_1=>65536, 12 | embed=>1167360, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>50331648, 17 | output=>16777216, 18 | conv_1=>65536, 19 | embed=>1167360, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>50331648, 24 | output=>16777216, 25 | conv_1=>65536, 26 | embed=>1167360, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>50331648, 31 | output=>16777216, 32 | conv_1=>65536, 33 | embed=>1167360, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_32_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>100663296, 3 | output=>33554432, 4 | conv_1=>131072, 5 | embed=>2334720, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>100663296, 10 | output=>33554432, 11 | conv_1=>131072, 12 | embed=>2334720, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>100663296, 17 | output=>33554432, 18 | conv_1=>131072, 19 | embed=>2334720, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>100663296, 24 | output=>33554432, 25 | conv_1=>131072, 26 | embed=>2334720, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>100663296, 31 | output=>33554432, 32 | conv_1=>131072, 33 | embed=>2334720, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_8_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>201326592, 3 | output=>67108864, 4 | conv_1=>262144, 5 | embed=>4669440, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>201326592, 10 | output=>67108864, 11 | conv_1=>262144, 12 | embed=>4669440, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>201326592, 17 | output=>67108864, 18 | conv_1=>262144, 19 | embed=>4669440, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>201326592, 24 | output=>67108864, 25 | conv_1=>262144, 26 | embed=>4669440, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>201326592, 31 | output=>67108864, 32 | conv_1=>262144, 33 | embed=>4669440, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_8_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>12582912, 3 | output=>4194304, 4 | conv_1=>16384, 5 | embed=>291072, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>12582912, 10 | output=>4194304, 11 | conv_1=>16384, 12 | embed=>291072, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>12582912, 17 | output=>4194304, 18 | conv_1=>16384, 19 | embed=>291072, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>12582912, 24 | output=>4194304, 25 | conv_1=>16384, 26 | embed=>291072, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>12582912, 31 | output=>4194304, 32 | conv_1=>16384, 33 | embed=>291072, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_8_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>25165824, 3 | output=>8388608, 4 | conv_1=>32768, 5 | embed=>583680, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>25165824, 10 | output=>8388608, 11 | conv_1=>32768, 12 | embed=>583680, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>25165824, 17 | output=>8388608, 18 | conv_1=>32768, 19 | embed=>583680, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>25165824, 24 | output=>8388608, 25 | conv_1=>32768, 26 | embed=>583680, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>25165824, 31 | output=>8388608, 32 | conv_1=>32768, 33 | embed=>583680, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_8_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>50331648, 3 | output=>16777216, 4 | conv_1=>65536, 5 | embed=>1167360, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>50331648, 10 | output=>16777216, 11 | conv_1=>65536, 12 | embed=>1167360, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>50331648, 17 | output=>16777216, 18 | conv_1=>65536, 19 | embed=>1167360, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>50331648, 24 | output=>16777216, 25 | conv_1=>65536, 26 | embed=>1167360, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>50331648, 31 | output=>16777216, 32 | conv_1=>65536, 33 | embed=>1167360, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/captioning_8_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | act=>100663296, 3 | output=>33554432, 4 | conv_1=>131072, 5 | embed=>2334720, 6 | ); 7 | 1; 8 | % NNops1 =( 9 | act=>100663296, 10 | output=>33554432, 11 | conv_1=>131072, 12 | embed=>2334720, 13 | ); 14 | 1; 15 | % NNops2 =( 16 | act=>100663296, 17 | output=>33554432, 18 | conv_1=>131072, 19 | embed=>2334720, 20 | ); 21 | 1; 22 | % NNops3 =( 23 | act=>100663296, 24 | output=>33554432, 25 | conv_1=>131072, 26 | embed=>2334720, 27 | ); 28 | 1; 29 | % NNops4 =( 30 | act=>100663296, 31 | output=>33554432, 32 | conv_1=>131072, 33 | embed=>2334720, 34 | ); 35 | 1; 36 | -------------------------------------------------------------------------------- /ops/langmod_16_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>3174400, 3 | act_1=>268435456, 4 | proj_1=>33554432, 5 | conv_1=>131072, 6 | conv_2=>131072, 7 | act_2=>268435456, 8 | output=>33554432, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>3174400, 13 | act_1=>268435456, 14 | proj_1=>33554432, 15 | conv_1=>131072, 16 | conv_2=>131072, 17 | act_2=>268435456, 18 | output=>33554432, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>3174400, 23 | act_1=>268435456, 24 | proj_1=>33554432, 25 | conv_1=>131072, 26 | conv_2=>131072, 27 | act_2=>268435456, 28 | output=>33554432, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>3174400, 33 | act_1=>268435456, 34 | proj_1=>33554432, 35 | conv_1=>131072, 36 | conv_2=>131072, 37 | act_2=>268435456, 38 | output=>33554432, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>3174400, 43 | act_1=>268435456, 44 | proj_1=>33554432, 45 | conv_1=>131072, 46 | conv_2=>131072, 47 | act_2=>268435456, 48 | output=>33554432, 49 | ); 50 | 1; 51 | % NNops5 =( 52 | embed1=>3174400, 53 | act_1=>268435456, 54 | proj_1=>33554432, 55 | conv_1=>131072, 56 | conv_2=>131072, 57 | act_2=>268435456, 58 | output=>33554432, 59 | ); 60 | 1; 61 | % NNops6 =( 62 | embed1=>3174400, 63 | act_1=>268435456, 64 | proj_1=>33554432, 65 | conv_1=>131072, 66 | conv_2=>131072, 67 | act_2=>268435456, 68 | output=>33554432, 69 | ); 70 | 1; 71 | % NNops7 =( 72 | embed1=>3174400, 73 | act_1=>268435456, 74 | proj_1=>33554432, 75 | conv_1=>131072, 76 | conv_2=>131072, 77 | act_2=>268435456, 78 | output=>33554432, 79 | ); 80 | 1; 81 | % NNops8 =( 82 | embed1=>3174400, 83 | act_1=>268435456, 84 | proj_1=>33554432, 85 | conv_1=>131072, 86 | conv_2=>131072, 87 | act_2=>268435456, 88 | output=>33554432, 89 | ); 90 | 1; 91 | % NNops9 =( 92 | embed1=>3174400, 93 | act_1=>268435456, 94 | proj_1=>33554432, 95 | conv_1=>131072, 96 | conv_2=>131072, 97 | act_2=>268435456, 98 | output=>33554432, 99 | ); 100 | 1; 101 | % NNops10 =( 102 | embed1=>3174400, 103 | act_1=>268435456, 104 | proj_1=>33554432, 105 | conv_1=>131072, 106 | conv_2=>131072, 107 | act_2=>268435456, 108 | output=>33554432, 109 | ); 110 | 1; 111 | % NNops11 =( 112 | embed1=>3174400, 113 | act_1=>268435456, 114 | proj_1=>33554432, 115 | conv_1=>131072, 116 | conv_2=>131072, 117 | act_2=>268435456, 118 | output=>33554432, 119 | ); 120 | 1; 121 | % NNops12 =( 122 | embed1=>3174400, 123 | act_1=>268435456, 124 | proj_1=>33554432, 125 | conv_1=>131072, 126 | conv_2=>131072, 127 | act_2=>268435456, 128 | output=>33554432, 129 | ); 130 | 1; 131 | % NNops13 =( 132 | embed1=>3174400, 133 | act_1=>268435456, 134 | proj_1=>33554432, 135 | conv_1=>131072, 136 | conv_2=>131072, 137 | act_2=>268435456, 138 | output=>33554432, 139 | ); 140 | 1; 141 | % NNops14 =( 142 | embed1=>3174400, 143 | act_1=>268435456, 144 | proj_1=>33554432, 145 | conv_1=>131072, 146 | conv_2=>131072, 147 | act_2=>268435456, 148 | output=>33554432, 149 | ); 150 | 1; 151 | % NNops15 =( 152 | embed1=>3174400, 153 | act_1=>268435456, 154 | proj_1=>33554432, 155 | conv_1=>131072, 156 | conv_2=>131072, 157 | act_2=>268435456, 158 | output=>33554432, 159 | ); 160 | 1; 161 | % NNops16 =( 162 | embed1=>3174400, 163 | act_1=>268435456, 164 | proj_1=>33554432, 165 | conv_1=>131072, 166 | conv_2=>131072, 167 | act_2=>268435456, 168 | output=>33554432, 169 | ); 170 | 1; 171 | % NNops17 =( 172 | embed1=>3174400, 173 | act_1=>268435456, 174 | proj_1=>33554432, 175 | conv_1=>131072, 176 | conv_2=>131072, 177 | act_2=>268435456, 178 | output=>33554432, 179 | ); 180 | 1; 181 | % NNops18 =( 182 | embed1=>3174400, 183 | act_1=>268435456, 184 | proj_1=>33554432, 185 | conv_1=>131072, 186 | conv_2=>131072, 187 | act_2=>268435456, 188 | output=>33554432, 189 | ); 190 | 1; 191 | % NNops19 =( 192 | embed1=>3174400, 193 | act_1=>268435456, 194 | proj_1=>33554432, 195 | conv_1=>131072, 196 | conv_2=>131072, 197 | act_2=>268435456, 198 | output=>33554432, 199 | ); 200 | 1; 201 | % NNops20 =( 202 | embed1=>3174400, 203 | act_1=>268435456, 204 | proj_1=>33554432, 205 | conv_1=>131072, 206 | conv_2=>131072, 207 | act_2=>268435456, 208 | output=>33554432, 209 | ); 210 | 1; 211 | % NNops21 =( 212 | embed1=>3174400, 213 | act_1=>268435456, 214 | proj_1=>33554432, 215 | conv_1=>131072, 216 | conv_2=>131072, 217 | act_2=>268435456, 218 | output=>33554432, 219 | ); 220 | 1; 221 | % NNops22 =( 222 | embed1=>3174400, 223 | act_1=>268435456, 224 | proj_1=>33554432, 225 | conv_1=>131072, 226 | conv_2=>131072, 227 | act_2=>268435456, 228 | output=>33554432, 229 | ); 230 | 1; 231 | % NNops23 =( 232 | embed1=>3174400, 233 | act_1=>268435456, 234 | proj_1=>33554432, 235 | conv_1=>131072, 236 | conv_2=>131072, 237 | act_2=>268435456, 238 | output=>33554432, 239 | ); 240 | 1; 241 | % NNops24 =( 242 | embed1=>3174400, 243 | act_1=>268435456, 244 | proj_1=>33554432, 245 | conv_1=>131072, 246 | conv_2=>131072, 247 | act_2=>268435456, 248 | output=>33554432, 249 | ); 250 | 1; 251 | % NNops25 =( 252 | embed1=>3174400, 253 | act_1=>268435456, 254 | proj_1=>33554432, 255 | conv_1=>131072, 256 | conv_2=>131072, 257 | act_2=>268435456, 258 | output=>33554432, 259 | ); 260 | 1; 261 | -------------------------------------------------------------------------------- /ops/langmod_16_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>198400, 3 | act_1=>16777216, 4 | proj_1=>2097152, 5 | conv_1=>8192, 6 | conv_2=>8192, 7 | act_2=>16777216, 8 | output=>2097152, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>198400, 13 | act_1=>16777216, 14 | proj_1=>2097152, 15 | conv_1=>8192, 16 | conv_2=>8192, 17 | act_2=>16777216, 18 | output=>2097152, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>198400, 23 | act_1=>16777216, 24 | proj_1=>2097152, 25 | conv_1=>8192, 26 | conv_2=>8192, 27 | act_2=>16777216, 28 | output=>2097152, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>198400, 33 | act_1=>16777216, 34 | proj_1=>2097152, 35 | conv_1=>8192, 36 | conv_2=>8192, 37 | act_2=>16777216, 38 | output=>2097152, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>198400, 43 | act_1=>16777216, 44 | proj_1=>2097152, 45 | conv_1=>8192, 46 | conv_2=>8192, 47 | act_2=>16777216, 48 | output=>2097152, 49 | ); 50 | 1; 51 | % NNops5 =( 52 | embed1=>198400, 53 | act_1=>16777216, 54 | proj_1=>2097152, 55 | conv_1=>8192, 56 | conv_2=>8192, 57 | act_2=>16777216, 58 | output=>2097152, 59 | ); 60 | 1; 61 | % NNops6 =( 62 | embed1=>198400, 63 | act_1=>16777216, 64 | proj_1=>2097152, 65 | conv_1=>8192, 66 | conv_2=>8192, 67 | act_2=>16777216, 68 | output=>2097152, 69 | ); 70 | 1; 71 | % NNops7 =( 72 | embed1=>198400, 73 | act_1=>16777216, 74 | proj_1=>2097152, 75 | conv_1=>8192, 76 | conv_2=>8192, 77 | act_2=>16777216, 78 | output=>2097152, 79 | ); 80 | 1; 81 | % NNops8 =( 82 | embed1=>198400, 83 | act_1=>16777216, 84 | proj_1=>2097152, 85 | conv_1=>8192, 86 | conv_2=>8192, 87 | act_2=>16777216, 88 | output=>2097152, 89 | ); 90 | 1; 91 | % NNops9 =( 92 | embed1=>198400, 93 | act_1=>16777216, 94 | proj_1=>2097152, 95 | conv_1=>8192, 96 | conv_2=>8192, 97 | act_2=>16777216, 98 | output=>2097152, 99 | ); 100 | 1; 101 | % NNops10 =( 102 | embed1=>198400, 103 | act_1=>16777216, 104 | proj_1=>2097152, 105 | conv_1=>8192, 106 | conv_2=>8192, 107 | act_2=>16777216, 108 | output=>2097152, 109 | ); 110 | 1; 111 | % NNops11 =( 112 | embed1=>198400, 113 | act_1=>16777216, 114 | proj_1=>2097152, 115 | conv_1=>8192, 116 | conv_2=>8192, 117 | act_2=>16777216, 118 | output=>2097152, 119 | ); 120 | 1; 121 | % NNops12 =( 122 | embed1=>198400, 123 | act_1=>16777216, 124 | proj_1=>2097152, 125 | conv_1=>8192, 126 | conv_2=>8192, 127 | act_2=>16777216, 128 | output=>2097152, 129 | ); 130 | 1; 131 | % NNops13 =( 132 | embed1=>198400, 133 | act_1=>16777216, 134 | proj_1=>2097152, 135 | conv_1=>8192, 136 | conv_2=>8192, 137 | act_2=>16777216, 138 | output=>2097152, 139 | ); 140 | 1; 141 | % NNops14 =( 142 | embed1=>198400, 143 | act_1=>16777216, 144 | proj_1=>2097152, 145 | conv_1=>8192, 146 | conv_2=>8192, 147 | act_2=>16777216, 148 | output=>2097152, 149 | ); 150 | 1; 151 | % NNops15 =( 152 | embed1=>198400, 153 | act_1=>16777216, 154 | proj_1=>2097152, 155 | conv_1=>8192, 156 | conv_2=>8192, 157 | act_2=>16777216, 158 | output=>2097152, 159 | ); 160 | 1; 161 | % NNops16 =( 162 | embed1=>198400, 163 | act_1=>16777216, 164 | proj_1=>2097152, 165 | conv_1=>8192, 166 | conv_2=>8192, 167 | act_2=>16777216, 168 | output=>2097152, 169 | ); 170 | 1; 171 | % NNops17 =( 172 | embed1=>198400, 173 | act_1=>16777216, 174 | proj_1=>2097152, 175 | conv_1=>8192, 176 | conv_2=>8192, 177 | act_2=>16777216, 178 | output=>2097152, 179 | ); 180 | 1; 181 | % NNops18 =( 182 | embed1=>198400, 183 | act_1=>16777216, 184 | proj_1=>2097152, 185 | conv_1=>8192, 186 | conv_2=>8192, 187 | act_2=>16777216, 188 | output=>2097152, 189 | ); 190 | 1; 191 | % NNops19 =( 192 | embed1=>198400, 193 | act_1=>16777216, 194 | proj_1=>2097152, 195 | conv_1=>8192, 196 | conv_2=>8192, 197 | act_2=>16777216, 198 | output=>2097152, 199 | ); 200 | 1; 201 | % NNops20 =( 202 | embed1=>198400, 203 | act_1=>16777216, 204 | proj_1=>2097152, 205 | conv_1=>8192, 206 | conv_2=>8192, 207 | act_2=>16777216, 208 | output=>2097152, 209 | ); 210 | 1; 211 | % NNops21 =( 212 | embed1=>198400, 213 | act_1=>16777216, 214 | proj_1=>2097152, 215 | conv_1=>8192, 216 | conv_2=>8192, 217 | act_2=>16777216, 218 | output=>2097152, 219 | ); 220 | 1; 221 | % NNops22 =( 222 | embed1=>198400, 223 | act_1=>16777216, 224 | proj_1=>2097152, 225 | conv_1=>8192, 226 | conv_2=>8192, 227 | act_2=>16777216, 228 | output=>2097152, 229 | ); 230 | 1; 231 | % NNops23 =( 232 | embed1=>198400, 233 | act_1=>16777216, 234 | proj_1=>2097152, 235 | conv_1=>8192, 236 | conv_2=>8192, 237 | act_2=>16777216, 238 | output=>2097152, 239 | ); 240 | 1; 241 | % NNops24 =( 242 | embed1=>198400, 243 | act_1=>16777216, 244 | proj_1=>2097152, 245 | conv_1=>8192, 246 | conv_2=>8192, 247 | act_2=>16777216, 248 | output=>2097152, 249 | ); 250 | 1; 251 | % NNops25 =( 252 | embed1=>198400, 253 | act_1=>16777216, 254 | proj_1=>2097152, 255 | conv_1=>8192, 256 | conv_2=>8192, 257 | act_2=>16777216, 258 | output=>2097152, 259 | ); 260 | 1; 261 | -------------------------------------------------------------------------------- /ops/langmod_16_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>396800, 3 | act_1=>33554432, 4 | proj_1=>4194304, 5 | conv_1=>16384, 6 | conv_2=>16384, 7 | act_2=>33554432, 8 | output=>4194304, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>396800, 13 | act_1=>33554432, 14 | proj_1=>4194304, 15 | conv_1=>16384, 16 | conv_2=>16384, 17 | act_2=>33554432, 18 | output=>4194304, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>396800, 23 | act_1=>33554432, 24 | proj_1=>4194304, 25 | conv_1=>16384, 26 | conv_2=>16384, 27 | act_2=>33554432, 28 | output=>4194304, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>396800, 33 | act_1=>33554432, 34 | proj_1=>4194304, 35 | conv_1=>16384, 36 | conv_2=>16384, 37 | act_2=>33554432, 38 | output=>4194304, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>396800, 43 | act_1=>33554432, 44 | proj_1=>4194304, 45 | conv_1=>16384, 46 | conv_2=>16384, 47 | act_2=>33554432, 48 | output=>4194304, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_16_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>793600, 3 | act_1=>67108864, 4 | proj_1=>8388608, 5 | conv_1=>32768, 6 | conv_2=>32768, 7 | act_2=>67108864, 8 | output=>8388608, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>793600, 13 | act_1=>67108864, 14 | proj_1=>8388608, 15 | conv_1=>32768, 16 | conv_2=>32768, 17 | act_2=>67108864, 18 | output=>8388608, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>793600, 23 | act_1=>67108864, 24 | proj_1=>8388608, 25 | conv_1=>32768, 26 | conv_2=>32768, 27 | act_2=>67108864, 28 | output=>8388608, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>793600, 33 | act_1=>67108864, 34 | proj_1=>8388608, 35 | conv_1=>32768, 36 | conv_2=>32768, 37 | act_2=>67108864, 38 | output=>8388608, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>793600, 43 | act_1=>67108864, 44 | proj_1=>8388608, 45 | conv_1=>32768, 46 | conv_2=>32768, 47 | act_2=>67108864, 48 | output=>8388608, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_16_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>1587200, 3 | act_1=>134217728, 4 | proj_1=>16777216, 5 | conv_1=>65536, 6 | conv_2=>65536, 7 | act_2=>134217728, 8 | output=>16777216, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>1587200, 13 | act_1=>134217728, 14 | proj_1=>16777216, 15 | conv_1=>65536, 16 | conv_2=>65536, 17 | act_2=>134217728, 18 | output=>16777216, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>1587200, 23 | act_1=>134217728, 24 | proj_1=>16777216, 25 | conv_1=>65536, 26 | conv_2=>65536, 27 | act_2=>134217728, 28 | output=>16777216, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>1587200, 33 | act_1=>134217728, 34 | proj_1=>16777216, 35 | conv_1=>65536, 36 | conv_2=>65536, 37 | act_2=>134217728, 38 | output=>16777216, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>1587200, 43 | act_1=>134217728, 44 | proj_1=>16777216, 45 | conv_1=>65536, 46 | conv_2=>65536, 47 | act_2=>134217728, 48 | output=>16777216, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_32_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>3174400, 3 | act_1=>268435456, 4 | proj_1=>33554432, 5 | conv_1=>131072, 6 | conv_2=>131072, 7 | act_2=>268435456, 8 | output=>33554432, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>3174400, 13 | act_1=>268435456, 14 | proj_1=>33554432, 15 | conv_1=>131072, 16 | conv_2=>131072, 17 | act_2=>268435456, 18 | output=>33554432, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>3174400, 23 | act_1=>268435456, 24 | proj_1=>33554432, 25 | conv_1=>131072, 26 | conv_2=>131072, 27 | act_2=>268435456, 28 | output=>33554432, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>3174400, 33 | act_1=>268435456, 34 | proj_1=>33554432, 35 | conv_1=>131072, 36 | conv_2=>131072, 37 | act_2=>268435456, 38 | output=>33554432, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>3174400, 43 | act_1=>268435456, 44 | proj_1=>33554432, 45 | conv_1=>131072, 46 | conv_2=>131072, 47 | act_2=>268435456, 48 | output=>33554432, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_32_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>198400, 3 | act_1=>16777216, 4 | proj_1=>2097152, 5 | conv_1=>8192, 6 | conv_2=>8192, 7 | act_2=>16777216, 8 | output=>2097152, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>198400, 13 | act_1=>16777216, 14 | proj_1=>2097152, 15 | conv_1=>8192, 16 | conv_2=>8192, 17 | act_2=>16777216, 18 | output=>2097152, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>198400, 23 | act_1=>16777216, 24 | proj_1=>2097152, 25 | conv_1=>8192, 26 | conv_2=>8192, 27 | act_2=>16777216, 28 | output=>2097152, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>198400, 33 | act_1=>16777216, 34 | proj_1=>2097152, 35 | conv_1=>8192, 36 | conv_2=>8192, 37 | act_2=>16777216, 38 | output=>2097152, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>198400, 43 | act_1=>16777216, 44 | proj_1=>2097152, 45 | conv_1=>8192, 46 | conv_2=>8192, 47 | act_2=>16777216, 48 | output=>2097152, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_32_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>396800, 3 | act_1=>33554432, 4 | proj_1=>4194304, 5 | conv_1=>16384, 6 | conv_2=>16384, 7 | act_2=>33554432, 8 | output=>4194304, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>396800, 13 | act_1=>33554432, 14 | proj_1=>4194304, 15 | conv_1=>16384, 16 | conv_2=>16384, 17 | act_2=>33554432, 18 | output=>4194304, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>396800, 23 | act_1=>33554432, 24 | proj_1=>4194304, 25 | conv_1=>16384, 26 | conv_2=>16384, 27 | act_2=>33554432, 28 | output=>4194304, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>396800, 33 | act_1=>33554432, 34 | proj_1=>4194304, 35 | conv_1=>16384, 36 | conv_2=>16384, 37 | act_2=>33554432, 38 | output=>4194304, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>396800, 43 | act_1=>33554432, 44 | proj_1=>4194304, 45 | conv_1=>16384, 46 | conv_2=>16384, 47 | act_2=>33554432, 48 | output=>4194304, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_32_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>793600, 3 | act_1=>67108864, 4 | proj_1=>8388608, 5 | conv_1=>32768, 6 | conv_2=>32768, 7 | act_2=>67108864, 8 | output=>8388608, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>793600, 13 | act_1=>67108864, 14 | proj_1=>8388608, 15 | conv_1=>32768, 16 | conv_2=>32768, 17 | act_2=>67108864, 18 | output=>8388608, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>793600, 23 | act_1=>67108864, 24 | proj_1=>8388608, 25 | conv_1=>32768, 26 | conv_2=>32768, 27 | act_2=>67108864, 28 | output=>8388608, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>793600, 33 | act_1=>67108864, 34 | proj_1=>8388608, 35 | conv_1=>32768, 36 | conv_2=>32768, 37 | act_2=>67108864, 38 | output=>8388608, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>793600, 43 | act_1=>67108864, 44 | proj_1=>8388608, 45 | conv_1=>32768, 46 | conv_2=>32768, 47 | act_2=>67108864, 48 | output=>8388608, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_32_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>1587200, 3 | act_1=>134217728, 4 | proj_1=>16777216, 5 | conv_1=>65536, 6 | conv_2=>65536, 7 | act_2=>134217728, 8 | output=>16777216, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>1587200, 13 | act_1=>134217728, 14 | proj_1=>16777216, 15 | conv_1=>65536, 16 | conv_2=>65536, 17 | act_2=>134217728, 18 | output=>16777216, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>1587200, 23 | act_1=>134217728, 24 | proj_1=>16777216, 25 | conv_1=>65536, 26 | conv_2=>65536, 27 | act_2=>134217728, 28 | output=>16777216, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>1587200, 33 | act_1=>134217728, 34 | proj_1=>16777216, 35 | conv_1=>65536, 36 | conv_2=>65536, 37 | act_2=>134217728, 38 | output=>16777216, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>1587200, 43 | act_1=>134217728, 44 | proj_1=>16777216, 45 | conv_1=>65536, 46 | conv_2=>65536, 47 | act_2=>134217728, 48 | output=>16777216, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_8_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>3174400, 3 | act_1=>268435456, 4 | proj_1=>33554432, 5 | conv_1=>131072, 6 | conv_2=>131072, 7 | act_2=>268435456, 8 | output=>33554432, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>3174400, 13 | act_1=>268435456, 14 | proj_1=>33554432, 15 | conv_1=>131072, 16 | conv_2=>131072, 17 | act_2=>268435456, 18 | output=>33554432, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>3174400, 23 | act_1=>268435456, 24 | proj_1=>33554432, 25 | conv_1=>131072, 26 | conv_2=>131072, 27 | act_2=>268435456, 28 | output=>33554432, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>3174400, 33 | act_1=>268435456, 34 | proj_1=>33554432, 35 | conv_1=>131072, 36 | conv_2=>131072, 37 | act_2=>268435456, 38 | output=>33554432, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>3174400, 43 | act_1=>268435456, 44 | proj_1=>33554432, 45 | conv_1=>131072, 46 | conv_2=>131072, 47 | act_2=>268435456, 48 | output=>33554432, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_8_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>198400, 3 | act_1=>16777216, 4 | proj_1=>2097152, 5 | conv_1=>8192, 6 | conv_2=>8192, 7 | act_2=>16777216, 8 | output=>2097152, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>198400, 13 | act_1=>16777216, 14 | proj_1=>2097152, 15 | conv_1=>8192, 16 | conv_2=>8192, 17 | act_2=>16777216, 18 | output=>2097152, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>198400, 23 | act_1=>16777216, 24 | proj_1=>2097152, 25 | conv_1=>8192, 26 | conv_2=>8192, 27 | act_2=>16777216, 28 | output=>2097152, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>198400, 33 | act_1=>16777216, 34 | proj_1=>2097152, 35 | conv_1=>8192, 36 | conv_2=>8192, 37 | act_2=>16777216, 38 | output=>2097152, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>198400, 43 | act_1=>16777216, 44 | proj_1=>2097152, 45 | conv_1=>8192, 46 | conv_2=>8192, 47 | act_2=>16777216, 48 | output=>2097152, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_8_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>396800, 3 | act_1=>33554432, 4 | proj_1=>4194304, 5 | conv_1=>16384, 6 | conv_2=>16384, 7 | act_2=>33554432, 8 | output=>4194304, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>396800, 13 | act_1=>33554432, 14 | proj_1=>4194304, 15 | conv_1=>16384, 16 | conv_2=>16384, 17 | act_2=>33554432, 18 | output=>4194304, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>396800, 23 | act_1=>33554432, 24 | proj_1=>4194304, 25 | conv_1=>16384, 26 | conv_2=>16384, 27 | act_2=>33554432, 28 | output=>4194304, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>396800, 33 | act_1=>33554432, 34 | proj_1=>4194304, 35 | conv_1=>16384, 36 | conv_2=>16384, 37 | act_2=>33554432, 38 | output=>4194304, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>396800, 43 | act_1=>33554432, 44 | proj_1=>4194304, 45 | conv_1=>16384, 46 | conv_2=>16384, 47 | act_2=>33554432, 48 | output=>4194304, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_8_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>793600, 3 | act_1=>67108864, 4 | proj_1=>8388608, 5 | conv_1=>32768, 6 | conv_2=>32768, 7 | act_2=>67108864, 8 | output=>8388608, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>793600, 13 | act_1=>67108864, 14 | proj_1=>8388608, 15 | conv_1=>32768, 16 | conv_2=>32768, 17 | act_2=>67108864, 18 | output=>8388608, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>793600, 23 | act_1=>67108864, 24 | proj_1=>8388608, 25 | conv_1=>32768, 26 | conv_2=>32768, 27 | act_2=>67108864, 28 | output=>8388608, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>793600, 33 | act_1=>67108864, 34 | proj_1=>8388608, 35 | conv_1=>32768, 36 | conv_2=>32768, 37 | act_2=>67108864, 38 | output=>8388608, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>793600, 43 | act_1=>67108864, 44 | proj_1=>8388608, 45 | conv_1=>32768, 46 | conv_2=>32768, 47 | act_2=>67108864, 48 | output=>8388608, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/langmod_8_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | embed1=>1587200, 3 | act_1=>134217728, 4 | proj_1=>16777216, 5 | conv_1=>65536, 6 | conv_2=>65536, 7 | act_2=>134217728, 8 | output=>16777216, 9 | ); 10 | 1; 11 | % NNops1 =( 12 | embed1=>1587200, 13 | act_1=>134217728, 14 | proj_1=>16777216, 15 | conv_1=>65536, 16 | conv_2=>65536, 17 | act_2=>134217728, 18 | output=>16777216, 19 | ); 20 | 1; 21 | % NNops2 =( 22 | embed1=>1587200, 23 | act_1=>134217728, 24 | proj_1=>16777216, 25 | conv_1=>65536, 26 | conv_2=>65536, 27 | act_2=>134217728, 28 | output=>16777216, 29 | ); 30 | 1; 31 | % NNops3 =( 32 | embed1=>1587200, 33 | act_1=>134217728, 34 | proj_1=>16777216, 35 | conv_1=>65536, 36 | conv_2=>65536, 37 | act_2=>134217728, 38 | output=>16777216, 39 | ); 40 | 1; 41 | % NNops4 =( 42 | embed1=>1587200, 43 | act_1=>134217728, 44 | proj_1=>16777216, 45 | conv_1=>65536, 46 | conv_2=>65536, 47 | act_2=>134217728, 48 | output=>16777216, 49 | ); 50 | 1; 51 | -------------------------------------------------------------------------------- /ops/resnet152_16_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>29503488, 3 | conv2_1_a=>3211264, 4 | conv2_1_b=>28901376, 5 | conv2_1_c=>12845056, 6 | conv2_2_a=>3211264, 7 | conv2_2_b=>28901376, 8 | conv2_2_c=>12845056, 9 | conv2_3_a=>3211264, 10 | conv2_3_b=>28901376, 11 | conv2_3_c=>12845056, 12 | conv3_1_a=>6422528, 13 | conv3_1_b=>29352960, 14 | conv3_1_c=>12845056, 15 | conv3_2_a=>12845056, 16 | conv3_2_b=>29352960, 17 | conv3_2_c=>12845056, 18 | conv3_3_a=>12845056, 19 | conv3_3_b=>29352960, 20 | conv3_3_c=>12845056, 21 | conv3_4_a=>12845056, 22 | conv3_4_b=>29352960, 23 | conv3_4_c=>12845056, 24 | conv3_5_a=>12845056, 25 | conv3_5_b=>29352960, 26 | conv3_5_c=>12845056, 27 | conv3_6_a=>12845056, 28 | conv3_6_b=>29352960, 29 | conv3_6_c=>12845056, 30 | conv3_7_a=>12845056, 31 | conv3_7_b=>29352960, 32 | conv3_7_c=>12845056, 33 | conv3_8_a=>12845056, 34 | conv3_8_b=>29352960, 35 | conv3_8_c=>12845056, 36 | conv4_01_a=>6422528, 37 | conv4_01_b=>29352960, 38 | conv4_01_c=>12845056, 39 | conv4_02_a=>12845056, 40 | conv4_02_b=>29352960, 41 | conv4_02_c=>12845056, 42 | conv4_03_a=>12845056, 43 | conv4_03_b=>29352960, 44 | conv4_03_c=>12845056, 45 | conv4_04_a=>12845056, 46 | conv4_04_b=>29352960, 47 | conv4_04_c=>12845056, 48 | conv4_05_a=>12845056, 49 | conv4_05_b=>29352960, 50 | conv4_05_c=>12845056, 51 | conv4_06_a=>12845056, 52 | conv4_06_b=>29352960, 53 | conv4_06_c=>12845056, 54 | conv4_07_a=>12845056, 55 | conv4_07_b=>29352960, 56 | conv4_07_c=>12845056, 57 | conv4_08_a=>12845056, 58 | conv4_08_b=>29352960, 59 | conv4_08_c=>12845056, 60 | conv4_09_a=>12845056, 61 | conv4_09_b=>29352960, 62 | conv4_09_c=>12845056, 63 | conv4_10_a=>12845056, 64 | conv4_10_b=>29352960, 65 | conv4_10_c=>12845056, 66 | conv4_11_a=>12845056, 67 | conv4_11_b=>29352960, 68 | conv4_11_c=>12845056, 69 | conv4_12_a=>12845056, 70 | conv4_12_b=>29352960, 71 | conv4_12_c=>12845056, 72 | conv4_13_a=>12845056, 73 | conv4_13_b=>29352960, 74 | conv4_13_c=>12845056, 75 | conv4_14_a=>12845056, 76 | conv4_14_b=>29352960, 77 | conv4_14_c=>12845056, 78 | conv4_15_a=>12845056, 79 | conv4_15_b=>29352960, 80 | conv4_15_c=>12845056, 81 | conv4_16_a=>12845056, 82 | conv4_16_b=>29352960, 83 | conv4_16_c=>12845056, 84 | conv4_17_a=>12845056, 85 | conv4_17_b=>29352960, 86 | conv4_17_c=>12845056, 87 | conv4_18_a=>12845056, 88 | conv4_18_b=>29352960, 89 | conv4_18_c=>12845056, 90 | conv4_19_a=>12845056, 91 | conv4_19_b=>29352960, 92 | conv4_19_c=>12845056, 93 | conv4_20_a=>12845056, 94 | conv4_20_b=>29352960, 95 | conv4_20_c=>12845056, 96 | conv4_21_a=>12845056, 97 | conv4_21_b=>29352960, 98 | conv4_21_c=>12845056, 99 | conv4_22_a=>12845056, 100 | conv4_22_b=>29352960, 101 | conv4_22_c=>12845056, 102 | conv4_23_a=>12845056, 103 | conv4_23_b=>29352960, 104 | conv4_23_c=>12845056, 105 | conv4_24_a=>12845056, 106 | conv4_24_b=>29352960, 107 | conv4_24_c=>12845056, 108 | conv4_25_a=>12845056, 109 | conv4_25_b=>29352960, 110 | conv4_25_c=>12845056, 111 | conv4_26_a=>12845056, 112 | conv4_26_b=>29352960, 113 | conv4_26_c=>12845056, 114 | conv4_27_a=>12845056, 115 | conv4_27_b=>29352960, 116 | conv4_27_c=>12845056, 117 | conv4_28_a=>12845056, 118 | conv4_28_b=>29352960, 119 | conv4_28_c=>12845056, 120 | conv4_29_a=>12845056, 121 | conv4_29_b=>29352960, 122 | conv4_29_c=>12845056, 123 | conv4_30_a=>12845056, 124 | conv4_30_b=>29352960, 125 | conv4_30_c=>12845056, 126 | conv4_31_a=>12845056, 127 | conv4_31_b=>29352960, 128 | conv4_31_c=>12845056, 129 | conv4_32_a=>12845056, 130 | conv4_32_b=>29352960, 131 | conv4_32_c=>12845056, 132 | conv4_33_a=>12845056, 133 | conv4_33_b=>29352960, 134 | conv4_33_c=>12845056, 135 | conv4_34_a=>12845056, 136 | conv4_34_b=>29352960, 137 | conv4_34_c=>12845056, 138 | conv4_35_a=>12845056, 139 | conv4_35_b=>29352960, 140 | conv4_35_c=>12845056, 141 | conv4_36_a=>12845056, 142 | conv4_36_b=>29352960, 143 | conv4_36_c=>12845056, 144 | conv5_1_a=>8388608, 145 | conv5_1_b=>37969920, 146 | conv5_1_c=>16777216, 147 | conv5_2_a=>16777216, 148 | conv5_2_b=>37969920, 149 | conv5_2_c=>16777216, 150 | conv5_3_a=>16777216, 151 | conv5_3_b=>37969920, 152 | conv5_3_c=>16777216, 153 | ); 154 | 1; 155 | % NNops1 =( 156 | conv1=>29503488, 157 | conv2_1_a=>3211264, 158 | conv2_1_b=>28901376, 159 | conv2_1_c=>12845056, 160 | conv2_2_a=>3211264, 161 | conv2_2_b=>28901376, 162 | conv2_2_c=>12845056, 163 | conv2_3_a=>3211264, 164 | conv2_3_b=>28901376, 165 | conv2_3_c=>12845056, 166 | conv3_1_a=>6422528, 167 | conv3_1_b=>29352960, 168 | conv3_1_c=>12845056, 169 | conv3_2_a=>12845056, 170 | conv3_2_b=>29352960, 171 | conv3_2_c=>12845056, 172 | conv3_3_a=>12845056, 173 | conv3_3_b=>29352960, 174 | conv3_3_c=>12845056, 175 | conv3_4_a=>12845056, 176 | conv3_4_b=>29352960, 177 | conv3_4_c=>12845056, 178 | conv3_5_a=>12845056, 179 | conv3_5_b=>29352960, 180 | conv3_5_c=>12845056, 181 | conv3_6_a=>12845056, 182 | conv3_6_b=>29352960, 183 | conv3_6_c=>12845056, 184 | conv3_7_a=>12845056, 185 | conv3_7_b=>29352960, 186 | conv3_7_c=>12845056, 187 | conv3_8_a=>12845056, 188 | conv3_8_b=>29352960, 189 | conv3_8_c=>12845056, 190 | conv4_01_a=>6422528, 191 | conv4_01_b=>29352960, 192 | conv4_01_c=>12845056, 193 | conv4_02_a=>12845056, 194 | conv4_02_b=>29352960, 195 | conv4_02_c=>12845056, 196 | conv4_03_a=>12845056, 197 | conv4_03_b=>29352960, 198 | conv4_03_c=>12845056, 199 | conv4_04_a=>12845056, 200 | conv4_04_b=>29352960, 201 | conv4_04_c=>12845056, 202 | conv4_05_a=>12845056, 203 | conv4_05_b=>29352960, 204 | conv4_05_c=>12845056, 205 | conv4_06_a=>12845056, 206 | conv4_06_b=>29352960, 207 | conv4_06_c=>12845056, 208 | conv4_07_a=>12845056, 209 | conv4_07_b=>29352960, 210 | conv4_07_c=>12845056, 211 | conv4_08_a=>12845056, 212 | conv4_08_b=>29352960, 213 | conv4_08_c=>12845056, 214 | conv4_09_a=>12845056, 215 | conv4_09_b=>29352960, 216 | conv4_09_c=>12845056, 217 | conv4_10_a=>12845056, 218 | conv4_10_b=>29352960, 219 | conv4_10_c=>12845056, 220 | conv4_11_a=>12845056, 221 | conv4_11_b=>29352960, 222 | conv4_11_c=>12845056, 223 | conv4_12_a=>12845056, 224 | conv4_12_b=>29352960, 225 | conv4_12_c=>12845056, 226 | conv4_13_a=>12845056, 227 | conv4_13_b=>29352960, 228 | conv4_13_c=>12845056, 229 | conv4_14_a=>12845056, 230 | conv4_14_b=>29352960, 231 | conv4_14_c=>12845056, 232 | conv4_15_a=>12845056, 233 | conv4_15_b=>29352960, 234 | conv4_15_c=>12845056, 235 | conv4_16_a=>12845056, 236 | conv4_16_b=>29352960, 237 | conv4_16_c=>12845056, 238 | conv4_17_a=>12845056, 239 | conv4_17_b=>29352960, 240 | conv4_17_c=>12845056, 241 | conv4_18_a=>12845056, 242 | conv4_18_b=>29352960, 243 | conv4_18_c=>12845056, 244 | conv4_19_a=>12845056, 245 | conv4_19_b=>29352960, 246 | conv4_19_c=>12845056, 247 | conv4_20_a=>12845056, 248 | conv4_20_b=>29352960, 249 | conv4_20_c=>12845056, 250 | conv4_21_a=>12845056, 251 | conv4_21_b=>29352960, 252 | conv4_21_c=>12845056, 253 | conv4_22_a=>12845056, 254 | conv4_22_b=>29352960, 255 | conv4_22_c=>12845056, 256 | conv4_23_a=>12845056, 257 | conv4_23_b=>29352960, 258 | conv4_23_c=>12845056, 259 | conv4_24_a=>12845056, 260 | conv4_24_b=>29352960, 261 | conv4_24_c=>12845056, 262 | conv4_25_a=>12845056, 263 | conv4_25_b=>29352960, 264 | conv4_25_c=>12845056, 265 | conv4_26_a=>12845056, 266 | conv4_26_b=>29352960, 267 | conv4_26_c=>12845056, 268 | conv4_27_a=>12845056, 269 | conv4_27_b=>29352960, 270 | conv4_27_c=>12845056, 271 | conv4_28_a=>12845056, 272 | conv4_28_b=>29352960, 273 | conv4_28_c=>12845056, 274 | conv4_29_a=>12845056, 275 | conv4_29_b=>29352960, 276 | conv4_29_c=>12845056, 277 | conv4_30_a=>12845056, 278 | conv4_30_b=>29352960, 279 | conv4_30_c=>12845056, 280 | conv4_31_a=>12845056, 281 | conv4_31_b=>29352960, 282 | conv4_31_c=>12845056, 283 | conv4_32_a=>12845056, 284 | conv4_32_b=>29352960, 285 | conv4_32_c=>12845056, 286 | conv4_33_a=>12845056, 287 | conv4_33_b=>29352960, 288 | conv4_33_c=>12845056, 289 | conv4_34_a=>12845056, 290 | conv4_34_b=>29352960, 291 | conv4_34_c=>12845056, 292 | conv4_35_a=>12845056, 293 | conv4_35_b=>29352960, 294 | conv4_35_c=>12845056, 295 | conv4_36_a=>12845056, 296 | conv4_36_b=>29352960, 297 | conv4_36_c=>12845056, 298 | conv5_1_a=>8388608, 299 | conv5_1_b=>37969920, 300 | conv5_1_c=>16777216, 301 | conv5_2_a=>16777216, 302 | conv5_2_b=>37969920, 303 | conv5_2_c=>16777216, 304 | conv5_3_a=>16777216, 305 | conv5_3_b=>37969920, 306 | conv5_3_c=>16777216, 307 | ); 308 | 1; 309 | % NNops2 =( 310 | conv1=>29503488, 311 | conv2_1_a=>3211264, 312 | conv2_1_b=>28901376, 313 | conv2_1_c=>12845056, 314 | conv2_2_a=>3211264, 315 | conv2_2_b=>28901376, 316 | conv2_2_c=>12845056, 317 | conv2_3_a=>3211264, 318 | conv2_3_b=>28901376, 319 | conv2_3_c=>12845056, 320 | conv3_1_a=>6422528, 321 | conv3_1_b=>29352960, 322 | conv3_1_c=>12845056, 323 | conv3_2_a=>12845056, 324 | conv3_2_b=>29352960, 325 | conv3_2_c=>12845056, 326 | conv3_3_a=>12845056, 327 | conv3_3_b=>29352960, 328 | conv3_3_c=>12845056, 329 | conv3_4_a=>12845056, 330 | conv3_4_b=>29352960, 331 | conv3_4_c=>12845056, 332 | conv3_5_a=>12845056, 333 | conv3_5_b=>29352960, 334 | conv3_5_c=>12845056, 335 | conv3_6_a=>12845056, 336 | conv3_6_b=>29352960, 337 | conv3_6_c=>12845056, 338 | conv3_7_a=>12845056, 339 | conv3_7_b=>29352960, 340 | conv3_7_c=>12845056, 341 | conv3_8_a=>12845056, 342 | conv3_8_b=>29352960, 343 | conv3_8_c=>12845056, 344 | conv4_01_a=>6422528, 345 | conv4_01_b=>29352960, 346 | conv4_01_c=>12845056, 347 | conv4_02_a=>12845056, 348 | conv4_02_b=>29352960, 349 | conv4_02_c=>12845056, 350 | conv4_03_a=>12845056, 351 | conv4_03_b=>29352960, 352 | conv4_03_c=>12845056, 353 | conv4_04_a=>12845056, 354 | conv4_04_b=>29352960, 355 | conv4_04_c=>12845056, 356 | conv4_05_a=>12845056, 357 | conv4_05_b=>29352960, 358 | conv4_05_c=>12845056, 359 | conv4_06_a=>12845056, 360 | conv4_06_b=>29352960, 361 | conv4_06_c=>12845056, 362 | conv4_07_a=>12845056, 363 | conv4_07_b=>29352960, 364 | conv4_07_c=>12845056, 365 | conv4_08_a=>12845056, 366 | conv4_08_b=>29352960, 367 | conv4_08_c=>12845056, 368 | conv4_09_a=>12845056, 369 | conv4_09_b=>29352960, 370 | conv4_09_c=>12845056, 371 | conv4_10_a=>12845056, 372 | conv4_10_b=>29352960, 373 | conv4_10_c=>12845056, 374 | conv4_11_a=>12845056, 375 | conv4_11_b=>29352960, 376 | conv4_11_c=>12845056, 377 | conv4_12_a=>12845056, 378 | conv4_12_b=>29352960, 379 | conv4_12_c=>12845056, 380 | conv4_13_a=>12845056, 381 | conv4_13_b=>29352960, 382 | conv4_13_c=>12845056, 383 | conv4_14_a=>12845056, 384 | conv4_14_b=>29352960, 385 | conv4_14_c=>12845056, 386 | conv4_15_a=>12845056, 387 | conv4_15_b=>29352960, 388 | conv4_15_c=>12845056, 389 | conv4_16_a=>12845056, 390 | conv4_16_b=>29352960, 391 | conv4_16_c=>12845056, 392 | conv4_17_a=>12845056, 393 | conv4_17_b=>29352960, 394 | conv4_17_c=>12845056, 395 | conv4_18_a=>12845056, 396 | conv4_18_b=>29352960, 397 | conv4_18_c=>12845056, 398 | conv4_19_a=>12845056, 399 | conv4_19_b=>29352960, 400 | conv4_19_c=>12845056, 401 | conv4_20_a=>12845056, 402 | conv4_20_b=>29352960, 403 | conv4_20_c=>12845056, 404 | conv4_21_a=>12845056, 405 | conv4_21_b=>29352960, 406 | conv4_21_c=>12845056, 407 | conv4_22_a=>12845056, 408 | conv4_22_b=>29352960, 409 | conv4_22_c=>12845056, 410 | conv4_23_a=>12845056, 411 | conv4_23_b=>29352960, 412 | conv4_23_c=>12845056, 413 | conv4_24_a=>12845056, 414 | conv4_24_b=>29352960, 415 | conv4_24_c=>12845056, 416 | conv4_25_a=>12845056, 417 | conv4_25_b=>29352960, 418 | conv4_25_c=>12845056, 419 | conv4_26_a=>12845056, 420 | conv4_26_b=>29352960, 421 | conv4_26_c=>12845056, 422 | conv4_27_a=>12845056, 423 | conv4_27_b=>29352960, 424 | conv4_27_c=>12845056, 425 | conv4_28_a=>12845056, 426 | conv4_28_b=>29352960, 427 | conv4_28_c=>12845056, 428 | conv4_29_a=>12845056, 429 | conv4_29_b=>29352960, 430 | conv4_29_c=>12845056, 431 | conv4_30_a=>12845056, 432 | conv4_30_b=>29352960, 433 | conv4_30_c=>12845056, 434 | conv4_31_a=>12845056, 435 | conv4_31_b=>29352960, 436 | conv4_31_c=>12845056, 437 | conv4_32_a=>12845056, 438 | conv4_32_b=>29352960, 439 | conv4_32_c=>12845056, 440 | conv4_33_a=>12845056, 441 | conv4_33_b=>29352960, 442 | conv4_33_c=>12845056, 443 | conv4_34_a=>12845056, 444 | conv4_34_b=>29352960, 445 | conv4_34_c=>12845056, 446 | conv4_35_a=>12845056, 447 | conv4_35_b=>29352960, 448 | conv4_35_c=>12845056, 449 | conv4_36_a=>12845056, 450 | conv4_36_b=>29352960, 451 | conv4_36_c=>12845056, 452 | conv5_1_a=>8388608, 453 | conv5_1_b=>37969920, 454 | conv5_1_c=>16777216, 455 | conv5_2_a=>16777216, 456 | conv5_2_b=>37969920, 457 | conv5_2_c=>16777216, 458 | conv5_3_a=>16777216, 459 | conv5_3_b=>37969920, 460 | conv5_3_c=>16777216, 461 | ); 462 | 1; 463 | % NNops3 =( 464 | conv1=>29503488, 465 | conv2_1_a=>3211264, 466 | conv2_1_b=>28901376, 467 | conv2_1_c=>12845056, 468 | conv2_2_a=>3211264, 469 | conv2_2_b=>28901376, 470 | conv2_2_c=>12845056, 471 | conv2_3_a=>3211264, 472 | conv2_3_b=>28901376, 473 | conv2_3_c=>12845056, 474 | conv3_1_a=>6422528, 475 | conv3_1_b=>29352960, 476 | conv3_1_c=>12845056, 477 | conv3_2_a=>12845056, 478 | conv3_2_b=>29352960, 479 | conv3_2_c=>12845056, 480 | conv3_3_a=>12845056, 481 | conv3_3_b=>29352960, 482 | conv3_3_c=>12845056, 483 | conv3_4_a=>12845056, 484 | conv3_4_b=>29352960, 485 | conv3_4_c=>12845056, 486 | conv3_5_a=>12845056, 487 | conv3_5_b=>29352960, 488 | conv3_5_c=>12845056, 489 | conv3_6_a=>12845056, 490 | conv3_6_b=>29352960, 491 | conv3_6_c=>12845056, 492 | conv3_7_a=>12845056, 493 | conv3_7_b=>29352960, 494 | conv3_7_c=>12845056, 495 | conv3_8_a=>12845056, 496 | conv3_8_b=>29352960, 497 | conv3_8_c=>12845056, 498 | conv4_01_a=>6422528, 499 | conv4_01_b=>29352960, 500 | conv4_01_c=>12845056, 501 | conv4_02_a=>12845056, 502 | conv4_02_b=>29352960, 503 | conv4_02_c=>12845056, 504 | conv4_03_a=>12845056, 505 | conv4_03_b=>29352960, 506 | conv4_03_c=>12845056, 507 | conv4_04_a=>12845056, 508 | conv4_04_b=>29352960, 509 | conv4_04_c=>12845056, 510 | conv4_05_a=>12845056, 511 | conv4_05_b=>29352960, 512 | conv4_05_c=>12845056, 513 | conv4_06_a=>12845056, 514 | conv4_06_b=>29352960, 515 | conv4_06_c=>12845056, 516 | conv4_07_a=>12845056, 517 | conv4_07_b=>29352960, 518 | conv4_07_c=>12845056, 519 | conv4_08_a=>12845056, 520 | conv4_08_b=>29352960, 521 | conv4_08_c=>12845056, 522 | conv4_09_a=>12845056, 523 | conv4_09_b=>29352960, 524 | conv4_09_c=>12845056, 525 | conv4_10_a=>12845056, 526 | conv4_10_b=>29352960, 527 | conv4_10_c=>12845056, 528 | conv4_11_a=>12845056, 529 | conv4_11_b=>29352960, 530 | conv4_11_c=>12845056, 531 | conv4_12_a=>12845056, 532 | conv4_12_b=>29352960, 533 | conv4_12_c=>12845056, 534 | conv4_13_a=>12845056, 535 | conv4_13_b=>29352960, 536 | conv4_13_c=>12845056, 537 | conv4_14_a=>12845056, 538 | conv4_14_b=>29352960, 539 | conv4_14_c=>12845056, 540 | conv4_15_a=>12845056, 541 | conv4_15_b=>29352960, 542 | conv4_15_c=>12845056, 543 | conv4_16_a=>12845056, 544 | conv4_16_b=>29352960, 545 | conv4_16_c=>12845056, 546 | conv4_17_a=>12845056, 547 | conv4_17_b=>29352960, 548 | conv4_17_c=>12845056, 549 | conv4_18_a=>12845056, 550 | conv4_18_b=>29352960, 551 | conv4_18_c=>12845056, 552 | conv4_19_a=>12845056, 553 | conv4_19_b=>29352960, 554 | conv4_19_c=>12845056, 555 | conv4_20_a=>12845056, 556 | conv4_20_b=>29352960, 557 | conv4_20_c=>12845056, 558 | conv4_21_a=>12845056, 559 | conv4_21_b=>29352960, 560 | conv4_21_c=>12845056, 561 | conv4_22_a=>12845056, 562 | conv4_22_b=>29352960, 563 | conv4_22_c=>12845056, 564 | conv4_23_a=>12845056, 565 | conv4_23_b=>29352960, 566 | conv4_23_c=>12845056, 567 | conv4_24_a=>12845056, 568 | conv4_24_b=>29352960, 569 | conv4_24_c=>12845056, 570 | conv4_25_a=>12845056, 571 | conv4_25_b=>29352960, 572 | conv4_25_c=>12845056, 573 | conv4_26_a=>12845056, 574 | conv4_26_b=>29352960, 575 | conv4_26_c=>12845056, 576 | conv4_27_a=>12845056, 577 | conv4_27_b=>29352960, 578 | conv4_27_c=>12845056, 579 | conv4_28_a=>12845056, 580 | conv4_28_b=>29352960, 581 | conv4_28_c=>12845056, 582 | conv4_29_a=>12845056, 583 | conv4_29_b=>29352960, 584 | conv4_29_c=>12845056, 585 | conv4_30_a=>12845056, 586 | conv4_30_b=>29352960, 587 | conv4_30_c=>12845056, 588 | conv4_31_a=>12845056, 589 | conv4_31_b=>29352960, 590 | conv4_31_c=>12845056, 591 | conv4_32_a=>12845056, 592 | conv4_32_b=>29352960, 593 | conv4_32_c=>12845056, 594 | conv4_33_a=>12845056, 595 | conv4_33_b=>29352960, 596 | conv4_33_c=>12845056, 597 | conv4_34_a=>12845056, 598 | conv4_34_b=>29352960, 599 | conv4_34_c=>12845056, 600 | conv4_35_a=>12845056, 601 | conv4_35_b=>29352960, 602 | conv4_35_c=>12845056, 603 | conv4_36_a=>12845056, 604 | conv4_36_b=>29352960, 605 | conv4_36_c=>12845056, 606 | conv5_1_a=>8388608, 607 | conv5_1_b=>37969920, 608 | conv5_1_c=>16777216, 609 | conv5_2_a=>16777216, 610 | conv5_2_b=>37969920, 611 | conv5_2_c=>16777216, 612 | conv5_3_a=>16777216, 613 | conv5_3_b=>37969920, 614 | conv5_3_c=>16777216, 615 | ); 616 | 1; 617 | % NNops4 =( 618 | conv1=>29503488, 619 | conv2_1_a=>3211264, 620 | conv2_1_b=>28901376, 621 | conv2_1_c=>12845056, 622 | conv2_2_a=>3211264, 623 | conv2_2_b=>28901376, 624 | conv2_2_c=>12845056, 625 | conv2_3_a=>3211264, 626 | conv2_3_b=>28901376, 627 | conv2_3_c=>12845056, 628 | conv3_1_a=>6422528, 629 | conv3_1_b=>29352960, 630 | conv3_1_c=>12845056, 631 | conv3_2_a=>12845056, 632 | conv3_2_b=>29352960, 633 | conv3_2_c=>12845056, 634 | conv3_3_a=>12845056, 635 | conv3_3_b=>29352960, 636 | conv3_3_c=>12845056, 637 | conv3_4_a=>12845056, 638 | conv3_4_b=>29352960, 639 | conv3_4_c=>12845056, 640 | conv3_5_a=>12845056, 641 | conv3_5_b=>29352960, 642 | conv3_5_c=>12845056, 643 | conv3_6_a=>12845056, 644 | conv3_6_b=>29352960, 645 | conv3_6_c=>12845056, 646 | conv3_7_a=>12845056, 647 | conv3_7_b=>29352960, 648 | conv3_7_c=>12845056, 649 | conv3_8_a=>12845056, 650 | conv3_8_b=>29352960, 651 | conv3_8_c=>12845056, 652 | conv4_01_a=>6422528, 653 | conv4_01_b=>29352960, 654 | conv4_01_c=>12845056, 655 | conv4_02_a=>12845056, 656 | conv4_02_b=>29352960, 657 | conv4_02_c=>12845056, 658 | conv4_03_a=>12845056, 659 | conv4_03_b=>29352960, 660 | conv4_03_c=>12845056, 661 | conv4_04_a=>12845056, 662 | conv4_04_b=>29352960, 663 | conv4_04_c=>12845056, 664 | conv4_05_a=>12845056, 665 | conv4_05_b=>29352960, 666 | conv4_05_c=>12845056, 667 | conv4_06_a=>12845056, 668 | conv4_06_b=>29352960, 669 | conv4_06_c=>12845056, 670 | conv4_07_a=>12845056, 671 | conv4_07_b=>29352960, 672 | conv4_07_c=>12845056, 673 | conv4_08_a=>12845056, 674 | conv4_08_b=>29352960, 675 | conv4_08_c=>12845056, 676 | conv4_09_a=>12845056, 677 | conv4_09_b=>29352960, 678 | conv4_09_c=>12845056, 679 | conv4_10_a=>12845056, 680 | conv4_10_b=>29352960, 681 | conv4_10_c=>12845056, 682 | conv4_11_a=>12845056, 683 | conv4_11_b=>29352960, 684 | conv4_11_c=>12845056, 685 | conv4_12_a=>12845056, 686 | conv4_12_b=>29352960, 687 | conv4_12_c=>12845056, 688 | conv4_13_a=>12845056, 689 | conv4_13_b=>29352960, 690 | conv4_13_c=>12845056, 691 | conv4_14_a=>12845056, 692 | conv4_14_b=>29352960, 693 | conv4_14_c=>12845056, 694 | conv4_15_a=>12845056, 695 | conv4_15_b=>29352960, 696 | conv4_15_c=>12845056, 697 | conv4_16_a=>12845056, 698 | conv4_16_b=>29352960, 699 | conv4_16_c=>12845056, 700 | conv4_17_a=>12845056, 701 | conv4_17_b=>29352960, 702 | conv4_17_c=>12845056, 703 | conv4_18_a=>12845056, 704 | conv4_18_b=>29352960, 705 | conv4_18_c=>12845056, 706 | conv4_19_a=>12845056, 707 | conv4_19_b=>29352960, 708 | conv4_19_c=>12845056, 709 | conv4_20_a=>12845056, 710 | conv4_20_b=>29352960, 711 | conv4_20_c=>12845056, 712 | conv4_21_a=>12845056, 713 | conv4_21_b=>29352960, 714 | conv4_21_c=>12845056, 715 | conv4_22_a=>12845056, 716 | conv4_22_b=>29352960, 717 | conv4_22_c=>12845056, 718 | conv4_23_a=>12845056, 719 | conv4_23_b=>29352960, 720 | conv4_23_c=>12845056, 721 | conv4_24_a=>12845056, 722 | conv4_24_b=>29352960, 723 | conv4_24_c=>12845056, 724 | conv4_25_a=>12845056, 725 | conv4_25_b=>29352960, 726 | conv4_25_c=>12845056, 727 | conv4_26_a=>12845056, 728 | conv4_26_b=>29352960, 729 | conv4_26_c=>12845056, 730 | conv4_27_a=>12845056, 731 | conv4_27_b=>29352960, 732 | conv4_27_c=>12845056, 733 | conv4_28_a=>12845056, 734 | conv4_28_b=>29352960, 735 | conv4_28_c=>12845056, 736 | conv4_29_a=>12845056, 737 | conv4_29_b=>29352960, 738 | conv4_29_c=>12845056, 739 | conv4_30_a=>12845056, 740 | conv4_30_b=>29352960, 741 | conv4_30_c=>12845056, 742 | conv4_31_a=>12845056, 743 | conv4_31_b=>29352960, 744 | conv4_31_c=>12845056, 745 | conv4_32_a=>12845056, 746 | conv4_32_b=>29352960, 747 | conv4_32_c=>12845056, 748 | conv4_33_a=>12845056, 749 | conv4_33_b=>29352960, 750 | conv4_33_c=>12845056, 751 | conv4_34_a=>12845056, 752 | conv4_34_b=>29352960, 753 | conv4_34_c=>12845056, 754 | conv4_35_a=>12845056, 755 | conv4_35_b=>29352960, 756 | conv4_35_c=>12845056, 757 | conv4_36_a=>12845056, 758 | conv4_36_b=>29352960, 759 | conv4_36_c=>12845056, 760 | conv5_1_a=>8388608, 761 | conv5_1_b=>37969920, 762 | conv5_1_c=>16777216, 763 | conv5_2_a=>16777216, 764 | conv5_2_b=>37969920, 765 | conv5_2_c=>16777216, 766 | conv5_3_a=>16777216, 767 | conv5_3_b=>37969920, 768 | conv5_3_c=>16777216, 769 | ); 770 | 1; 771 | -------------------------------------------------------------------------------- /ops/resnet152_32_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>29503488, 3 | conv2_1_a=>3211264, 4 | conv2_1_b=>28901376, 5 | conv2_1_c=>12845056, 6 | conv2_2_a=>3211264, 7 | conv2_2_b=>28901376, 8 | conv2_2_c=>12845056, 9 | conv2_3_a=>3211264, 10 | conv2_3_b=>28901376, 11 | conv2_3_c=>12845056, 12 | conv3_1_a=>6422528, 13 | conv3_1_b=>29352960, 14 | conv3_1_c=>12845056, 15 | conv3_2_a=>12845056, 16 | conv3_2_b=>29352960, 17 | conv3_2_c=>12845056, 18 | conv3_3_a=>12845056, 19 | conv3_3_b=>29352960, 20 | conv3_3_c=>12845056, 21 | conv3_4_a=>12845056, 22 | conv3_4_b=>29352960, 23 | conv3_4_c=>12845056, 24 | conv3_5_a=>12845056, 25 | conv3_5_b=>29352960, 26 | conv3_5_c=>12845056, 27 | conv3_6_a=>12845056, 28 | conv3_6_b=>29352960, 29 | conv3_6_c=>12845056, 30 | conv3_7_a=>12845056, 31 | conv3_7_b=>29352960, 32 | conv3_7_c=>12845056, 33 | conv3_8_a=>12845056, 34 | conv3_8_b=>29352960, 35 | conv3_8_c=>12845056, 36 | conv4_01_a=>6422528, 37 | conv4_01_b=>29352960, 38 | conv4_01_c=>12845056, 39 | conv4_02_a=>12845056, 40 | conv4_02_b=>29352960, 41 | conv4_02_c=>12845056, 42 | conv4_03_a=>12845056, 43 | conv4_03_b=>29352960, 44 | conv4_03_c=>12845056, 45 | conv4_04_a=>12845056, 46 | conv4_04_b=>29352960, 47 | conv4_04_c=>12845056, 48 | conv4_05_a=>12845056, 49 | conv4_05_b=>29352960, 50 | conv4_05_c=>12845056, 51 | conv4_06_a=>12845056, 52 | conv4_06_b=>29352960, 53 | conv4_06_c=>12845056, 54 | conv4_07_a=>12845056, 55 | conv4_07_b=>29352960, 56 | conv4_07_c=>12845056, 57 | conv4_08_a=>12845056, 58 | conv4_08_b=>29352960, 59 | conv4_08_c=>12845056, 60 | conv4_09_a=>12845056, 61 | conv4_09_b=>29352960, 62 | conv4_09_c=>12845056, 63 | conv4_10_a=>12845056, 64 | conv4_10_b=>29352960, 65 | conv4_10_c=>12845056, 66 | conv4_11_a=>12845056, 67 | conv4_11_b=>29352960, 68 | conv4_11_c=>12845056, 69 | conv4_12_a=>12845056, 70 | conv4_12_b=>29352960, 71 | conv4_12_c=>12845056, 72 | conv4_13_a=>12845056, 73 | conv4_13_b=>29352960, 74 | conv4_13_c=>12845056, 75 | conv4_14_a=>12845056, 76 | conv4_14_b=>29352960, 77 | conv4_14_c=>12845056, 78 | conv4_15_a=>12845056, 79 | conv4_15_b=>29352960, 80 | conv4_15_c=>12845056, 81 | conv4_16_a=>12845056, 82 | conv4_16_b=>29352960, 83 | conv4_16_c=>12845056, 84 | conv4_17_a=>12845056, 85 | conv4_17_b=>29352960, 86 | conv4_17_c=>12845056, 87 | conv4_18_a=>12845056, 88 | conv4_18_b=>29352960, 89 | conv4_18_c=>12845056, 90 | conv4_19_a=>12845056, 91 | conv4_19_b=>29352960, 92 | conv4_19_c=>12845056, 93 | conv4_20_a=>12845056, 94 | conv4_20_b=>29352960, 95 | conv4_20_c=>12845056, 96 | conv4_21_a=>12845056, 97 | conv4_21_b=>29352960, 98 | conv4_21_c=>12845056, 99 | conv4_22_a=>12845056, 100 | conv4_22_b=>29352960, 101 | conv4_22_c=>12845056, 102 | conv4_23_a=>12845056, 103 | conv4_23_b=>29352960, 104 | conv4_23_c=>12845056, 105 | conv4_24_a=>12845056, 106 | conv4_24_b=>29352960, 107 | conv4_24_c=>12845056, 108 | conv4_25_a=>12845056, 109 | conv4_25_b=>29352960, 110 | conv4_25_c=>12845056, 111 | conv4_26_a=>12845056, 112 | conv4_26_b=>29352960, 113 | conv4_26_c=>12845056, 114 | conv4_27_a=>12845056, 115 | conv4_27_b=>29352960, 116 | conv4_27_c=>12845056, 117 | conv4_28_a=>12845056, 118 | conv4_28_b=>29352960, 119 | conv4_28_c=>12845056, 120 | conv4_29_a=>12845056, 121 | conv4_29_b=>29352960, 122 | conv4_29_c=>12845056, 123 | conv4_30_a=>12845056, 124 | conv4_30_b=>29352960, 125 | conv4_30_c=>12845056, 126 | conv4_31_a=>12845056, 127 | conv4_31_b=>29352960, 128 | conv4_31_c=>12845056, 129 | conv4_32_a=>12845056, 130 | conv4_32_b=>29352960, 131 | conv4_32_c=>12845056, 132 | conv4_33_a=>12845056, 133 | conv4_33_b=>29352960, 134 | conv4_33_c=>12845056, 135 | conv4_34_a=>12845056, 136 | conv4_34_b=>29352960, 137 | conv4_34_c=>12845056, 138 | conv4_35_a=>12845056, 139 | conv4_35_b=>29352960, 140 | conv4_35_c=>12845056, 141 | conv4_36_a=>12845056, 142 | conv4_36_b=>29352960, 143 | conv4_36_c=>12845056, 144 | conv5_1_a=>8388608, 145 | conv5_1_b=>38338560, 146 | conv5_1_c=>16777216, 147 | conv5_2_a=>16777216, 148 | conv5_2_b=>38338560, 149 | conv5_2_c=>16777216, 150 | conv5_3_a=>16777216, 151 | conv5_3_b=>38338560, 152 | conv5_3_c=>16777216, 153 | ); 154 | 1; 155 | % NNops1 =( 156 | conv1=>29503488, 157 | conv2_1_a=>3211264, 158 | conv2_1_b=>28901376, 159 | conv2_1_c=>12845056, 160 | conv2_2_a=>3211264, 161 | conv2_2_b=>28901376, 162 | conv2_2_c=>12845056, 163 | conv2_3_a=>3211264, 164 | conv2_3_b=>28901376, 165 | conv2_3_c=>12845056, 166 | conv3_1_a=>6422528, 167 | conv3_1_b=>29352960, 168 | conv3_1_c=>12845056, 169 | conv3_2_a=>12845056, 170 | conv3_2_b=>29352960, 171 | conv3_2_c=>12845056, 172 | conv3_3_a=>12845056, 173 | conv3_3_b=>29352960, 174 | conv3_3_c=>12845056, 175 | conv3_4_a=>12845056, 176 | conv3_4_b=>29352960, 177 | conv3_4_c=>12845056, 178 | conv3_5_a=>12845056, 179 | conv3_5_b=>29352960, 180 | conv3_5_c=>12845056, 181 | conv3_6_a=>12845056, 182 | conv3_6_b=>29352960, 183 | conv3_6_c=>12845056, 184 | conv3_7_a=>12845056, 185 | conv3_7_b=>29352960, 186 | conv3_7_c=>12845056, 187 | conv3_8_a=>12845056, 188 | conv3_8_b=>29352960, 189 | conv3_8_c=>12845056, 190 | conv4_01_a=>6422528, 191 | conv4_01_b=>29352960, 192 | conv4_01_c=>12845056, 193 | conv4_02_a=>12845056, 194 | conv4_02_b=>29352960, 195 | conv4_02_c=>12845056, 196 | conv4_03_a=>12845056, 197 | conv4_03_b=>29352960, 198 | conv4_03_c=>12845056, 199 | conv4_04_a=>12845056, 200 | conv4_04_b=>29352960, 201 | conv4_04_c=>12845056, 202 | conv4_05_a=>12845056, 203 | conv4_05_b=>29352960, 204 | conv4_05_c=>12845056, 205 | conv4_06_a=>12845056, 206 | conv4_06_b=>29352960, 207 | conv4_06_c=>12845056, 208 | conv4_07_a=>12845056, 209 | conv4_07_b=>29352960, 210 | conv4_07_c=>12845056, 211 | conv4_08_a=>12845056, 212 | conv4_08_b=>29352960, 213 | conv4_08_c=>12845056, 214 | conv4_09_a=>12845056, 215 | conv4_09_b=>29352960, 216 | conv4_09_c=>12845056, 217 | conv4_10_a=>12845056, 218 | conv4_10_b=>29352960, 219 | conv4_10_c=>12845056, 220 | conv4_11_a=>12845056, 221 | conv4_11_b=>29352960, 222 | conv4_11_c=>12845056, 223 | conv4_12_a=>12845056, 224 | conv4_12_b=>29352960, 225 | conv4_12_c=>12845056, 226 | conv4_13_a=>12845056, 227 | conv4_13_b=>29352960, 228 | conv4_13_c=>12845056, 229 | conv4_14_a=>12845056, 230 | conv4_14_b=>29352960, 231 | conv4_14_c=>12845056, 232 | conv4_15_a=>12845056, 233 | conv4_15_b=>29352960, 234 | conv4_15_c=>12845056, 235 | conv4_16_a=>12845056, 236 | conv4_16_b=>29352960, 237 | conv4_16_c=>12845056, 238 | conv4_17_a=>12845056, 239 | conv4_17_b=>29352960, 240 | conv4_17_c=>12845056, 241 | conv4_18_a=>12845056, 242 | conv4_18_b=>29352960, 243 | conv4_18_c=>12845056, 244 | conv4_19_a=>12845056, 245 | conv4_19_b=>29352960, 246 | conv4_19_c=>12845056, 247 | conv4_20_a=>12845056, 248 | conv4_20_b=>29352960, 249 | conv4_20_c=>12845056, 250 | conv4_21_a=>12845056, 251 | conv4_21_b=>29352960, 252 | conv4_21_c=>12845056, 253 | conv4_22_a=>12845056, 254 | conv4_22_b=>29352960, 255 | conv4_22_c=>12845056, 256 | conv4_23_a=>12845056, 257 | conv4_23_b=>29352960, 258 | conv4_23_c=>12845056, 259 | conv4_24_a=>12845056, 260 | conv4_24_b=>29352960, 261 | conv4_24_c=>12845056, 262 | conv4_25_a=>12845056, 263 | conv4_25_b=>29352960, 264 | conv4_25_c=>12845056, 265 | conv4_26_a=>12845056, 266 | conv4_26_b=>29352960, 267 | conv4_26_c=>12845056, 268 | conv4_27_a=>12845056, 269 | conv4_27_b=>29352960, 270 | conv4_27_c=>12845056, 271 | conv4_28_a=>12845056, 272 | conv4_28_b=>29352960, 273 | conv4_28_c=>12845056, 274 | conv4_29_a=>12845056, 275 | conv4_29_b=>29352960, 276 | conv4_29_c=>12845056, 277 | conv4_30_a=>12845056, 278 | conv4_30_b=>29352960, 279 | conv4_30_c=>12845056, 280 | conv4_31_a=>12845056, 281 | conv4_31_b=>29352960, 282 | conv4_31_c=>12845056, 283 | conv4_32_a=>12845056, 284 | conv4_32_b=>29352960, 285 | conv4_32_c=>12845056, 286 | conv4_33_a=>12845056, 287 | conv4_33_b=>29352960, 288 | conv4_33_c=>12845056, 289 | conv4_34_a=>12845056, 290 | conv4_34_b=>29352960, 291 | conv4_34_c=>12845056, 292 | conv4_35_a=>12845056, 293 | conv4_35_b=>29352960, 294 | conv4_35_c=>12845056, 295 | conv4_36_a=>12845056, 296 | conv4_36_b=>29352960, 297 | conv4_36_c=>12845056, 298 | conv5_1_a=>8388608, 299 | conv5_1_b=>38338560, 300 | conv5_1_c=>16777216, 301 | conv5_2_a=>16777216, 302 | conv5_2_b=>38338560, 303 | conv5_2_c=>16777216, 304 | conv5_3_a=>16777216, 305 | conv5_3_b=>38338560, 306 | conv5_3_c=>16777216, 307 | ); 308 | 1; 309 | % NNops2 =( 310 | conv1=>29503488, 311 | conv2_1_a=>3211264, 312 | conv2_1_b=>28901376, 313 | conv2_1_c=>12845056, 314 | conv2_2_a=>3211264, 315 | conv2_2_b=>28901376, 316 | conv2_2_c=>12845056, 317 | conv2_3_a=>3211264, 318 | conv2_3_b=>28901376, 319 | conv2_3_c=>12845056, 320 | conv3_1_a=>6422528, 321 | conv3_1_b=>29352960, 322 | conv3_1_c=>12845056, 323 | conv3_2_a=>12845056, 324 | conv3_2_b=>29352960, 325 | conv3_2_c=>12845056, 326 | conv3_3_a=>12845056, 327 | conv3_3_b=>29352960, 328 | conv3_3_c=>12845056, 329 | conv3_4_a=>12845056, 330 | conv3_4_b=>29352960, 331 | conv3_4_c=>12845056, 332 | conv3_5_a=>12845056, 333 | conv3_5_b=>29352960, 334 | conv3_5_c=>12845056, 335 | conv3_6_a=>12845056, 336 | conv3_6_b=>29352960, 337 | conv3_6_c=>12845056, 338 | conv3_7_a=>12845056, 339 | conv3_7_b=>29352960, 340 | conv3_7_c=>12845056, 341 | conv3_8_a=>12845056, 342 | conv3_8_b=>29352960, 343 | conv3_8_c=>12845056, 344 | conv4_01_a=>6422528, 345 | conv4_01_b=>29352960, 346 | conv4_01_c=>12845056, 347 | conv4_02_a=>12845056, 348 | conv4_02_b=>29352960, 349 | conv4_02_c=>12845056, 350 | conv4_03_a=>12845056, 351 | conv4_03_b=>29352960, 352 | conv4_03_c=>12845056, 353 | conv4_04_a=>12845056, 354 | conv4_04_b=>29352960, 355 | conv4_04_c=>12845056, 356 | conv4_05_a=>12845056, 357 | conv4_05_b=>29352960, 358 | conv4_05_c=>12845056, 359 | conv4_06_a=>12845056, 360 | conv4_06_b=>29352960, 361 | conv4_06_c=>12845056, 362 | conv4_07_a=>12845056, 363 | conv4_07_b=>29352960, 364 | conv4_07_c=>12845056, 365 | conv4_08_a=>12845056, 366 | conv4_08_b=>29352960, 367 | conv4_08_c=>12845056, 368 | conv4_09_a=>12845056, 369 | conv4_09_b=>29352960, 370 | conv4_09_c=>12845056, 371 | conv4_10_a=>12845056, 372 | conv4_10_b=>29352960, 373 | conv4_10_c=>12845056, 374 | conv4_11_a=>12845056, 375 | conv4_11_b=>29352960, 376 | conv4_11_c=>12845056, 377 | conv4_12_a=>12845056, 378 | conv4_12_b=>29352960, 379 | conv4_12_c=>12845056, 380 | conv4_13_a=>12845056, 381 | conv4_13_b=>29352960, 382 | conv4_13_c=>12845056, 383 | conv4_14_a=>12845056, 384 | conv4_14_b=>29352960, 385 | conv4_14_c=>12845056, 386 | conv4_15_a=>12845056, 387 | conv4_15_b=>29352960, 388 | conv4_15_c=>12845056, 389 | conv4_16_a=>12845056, 390 | conv4_16_b=>29352960, 391 | conv4_16_c=>12845056, 392 | conv4_17_a=>12845056, 393 | conv4_17_b=>29352960, 394 | conv4_17_c=>12845056, 395 | conv4_18_a=>12845056, 396 | conv4_18_b=>29352960, 397 | conv4_18_c=>12845056, 398 | conv4_19_a=>12845056, 399 | conv4_19_b=>29352960, 400 | conv4_19_c=>12845056, 401 | conv4_20_a=>12845056, 402 | conv4_20_b=>29352960, 403 | conv4_20_c=>12845056, 404 | conv4_21_a=>12845056, 405 | conv4_21_b=>29352960, 406 | conv4_21_c=>12845056, 407 | conv4_22_a=>12845056, 408 | conv4_22_b=>29352960, 409 | conv4_22_c=>12845056, 410 | conv4_23_a=>12845056, 411 | conv4_23_b=>29352960, 412 | conv4_23_c=>12845056, 413 | conv4_24_a=>12845056, 414 | conv4_24_b=>29352960, 415 | conv4_24_c=>12845056, 416 | conv4_25_a=>12845056, 417 | conv4_25_b=>29352960, 418 | conv4_25_c=>12845056, 419 | conv4_26_a=>12845056, 420 | conv4_26_b=>29352960, 421 | conv4_26_c=>12845056, 422 | conv4_27_a=>12845056, 423 | conv4_27_b=>29352960, 424 | conv4_27_c=>12845056, 425 | conv4_28_a=>12845056, 426 | conv4_28_b=>29352960, 427 | conv4_28_c=>12845056, 428 | conv4_29_a=>12845056, 429 | conv4_29_b=>29352960, 430 | conv4_29_c=>12845056, 431 | conv4_30_a=>12845056, 432 | conv4_30_b=>29352960, 433 | conv4_30_c=>12845056, 434 | conv4_31_a=>12845056, 435 | conv4_31_b=>29352960, 436 | conv4_31_c=>12845056, 437 | conv4_32_a=>12845056, 438 | conv4_32_b=>29352960, 439 | conv4_32_c=>12845056, 440 | conv4_33_a=>12845056, 441 | conv4_33_b=>29352960, 442 | conv4_33_c=>12845056, 443 | conv4_34_a=>12845056, 444 | conv4_34_b=>29352960, 445 | conv4_34_c=>12845056, 446 | conv4_35_a=>12845056, 447 | conv4_35_b=>29352960, 448 | conv4_35_c=>12845056, 449 | conv4_36_a=>12845056, 450 | conv4_36_b=>29352960, 451 | conv4_36_c=>12845056, 452 | conv5_1_a=>8388608, 453 | conv5_1_b=>38338560, 454 | conv5_1_c=>16777216, 455 | conv5_2_a=>16777216, 456 | conv5_2_b=>38338560, 457 | conv5_2_c=>16777216, 458 | conv5_3_a=>16777216, 459 | conv5_3_b=>38338560, 460 | conv5_3_c=>16777216, 461 | ); 462 | 1; 463 | % NNops3 =( 464 | conv1=>29503488, 465 | conv2_1_a=>3211264, 466 | conv2_1_b=>28901376, 467 | conv2_1_c=>12845056, 468 | conv2_2_a=>3211264, 469 | conv2_2_b=>28901376, 470 | conv2_2_c=>12845056, 471 | conv2_3_a=>3211264, 472 | conv2_3_b=>28901376, 473 | conv2_3_c=>12845056, 474 | conv3_1_a=>6422528, 475 | conv3_1_b=>29352960, 476 | conv3_1_c=>12845056, 477 | conv3_2_a=>12845056, 478 | conv3_2_b=>29352960, 479 | conv3_2_c=>12845056, 480 | conv3_3_a=>12845056, 481 | conv3_3_b=>29352960, 482 | conv3_3_c=>12845056, 483 | conv3_4_a=>12845056, 484 | conv3_4_b=>29352960, 485 | conv3_4_c=>12845056, 486 | conv3_5_a=>12845056, 487 | conv3_5_b=>29352960, 488 | conv3_5_c=>12845056, 489 | conv3_6_a=>12845056, 490 | conv3_6_b=>29352960, 491 | conv3_6_c=>12845056, 492 | conv3_7_a=>12845056, 493 | conv3_7_b=>29352960, 494 | conv3_7_c=>12845056, 495 | conv3_8_a=>12845056, 496 | conv3_8_b=>29352960, 497 | conv3_8_c=>12845056, 498 | conv4_01_a=>6422528, 499 | conv4_01_b=>29352960, 500 | conv4_01_c=>12845056, 501 | conv4_02_a=>12845056, 502 | conv4_02_b=>29352960, 503 | conv4_02_c=>12845056, 504 | conv4_03_a=>12845056, 505 | conv4_03_b=>29352960, 506 | conv4_03_c=>12845056, 507 | conv4_04_a=>12845056, 508 | conv4_04_b=>29352960, 509 | conv4_04_c=>12845056, 510 | conv4_05_a=>12845056, 511 | conv4_05_b=>29352960, 512 | conv4_05_c=>12845056, 513 | conv4_06_a=>12845056, 514 | conv4_06_b=>29352960, 515 | conv4_06_c=>12845056, 516 | conv4_07_a=>12845056, 517 | conv4_07_b=>29352960, 518 | conv4_07_c=>12845056, 519 | conv4_08_a=>12845056, 520 | conv4_08_b=>29352960, 521 | conv4_08_c=>12845056, 522 | conv4_09_a=>12845056, 523 | conv4_09_b=>29352960, 524 | conv4_09_c=>12845056, 525 | conv4_10_a=>12845056, 526 | conv4_10_b=>29352960, 527 | conv4_10_c=>12845056, 528 | conv4_11_a=>12845056, 529 | conv4_11_b=>29352960, 530 | conv4_11_c=>12845056, 531 | conv4_12_a=>12845056, 532 | conv4_12_b=>29352960, 533 | conv4_12_c=>12845056, 534 | conv4_13_a=>12845056, 535 | conv4_13_b=>29352960, 536 | conv4_13_c=>12845056, 537 | conv4_14_a=>12845056, 538 | conv4_14_b=>29352960, 539 | conv4_14_c=>12845056, 540 | conv4_15_a=>12845056, 541 | conv4_15_b=>29352960, 542 | conv4_15_c=>12845056, 543 | conv4_16_a=>12845056, 544 | conv4_16_b=>29352960, 545 | conv4_16_c=>12845056, 546 | conv4_17_a=>12845056, 547 | conv4_17_b=>29352960, 548 | conv4_17_c=>12845056, 549 | conv4_18_a=>12845056, 550 | conv4_18_b=>29352960, 551 | conv4_18_c=>12845056, 552 | conv4_19_a=>12845056, 553 | conv4_19_b=>29352960, 554 | conv4_19_c=>12845056, 555 | conv4_20_a=>12845056, 556 | conv4_20_b=>29352960, 557 | conv4_20_c=>12845056, 558 | conv4_21_a=>12845056, 559 | conv4_21_b=>29352960, 560 | conv4_21_c=>12845056, 561 | conv4_22_a=>12845056, 562 | conv4_22_b=>29352960, 563 | conv4_22_c=>12845056, 564 | conv4_23_a=>12845056, 565 | conv4_23_b=>29352960, 566 | conv4_23_c=>12845056, 567 | conv4_24_a=>12845056, 568 | conv4_24_b=>29352960, 569 | conv4_24_c=>12845056, 570 | conv4_25_a=>12845056, 571 | conv4_25_b=>29352960, 572 | conv4_25_c=>12845056, 573 | conv4_26_a=>12845056, 574 | conv4_26_b=>29352960, 575 | conv4_26_c=>12845056, 576 | conv4_27_a=>12845056, 577 | conv4_27_b=>29352960, 578 | conv4_27_c=>12845056, 579 | conv4_28_a=>12845056, 580 | conv4_28_b=>29352960, 581 | conv4_28_c=>12845056, 582 | conv4_29_a=>12845056, 583 | conv4_29_b=>29352960, 584 | conv4_29_c=>12845056, 585 | conv4_30_a=>12845056, 586 | conv4_30_b=>29352960, 587 | conv4_30_c=>12845056, 588 | conv4_31_a=>12845056, 589 | conv4_31_b=>29352960, 590 | conv4_31_c=>12845056, 591 | conv4_32_a=>12845056, 592 | conv4_32_b=>29352960, 593 | conv4_32_c=>12845056, 594 | conv4_33_a=>12845056, 595 | conv4_33_b=>29352960, 596 | conv4_33_c=>12845056, 597 | conv4_34_a=>12845056, 598 | conv4_34_b=>29352960, 599 | conv4_34_c=>12845056, 600 | conv4_35_a=>12845056, 601 | conv4_35_b=>29352960, 602 | conv4_35_c=>12845056, 603 | conv4_36_a=>12845056, 604 | conv4_36_b=>29352960, 605 | conv4_36_c=>12845056, 606 | conv5_1_a=>8388608, 607 | conv5_1_b=>38338560, 608 | conv5_1_c=>16777216, 609 | conv5_2_a=>16777216, 610 | conv5_2_b=>38338560, 611 | conv5_2_c=>16777216, 612 | conv5_3_a=>16777216, 613 | conv5_3_b=>38338560, 614 | conv5_3_c=>16777216, 615 | ); 616 | 1; 617 | % NNops4 =( 618 | conv1=>29503488, 619 | conv2_1_a=>3211264, 620 | conv2_1_b=>28901376, 621 | conv2_1_c=>12845056, 622 | conv2_2_a=>3211264, 623 | conv2_2_b=>28901376, 624 | conv2_2_c=>12845056, 625 | conv2_3_a=>3211264, 626 | conv2_3_b=>28901376, 627 | conv2_3_c=>12845056, 628 | conv3_1_a=>6422528, 629 | conv3_1_b=>29352960, 630 | conv3_1_c=>12845056, 631 | conv3_2_a=>12845056, 632 | conv3_2_b=>29352960, 633 | conv3_2_c=>12845056, 634 | conv3_3_a=>12845056, 635 | conv3_3_b=>29352960, 636 | conv3_3_c=>12845056, 637 | conv3_4_a=>12845056, 638 | conv3_4_b=>29352960, 639 | conv3_4_c=>12845056, 640 | conv3_5_a=>12845056, 641 | conv3_5_b=>29352960, 642 | conv3_5_c=>12845056, 643 | conv3_6_a=>12845056, 644 | conv3_6_b=>29352960, 645 | conv3_6_c=>12845056, 646 | conv3_7_a=>12845056, 647 | conv3_7_b=>29352960, 648 | conv3_7_c=>12845056, 649 | conv3_8_a=>12845056, 650 | conv3_8_b=>29352960, 651 | conv3_8_c=>12845056, 652 | conv4_01_a=>6422528, 653 | conv4_01_b=>29352960, 654 | conv4_01_c=>12845056, 655 | conv4_02_a=>12845056, 656 | conv4_02_b=>29352960, 657 | conv4_02_c=>12845056, 658 | conv4_03_a=>12845056, 659 | conv4_03_b=>29352960, 660 | conv4_03_c=>12845056, 661 | conv4_04_a=>12845056, 662 | conv4_04_b=>29352960, 663 | conv4_04_c=>12845056, 664 | conv4_05_a=>12845056, 665 | conv4_05_b=>29352960, 666 | conv4_05_c=>12845056, 667 | conv4_06_a=>12845056, 668 | conv4_06_b=>29352960, 669 | conv4_06_c=>12845056, 670 | conv4_07_a=>12845056, 671 | conv4_07_b=>29352960, 672 | conv4_07_c=>12845056, 673 | conv4_08_a=>12845056, 674 | conv4_08_b=>29352960, 675 | conv4_08_c=>12845056, 676 | conv4_09_a=>12845056, 677 | conv4_09_b=>29352960, 678 | conv4_09_c=>12845056, 679 | conv4_10_a=>12845056, 680 | conv4_10_b=>29352960, 681 | conv4_10_c=>12845056, 682 | conv4_11_a=>12845056, 683 | conv4_11_b=>29352960, 684 | conv4_11_c=>12845056, 685 | conv4_12_a=>12845056, 686 | conv4_12_b=>29352960, 687 | conv4_12_c=>12845056, 688 | conv4_13_a=>12845056, 689 | conv4_13_b=>29352960, 690 | conv4_13_c=>12845056, 691 | conv4_14_a=>12845056, 692 | conv4_14_b=>29352960, 693 | conv4_14_c=>12845056, 694 | conv4_15_a=>12845056, 695 | conv4_15_b=>29352960, 696 | conv4_15_c=>12845056, 697 | conv4_16_a=>12845056, 698 | conv4_16_b=>29352960, 699 | conv4_16_c=>12845056, 700 | conv4_17_a=>12845056, 701 | conv4_17_b=>29352960, 702 | conv4_17_c=>12845056, 703 | conv4_18_a=>12845056, 704 | conv4_18_b=>29352960, 705 | conv4_18_c=>12845056, 706 | conv4_19_a=>12845056, 707 | conv4_19_b=>29352960, 708 | conv4_19_c=>12845056, 709 | conv4_20_a=>12845056, 710 | conv4_20_b=>29352960, 711 | conv4_20_c=>12845056, 712 | conv4_21_a=>12845056, 713 | conv4_21_b=>29352960, 714 | conv4_21_c=>12845056, 715 | conv4_22_a=>12845056, 716 | conv4_22_b=>29352960, 717 | conv4_22_c=>12845056, 718 | conv4_23_a=>12845056, 719 | conv4_23_b=>29352960, 720 | conv4_23_c=>12845056, 721 | conv4_24_a=>12845056, 722 | conv4_24_b=>29352960, 723 | conv4_24_c=>12845056, 724 | conv4_25_a=>12845056, 725 | conv4_25_b=>29352960, 726 | conv4_25_c=>12845056, 727 | conv4_26_a=>12845056, 728 | conv4_26_b=>29352960, 729 | conv4_26_c=>12845056, 730 | conv4_27_a=>12845056, 731 | conv4_27_b=>29352960, 732 | conv4_27_c=>12845056, 733 | conv4_28_a=>12845056, 734 | conv4_28_b=>29352960, 735 | conv4_28_c=>12845056, 736 | conv4_29_a=>12845056, 737 | conv4_29_b=>29352960, 738 | conv4_29_c=>12845056, 739 | conv4_30_a=>12845056, 740 | conv4_30_b=>29352960, 741 | conv4_30_c=>12845056, 742 | conv4_31_a=>12845056, 743 | conv4_31_b=>29352960, 744 | conv4_31_c=>12845056, 745 | conv4_32_a=>12845056, 746 | conv4_32_b=>29352960, 747 | conv4_32_c=>12845056, 748 | conv4_33_a=>12845056, 749 | conv4_33_b=>29352960, 750 | conv4_33_c=>12845056, 751 | conv4_34_a=>12845056, 752 | conv4_34_b=>29352960, 753 | conv4_34_c=>12845056, 754 | conv4_35_a=>12845056, 755 | conv4_35_b=>29352960, 756 | conv4_35_c=>12845056, 757 | conv4_36_a=>12845056, 758 | conv4_36_b=>29352960, 759 | conv4_36_c=>12845056, 760 | conv5_1_a=>8388608, 761 | conv5_1_b=>38338560, 762 | conv5_1_c=>16777216, 763 | conv5_2_a=>16777216, 764 | conv5_2_b=>38338560, 765 | conv5_2_c=>16777216, 766 | conv5_3_a=>16777216, 767 | conv5_3_b=>38338560, 768 | conv5_3_c=>16777216, 769 | ); 770 | 1; 771 | -------------------------------------------------------------------------------- /ops/resnet152_8_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv1=>29503488, 3 | conv2_1_a=>3211264, 4 | conv2_1_b=>28901376, 5 | conv2_1_c=>12845056, 6 | conv2_2_a=>3211264, 7 | conv2_2_b=>28901376, 8 | conv2_2_c=>12845056, 9 | conv2_3_a=>3211264, 10 | conv2_3_b=>28901376, 11 | conv2_3_c=>12845056, 12 | conv3_1_a=>6422528, 13 | conv3_1_b=>29352960, 14 | conv3_1_c=>12845056, 15 | conv3_2_a=>12845056, 16 | conv3_2_b=>29352960, 17 | conv3_2_c=>12845056, 18 | conv3_3_a=>12845056, 19 | conv3_3_b=>29352960, 20 | conv3_3_c=>12845056, 21 | conv3_4_a=>12845056, 22 | conv3_4_b=>29352960, 23 | conv3_4_c=>12845056, 24 | conv3_5_a=>12845056, 25 | conv3_5_b=>29352960, 26 | conv3_5_c=>12845056, 27 | conv3_6_a=>12845056, 28 | conv3_6_b=>29352960, 29 | conv3_6_c=>12845056, 30 | conv3_7_a=>12845056, 31 | conv3_7_b=>29352960, 32 | conv3_7_c=>12845056, 33 | conv3_8_a=>12845056, 34 | conv3_8_b=>29352960, 35 | conv3_8_c=>12845056, 36 | conv4_01_a=>6422528, 37 | conv4_01_b=>29352960, 38 | conv4_01_c=>12845056, 39 | conv4_02_a=>12845056, 40 | conv4_02_b=>29352960, 41 | conv4_02_c=>12845056, 42 | conv4_03_a=>12845056, 43 | conv4_03_b=>29352960, 44 | conv4_03_c=>12845056, 45 | conv4_04_a=>12845056, 46 | conv4_04_b=>29352960, 47 | conv4_04_c=>12845056, 48 | conv4_05_a=>12845056, 49 | conv4_05_b=>29352960, 50 | conv4_05_c=>12845056, 51 | conv4_06_a=>12845056, 52 | conv4_06_b=>29352960, 53 | conv4_06_c=>12845056, 54 | conv4_07_a=>12845056, 55 | conv4_07_b=>29352960, 56 | conv4_07_c=>12845056, 57 | conv4_08_a=>12845056, 58 | conv4_08_b=>29352960, 59 | conv4_08_c=>12845056, 60 | conv4_09_a=>12845056, 61 | conv4_09_b=>29352960, 62 | conv4_09_c=>12845056, 63 | conv4_10_a=>12845056, 64 | conv4_10_b=>29352960, 65 | conv4_10_c=>12845056, 66 | conv4_11_a=>12845056, 67 | conv4_11_b=>29352960, 68 | conv4_11_c=>12845056, 69 | conv4_12_a=>12845056, 70 | conv4_12_b=>29352960, 71 | conv4_12_c=>12845056, 72 | conv4_13_a=>12845056, 73 | conv4_13_b=>29352960, 74 | conv4_13_c=>12845056, 75 | conv4_14_a=>12845056, 76 | conv4_14_b=>29352960, 77 | conv4_14_c=>12845056, 78 | conv4_15_a=>12845056, 79 | conv4_15_b=>29352960, 80 | conv4_15_c=>12845056, 81 | conv4_16_a=>12845056, 82 | conv4_16_b=>29352960, 83 | conv4_16_c=>12845056, 84 | conv4_17_a=>12845056, 85 | conv4_17_b=>29352960, 86 | conv4_17_c=>12845056, 87 | conv4_18_a=>12845056, 88 | conv4_18_b=>29352960, 89 | conv4_18_c=>12845056, 90 | conv4_19_a=>12845056, 91 | conv4_19_b=>29352960, 92 | conv4_19_c=>12845056, 93 | conv4_20_a=>12845056, 94 | conv4_20_b=>29352960, 95 | conv4_20_c=>12845056, 96 | conv4_21_a=>12845056, 97 | conv4_21_b=>29352960, 98 | conv4_21_c=>12845056, 99 | conv4_22_a=>12845056, 100 | conv4_22_b=>29352960, 101 | conv4_22_c=>12845056, 102 | conv4_23_a=>12845056, 103 | conv4_23_b=>29352960, 104 | conv4_23_c=>12845056, 105 | conv4_24_a=>12845056, 106 | conv4_24_b=>29352960, 107 | conv4_24_c=>12845056, 108 | conv4_25_a=>12845056, 109 | conv4_25_b=>29352960, 110 | conv4_25_c=>12845056, 111 | conv4_26_a=>12845056, 112 | conv4_26_b=>29352960, 113 | conv4_26_c=>12845056, 114 | conv4_27_a=>12845056, 115 | conv4_27_b=>29352960, 116 | conv4_27_c=>12845056, 117 | conv4_28_a=>12845056, 118 | conv4_28_b=>29352960, 119 | conv4_28_c=>12845056, 120 | conv4_29_a=>12845056, 121 | conv4_29_b=>29352960, 122 | conv4_29_c=>12845056, 123 | conv4_30_a=>12845056, 124 | conv4_30_b=>29352960, 125 | conv4_30_c=>12845056, 126 | conv4_31_a=>12845056, 127 | conv4_31_b=>29352960, 128 | conv4_31_c=>12845056, 129 | conv4_32_a=>12845056, 130 | conv4_32_b=>29352960, 131 | conv4_32_c=>12845056, 132 | conv4_33_a=>12845056, 133 | conv4_33_b=>29352960, 134 | conv4_33_c=>12845056, 135 | conv4_34_a=>12845056, 136 | conv4_34_b=>29352960, 137 | conv4_34_c=>12845056, 138 | conv4_35_a=>12845056, 139 | conv4_35_b=>29352960, 140 | conv4_35_c=>12845056, 141 | conv4_36_a=>12845056, 142 | conv4_36_b=>29352960, 143 | conv4_36_c=>12845056, 144 | conv5_1_a=>8388608, 145 | conv5_1_b=>37969920, 146 | conv5_1_c=>16777216, 147 | conv5_2_a=>16777216, 148 | conv5_2_b=>37969920, 149 | conv5_2_c=>16777216, 150 | conv5_3_a=>16777216, 151 | conv5_3_b=>37969920, 152 | conv5_3_c=>16777216, 153 | ); 154 | 1; 155 | % NNops1 =( 156 | conv1=>29503488, 157 | conv2_1_a=>3211264, 158 | conv2_1_b=>28901376, 159 | conv2_1_c=>12845056, 160 | conv2_2_a=>3211264, 161 | conv2_2_b=>28901376, 162 | conv2_2_c=>12845056, 163 | conv2_3_a=>3211264, 164 | conv2_3_b=>28901376, 165 | conv2_3_c=>12845056, 166 | conv3_1_a=>6422528, 167 | conv3_1_b=>29352960, 168 | conv3_1_c=>12845056, 169 | conv3_2_a=>12845056, 170 | conv3_2_b=>29352960, 171 | conv3_2_c=>12845056, 172 | conv3_3_a=>12845056, 173 | conv3_3_b=>29352960, 174 | conv3_3_c=>12845056, 175 | conv3_4_a=>12845056, 176 | conv3_4_b=>29352960, 177 | conv3_4_c=>12845056, 178 | conv3_5_a=>12845056, 179 | conv3_5_b=>29352960, 180 | conv3_5_c=>12845056, 181 | conv3_6_a=>12845056, 182 | conv3_6_b=>29352960, 183 | conv3_6_c=>12845056, 184 | conv3_7_a=>12845056, 185 | conv3_7_b=>29352960, 186 | conv3_7_c=>12845056, 187 | conv3_8_a=>12845056, 188 | conv3_8_b=>29352960, 189 | conv3_8_c=>12845056, 190 | conv4_01_a=>6422528, 191 | conv4_01_b=>29352960, 192 | conv4_01_c=>12845056, 193 | conv4_02_a=>12845056, 194 | conv4_02_b=>29352960, 195 | conv4_02_c=>12845056, 196 | conv4_03_a=>12845056, 197 | conv4_03_b=>29352960, 198 | conv4_03_c=>12845056, 199 | conv4_04_a=>12845056, 200 | conv4_04_b=>29352960, 201 | conv4_04_c=>12845056, 202 | conv4_05_a=>12845056, 203 | conv4_05_b=>29352960, 204 | conv4_05_c=>12845056, 205 | conv4_06_a=>12845056, 206 | conv4_06_b=>29352960, 207 | conv4_06_c=>12845056, 208 | conv4_07_a=>12845056, 209 | conv4_07_b=>29352960, 210 | conv4_07_c=>12845056, 211 | conv4_08_a=>12845056, 212 | conv4_08_b=>29352960, 213 | conv4_08_c=>12845056, 214 | conv4_09_a=>12845056, 215 | conv4_09_b=>29352960, 216 | conv4_09_c=>12845056, 217 | conv4_10_a=>12845056, 218 | conv4_10_b=>29352960, 219 | conv4_10_c=>12845056, 220 | conv4_11_a=>12845056, 221 | conv4_11_b=>29352960, 222 | conv4_11_c=>12845056, 223 | conv4_12_a=>12845056, 224 | conv4_12_b=>29352960, 225 | conv4_12_c=>12845056, 226 | conv4_13_a=>12845056, 227 | conv4_13_b=>29352960, 228 | conv4_13_c=>12845056, 229 | conv4_14_a=>12845056, 230 | conv4_14_b=>29352960, 231 | conv4_14_c=>12845056, 232 | conv4_15_a=>12845056, 233 | conv4_15_b=>29352960, 234 | conv4_15_c=>12845056, 235 | conv4_16_a=>12845056, 236 | conv4_16_b=>29352960, 237 | conv4_16_c=>12845056, 238 | conv4_17_a=>12845056, 239 | conv4_17_b=>29352960, 240 | conv4_17_c=>12845056, 241 | conv4_18_a=>12845056, 242 | conv4_18_b=>29352960, 243 | conv4_18_c=>12845056, 244 | conv4_19_a=>12845056, 245 | conv4_19_b=>29352960, 246 | conv4_19_c=>12845056, 247 | conv4_20_a=>12845056, 248 | conv4_20_b=>29352960, 249 | conv4_20_c=>12845056, 250 | conv4_21_a=>12845056, 251 | conv4_21_b=>29352960, 252 | conv4_21_c=>12845056, 253 | conv4_22_a=>12845056, 254 | conv4_22_b=>29352960, 255 | conv4_22_c=>12845056, 256 | conv4_23_a=>12845056, 257 | conv4_23_b=>29352960, 258 | conv4_23_c=>12845056, 259 | conv4_24_a=>12845056, 260 | conv4_24_b=>29352960, 261 | conv4_24_c=>12845056, 262 | conv4_25_a=>12845056, 263 | conv4_25_b=>29352960, 264 | conv4_25_c=>12845056, 265 | conv4_26_a=>12845056, 266 | conv4_26_b=>29352960, 267 | conv4_26_c=>12845056, 268 | conv4_27_a=>12845056, 269 | conv4_27_b=>29352960, 270 | conv4_27_c=>12845056, 271 | conv4_28_a=>12845056, 272 | conv4_28_b=>29352960, 273 | conv4_28_c=>12845056, 274 | conv4_29_a=>12845056, 275 | conv4_29_b=>29352960, 276 | conv4_29_c=>12845056, 277 | conv4_30_a=>12845056, 278 | conv4_30_b=>29352960, 279 | conv4_30_c=>12845056, 280 | conv4_31_a=>12845056, 281 | conv4_31_b=>29352960, 282 | conv4_31_c=>12845056, 283 | conv4_32_a=>12845056, 284 | conv4_32_b=>29352960, 285 | conv4_32_c=>12845056, 286 | conv4_33_a=>12845056, 287 | conv4_33_b=>29352960, 288 | conv4_33_c=>12845056, 289 | conv4_34_a=>12845056, 290 | conv4_34_b=>29352960, 291 | conv4_34_c=>12845056, 292 | conv4_35_a=>12845056, 293 | conv4_35_b=>29352960, 294 | conv4_35_c=>12845056, 295 | conv4_36_a=>12845056, 296 | conv4_36_b=>29352960, 297 | conv4_36_c=>12845056, 298 | conv5_1_a=>8388608, 299 | conv5_1_b=>37969920, 300 | conv5_1_c=>16777216, 301 | conv5_2_a=>16777216, 302 | conv5_2_b=>37969920, 303 | conv5_2_c=>16777216, 304 | conv5_3_a=>16777216, 305 | conv5_3_b=>37969920, 306 | conv5_3_c=>16777216, 307 | ); 308 | 1; 309 | % NNops2 =( 310 | conv1=>29503488, 311 | conv2_1_a=>3211264, 312 | conv2_1_b=>28901376, 313 | conv2_1_c=>12845056, 314 | conv2_2_a=>3211264, 315 | conv2_2_b=>28901376, 316 | conv2_2_c=>12845056, 317 | conv2_3_a=>3211264, 318 | conv2_3_b=>28901376, 319 | conv2_3_c=>12845056, 320 | conv3_1_a=>6422528, 321 | conv3_1_b=>29352960, 322 | conv3_1_c=>12845056, 323 | conv3_2_a=>12845056, 324 | conv3_2_b=>29352960, 325 | conv3_2_c=>12845056, 326 | conv3_3_a=>12845056, 327 | conv3_3_b=>29352960, 328 | conv3_3_c=>12845056, 329 | conv3_4_a=>12845056, 330 | conv3_4_b=>29352960, 331 | conv3_4_c=>12845056, 332 | conv3_5_a=>12845056, 333 | conv3_5_b=>29352960, 334 | conv3_5_c=>12845056, 335 | conv3_6_a=>12845056, 336 | conv3_6_b=>29352960, 337 | conv3_6_c=>12845056, 338 | conv3_7_a=>12845056, 339 | conv3_7_b=>29352960, 340 | conv3_7_c=>12845056, 341 | conv3_8_a=>12845056, 342 | conv3_8_b=>29352960, 343 | conv3_8_c=>12845056, 344 | conv4_01_a=>6422528, 345 | conv4_01_b=>29352960, 346 | conv4_01_c=>12845056, 347 | conv4_02_a=>12845056, 348 | conv4_02_b=>29352960, 349 | conv4_02_c=>12845056, 350 | conv4_03_a=>12845056, 351 | conv4_03_b=>29352960, 352 | conv4_03_c=>12845056, 353 | conv4_04_a=>12845056, 354 | conv4_04_b=>29352960, 355 | conv4_04_c=>12845056, 356 | conv4_05_a=>12845056, 357 | conv4_05_b=>29352960, 358 | conv4_05_c=>12845056, 359 | conv4_06_a=>12845056, 360 | conv4_06_b=>29352960, 361 | conv4_06_c=>12845056, 362 | conv4_07_a=>12845056, 363 | conv4_07_b=>29352960, 364 | conv4_07_c=>12845056, 365 | conv4_08_a=>12845056, 366 | conv4_08_b=>29352960, 367 | conv4_08_c=>12845056, 368 | conv4_09_a=>12845056, 369 | conv4_09_b=>29352960, 370 | conv4_09_c=>12845056, 371 | conv4_10_a=>12845056, 372 | conv4_10_b=>29352960, 373 | conv4_10_c=>12845056, 374 | conv4_11_a=>12845056, 375 | conv4_11_b=>29352960, 376 | conv4_11_c=>12845056, 377 | conv4_12_a=>12845056, 378 | conv4_12_b=>29352960, 379 | conv4_12_c=>12845056, 380 | conv4_13_a=>12845056, 381 | conv4_13_b=>29352960, 382 | conv4_13_c=>12845056, 383 | conv4_14_a=>12845056, 384 | conv4_14_b=>29352960, 385 | conv4_14_c=>12845056, 386 | conv4_15_a=>12845056, 387 | conv4_15_b=>29352960, 388 | conv4_15_c=>12845056, 389 | conv4_16_a=>12845056, 390 | conv4_16_b=>29352960, 391 | conv4_16_c=>12845056, 392 | conv4_17_a=>12845056, 393 | conv4_17_b=>29352960, 394 | conv4_17_c=>12845056, 395 | conv4_18_a=>12845056, 396 | conv4_18_b=>29352960, 397 | conv4_18_c=>12845056, 398 | conv4_19_a=>12845056, 399 | conv4_19_b=>29352960, 400 | conv4_19_c=>12845056, 401 | conv4_20_a=>12845056, 402 | conv4_20_b=>29352960, 403 | conv4_20_c=>12845056, 404 | conv4_21_a=>12845056, 405 | conv4_21_b=>29352960, 406 | conv4_21_c=>12845056, 407 | conv4_22_a=>12845056, 408 | conv4_22_b=>29352960, 409 | conv4_22_c=>12845056, 410 | conv4_23_a=>12845056, 411 | conv4_23_b=>29352960, 412 | conv4_23_c=>12845056, 413 | conv4_24_a=>12845056, 414 | conv4_24_b=>29352960, 415 | conv4_24_c=>12845056, 416 | conv4_25_a=>12845056, 417 | conv4_25_b=>29352960, 418 | conv4_25_c=>12845056, 419 | conv4_26_a=>12845056, 420 | conv4_26_b=>29352960, 421 | conv4_26_c=>12845056, 422 | conv4_27_a=>12845056, 423 | conv4_27_b=>29352960, 424 | conv4_27_c=>12845056, 425 | conv4_28_a=>12845056, 426 | conv4_28_b=>29352960, 427 | conv4_28_c=>12845056, 428 | conv4_29_a=>12845056, 429 | conv4_29_b=>29352960, 430 | conv4_29_c=>12845056, 431 | conv4_30_a=>12845056, 432 | conv4_30_b=>29352960, 433 | conv4_30_c=>12845056, 434 | conv4_31_a=>12845056, 435 | conv4_31_b=>29352960, 436 | conv4_31_c=>12845056, 437 | conv4_32_a=>12845056, 438 | conv4_32_b=>29352960, 439 | conv4_32_c=>12845056, 440 | conv4_33_a=>12845056, 441 | conv4_33_b=>29352960, 442 | conv4_33_c=>12845056, 443 | conv4_34_a=>12845056, 444 | conv4_34_b=>29352960, 445 | conv4_34_c=>12845056, 446 | conv4_35_a=>12845056, 447 | conv4_35_b=>29352960, 448 | conv4_35_c=>12845056, 449 | conv4_36_a=>12845056, 450 | conv4_36_b=>29352960, 451 | conv4_36_c=>12845056, 452 | conv5_1_a=>8388608, 453 | conv5_1_b=>37969920, 454 | conv5_1_c=>16777216, 455 | conv5_2_a=>16777216, 456 | conv5_2_b=>37969920, 457 | conv5_2_c=>16777216, 458 | conv5_3_a=>16777216, 459 | conv5_3_b=>37969920, 460 | conv5_3_c=>16777216, 461 | ); 462 | 1; 463 | % NNops3 =( 464 | conv1=>29503488, 465 | conv2_1_a=>3211264, 466 | conv2_1_b=>28901376, 467 | conv2_1_c=>12845056, 468 | conv2_2_a=>3211264, 469 | conv2_2_b=>28901376, 470 | conv2_2_c=>12845056, 471 | conv2_3_a=>3211264, 472 | conv2_3_b=>28901376, 473 | conv2_3_c=>12845056, 474 | conv3_1_a=>6422528, 475 | conv3_1_b=>29352960, 476 | conv3_1_c=>12845056, 477 | conv3_2_a=>12845056, 478 | conv3_2_b=>29352960, 479 | conv3_2_c=>12845056, 480 | conv3_3_a=>12845056, 481 | conv3_3_b=>29352960, 482 | conv3_3_c=>12845056, 483 | conv3_4_a=>12845056, 484 | conv3_4_b=>29352960, 485 | conv3_4_c=>12845056, 486 | conv3_5_a=>12845056, 487 | conv3_5_b=>29352960, 488 | conv3_5_c=>12845056, 489 | conv3_6_a=>12845056, 490 | conv3_6_b=>29352960, 491 | conv3_6_c=>12845056, 492 | conv3_7_a=>12845056, 493 | conv3_7_b=>29352960, 494 | conv3_7_c=>12845056, 495 | conv3_8_a=>12845056, 496 | conv3_8_b=>29352960, 497 | conv3_8_c=>12845056, 498 | conv4_01_a=>6422528, 499 | conv4_01_b=>29352960, 500 | conv4_01_c=>12845056, 501 | conv4_02_a=>12845056, 502 | conv4_02_b=>29352960, 503 | conv4_02_c=>12845056, 504 | conv4_03_a=>12845056, 505 | conv4_03_b=>29352960, 506 | conv4_03_c=>12845056, 507 | conv4_04_a=>12845056, 508 | conv4_04_b=>29352960, 509 | conv4_04_c=>12845056, 510 | conv4_05_a=>12845056, 511 | conv4_05_b=>29352960, 512 | conv4_05_c=>12845056, 513 | conv4_06_a=>12845056, 514 | conv4_06_b=>29352960, 515 | conv4_06_c=>12845056, 516 | conv4_07_a=>12845056, 517 | conv4_07_b=>29352960, 518 | conv4_07_c=>12845056, 519 | conv4_08_a=>12845056, 520 | conv4_08_b=>29352960, 521 | conv4_08_c=>12845056, 522 | conv4_09_a=>12845056, 523 | conv4_09_b=>29352960, 524 | conv4_09_c=>12845056, 525 | conv4_10_a=>12845056, 526 | conv4_10_b=>29352960, 527 | conv4_10_c=>12845056, 528 | conv4_11_a=>12845056, 529 | conv4_11_b=>29352960, 530 | conv4_11_c=>12845056, 531 | conv4_12_a=>12845056, 532 | conv4_12_b=>29352960, 533 | conv4_12_c=>12845056, 534 | conv4_13_a=>12845056, 535 | conv4_13_b=>29352960, 536 | conv4_13_c=>12845056, 537 | conv4_14_a=>12845056, 538 | conv4_14_b=>29352960, 539 | conv4_14_c=>12845056, 540 | conv4_15_a=>12845056, 541 | conv4_15_b=>29352960, 542 | conv4_15_c=>12845056, 543 | conv4_16_a=>12845056, 544 | conv4_16_b=>29352960, 545 | conv4_16_c=>12845056, 546 | conv4_17_a=>12845056, 547 | conv4_17_b=>29352960, 548 | conv4_17_c=>12845056, 549 | conv4_18_a=>12845056, 550 | conv4_18_b=>29352960, 551 | conv4_18_c=>12845056, 552 | conv4_19_a=>12845056, 553 | conv4_19_b=>29352960, 554 | conv4_19_c=>12845056, 555 | conv4_20_a=>12845056, 556 | conv4_20_b=>29352960, 557 | conv4_20_c=>12845056, 558 | conv4_21_a=>12845056, 559 | conv4_21_b=>29352960, 560 | conv4_21_c=>12845056, 561 | conv4_22_a=>12845056, 562 | conv4_22_b=>29352960, 563 | conv4_22_c=>12845056, 564 | conv4_23_a=>12845056, 565 | conv4_23_b=>29352960, 566 | conv4_23_c=>12845056, 567 | conv4_24_a=>12845056, 568 | conv4_24_b=>29352960, 569 | conv4_24_c=>12845056, 570 | conv4_25_a=>12845056, 571 | conv4_25_b=>29352960, 572 | conv4_25_c=>12845056, 573 | conv4_26_a=>12845056, 574 | conv4_26_b=>29352960, 575 | conv4_26_c=>12845056, 576 | conv4_27_a=>12845056, 577 | conv4_27_b=>29352960, 578 | conv4_27_c=>12845056, 579 | conv4_28_a=>12845056, 580 | conv4_28_b=>29352960, 581 | conv4_28_c=>12845056, 582 | conv4_29_a=>12845056, 583 | conv4_29_b=>29352960, 584 | conv4_29_c=>12845056, 585 | conv4_30_a=>12845056, 586 | conv4_30_b=>29352960, 587 | conv4_30_c=>12845056, 588 | conv4_31_a=>12845056, 589 | conv4_31_b=>29352960, 590 | conv4_31_c=>12845056, 591 | conv4_32_a=>12845056, 592 | conv4_32_b=>29352960, 593 | conv4_32_c=>12845056, 594 | conv4_33_a=>12845056, 595 | conv4_33_b=>29352960, 596 | conv4_33_c=>12845056, 597 | conv4_34_a=>12845056, 598 | conv4_34_b=>29352960, 599 | conv4_34_c=>12845056, 600 | conv4_35_a=>12845056, 601 | conv4_35_b=>29352960, 602 | conv4_35_c=>12845056, 603 | conv4_36_a=>12845056, 604 | conv4_36_b=>29352960, 605 | conv4_36_c=>12845056, 606 | conv5_1_a=>8388608, 607 | conv5_1_b=>37969920, 608 | conv5_1_c=>16777216, 609 | conv5_2_a=>16777216, 610 | conv5_2_b=>37969920, 611 | conv5_2_c=>16777216, 612 | conv5_3_a=>16777216, 613 | conv5_3_b=>37969920, 614 | conv5_3_c=>16777216, 615 | ); 616 | 1; 617 | % NNops4 =( 618 | conv1=>29503488, 619 | conv2_1_a=>3211264, 620 | conv2_1_b=>28901376, 621 | conv2_1_c=>12845056, 622 | conv2_2_a=>3211264, 623 | conv2_2_b=>28901376, 624 | conv2_2_c=>12845056, 625 | conv2_3_a=>3211264, 626 | conv2_3_b=>28901376, 627 | conv2_3_c=>12845056, 628 | conv3_1_a=>6422528, 629 | conv3_1_b=>29352960, 630 | conv3_1_c=>12845056, 631 | conv3_2_a=>12845056, 632 | conv3_2_b=>29352960, 633 | conv3_2_c=>12845056, 634 | conv3_3_a=>12845056, 635 | conv3_3_b=>29352960, 636 | conv3_3_c=>12845056, 637 | conv3_4_a=>12845056, 638 | conv3_4_b=>29352960, 639 | conv3_4_c=>12845056, 640 | conv3_5_a=>12845056, 641 | conv3_5_b=>29352960, 642 | conv3_5_c=>12845056, 643 | conv3_6_a=>12845056, 644 | conv3_6_b=>29352960, 645 | conv3_6_c=>12845056, 646 | conv3_7_a=>12845056, 647 | conv3_7_b=>29352960, 648 | conv3_7_c=>12845056, 649 | conv3_8_a=>12845056, 650 | conv3_8_b=>29352960, 651 | conv3_8_c=>12845056, 652 | conv4_01_a=>6422528, 653 | conv4_01_b=>29352960, 654 | conv4_01_c=>12845056, 655 | conv4_02_a=>12845056, 656 | conv4_02_b=>29352960, 657 | conv4_02_c=>12845056, 658 | conv4_03_a=>12845056, 659 | conv4_03_b=>29352960, 660 | conv4_03_c=>12845056, 661 | conv4_04_a=>12845056, 662 | conv4_04_b=>29352960, 663 | conv4_04_c=>12845056, 664 | conv4_05_a=>12845056, 665 | conv4_05_b=>29352960, 666 | conv4_05_c=>12845056, 667 | conv4_06_a=>12845056, 668 | conv4_06_b=>29352960, 669 | conv4_06_c=>12845056, 670 | conv4_07_a=>12845056, 671 | conv4_07_b=>29352960, 672 | conv4_07_c=>12845056, 673 | conv4_08_a=>12845056, 674 | conv4_08_b=>29352960, 675 | conv4_08_c=>12845056, 676 | conv4_09_a=>12845056, 677 | conv4_09_b=>29352960, 678 | conv4_09_c=>12845056, 679 | conv4_10_a=>12845056, 680 | conv4_10_b=>29352960, 681 | conv4_10_c=>12845056, 682 | conv4_11_a=>12845056, 683 | conv4_11_b=>29352960, 684 | conv4_11_c=>12845056, 685 | conv4_12_a=>12845056, 686 | conv4_12_b=>29352960, 687 | conv4_12_c=>12845056, 688 | conv4_13_a=>12845056, 689 | conv4_13_b=>29352960, 690 | conv4_13_c=>12845056, 691 | conv4_14_a=>12845056, 692 | conv4_14_b=>29352960, 693 | conv4_14_c=>12845056, 694 | conv4_15_a=>12845056, 695 | conv4_15_b=>29352960, 696 | conv4_15_c=>12845056, 697 | conv4_16_a=>12845056, 698 | conv4_16_b=>29352960, 699 | conv4_16_c=>12845056, 700 | conv4_17_a=>12845056, 701 | conv4_17_b=>29352960, 702 | conv4_17_c=>12845056, 703 | conv4_18_a=>12845056, 704 | conv4_18_b=>29352960, 705 | conv4_18_c=>12845056, 706 | conv4_19_a=>12845056, 707 | conv4_19_b=>29352960, 708 | conv4_19_c=>12845056, 709 | conv4_20_a=>12845056, 710 | conv4_20_b=>29352960, 711 | conv4_20_c=>12845056, 712 | conv4_21_a=>12845056, 713 | conv4_21_b=>29352960, 714 | conv4_21_c=>12845056, 715 | conv4_22_a=>12845056, 716 | conv4_22_b=>29352960, 717 | conv4_22_c=>12845056, 718 | conv4_23_a=>12845056, 719 | conv4_23_b=>29352960, 720 | conv4_23_c=>12845056, 721 | conv4_24_a=>12845056, 722 | conv4_24_b=>29352960, 723 | conv4_24_c=>12845056, 724 | conv4_25_a=>12845056, 725 | conv4_25_b=>29352960, 726 | conv4_25_c=>12845056, 727 | conv4_26_a=>12845056, 728 | conv4_26_b=>29352960, 729 | conv4_26_c=>12845056, 730 | conv4_27_a=>12845056, 731 | conv4_27_b=>29352960, 732 | conv4_27_c=>12845056, 733 | conv4_28_a=>12845056, 734 | conv4_28_b=>29352960, 735 | conv4_28_c=>12845056, 736 | conv4_29_a=>12845056, 737 | conv4_29_b=>29352960, 738 | conv4_29_c=>12845056, 739 | conv4_30_a=>12845056, 740 | conv4_30_b=>29352960, 741 | conv4_30_c=>12845056, 742 | conv4_31_a=>12845056, 743 | conv4_31_b=>29352960, 744 | conv4_31_c=>12845056, 745 | conv4_32_a=>12845056, 746 | conv4_32_b=>29352960, 747 | conv4_32_c=>12845056, 748 | conv4_33_a=>12845056, 749 | conv4_33_b=>29352960, 750 | conv4_33_c=>12845056, 751 | conv4_34_a=>12845056, 752 | conv4_34_b=>29352960, 753 | conv4_34_c=>12845056, 754 | conv4_35_a=>12845056, 755 | conv4_35_b=>29352960, 756 | conv4_35_c=>12845056, 757 | conv4_36_a=>12845056, 758 | conv4_36_b=>29352960, 759 | conv4_36_c=>12845056, 760 | conv5_1_a=>8388608, 761 | conv5_1_b=>37969920, 762 | conv5_1_c=>16777216, 763 | conv5_2_a=>16777216, 764 | conv5_2_b=>37969920, 765 | conv5_2_c=>16777216, 766 | conv5_3_a=>16777216, 767 | conv5_3_b=>37969920, 768 | conv5_3_c=>16777216, 769 | ); 770 | 1; 771 | -------------------------------------------------------------------------------- /ops/vgg19_net_16_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>371589120, 3 | conv02=>7927234560, 4 | conv03=>3699376128, 5 | conv04=>7398752256, 6 | conv05=>3699376128, 7 | conv06=>7398752256, 8 | conv07=>7398752256, 9 | conv08=>7398752256, 10 | conv09=>3757178880, 11 | conv10=>7442104320, 12 | conv11=>7442104320, 13 | conv12=>7442104320, 14 | conv13=>1878589440, 15 | conv14=>1878589440, 16 | conv15=>1878589440, 17 | conv16=>1878589440, 18 | fc1=>411041792, 19 | fc2=>67108864, 20 | fc3=>16777216, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>371589120, 25 | conv02=>7927234560, 26 | conv03=>3699376128, 27 | conv04=>7398752256, 28 | conv05=>3699376128, 29 | conv06=>7398752256, 30 | conv07=>7398752256, 31 | conv08=>7398752256, 32 | conv09=>3757178880, 33 | conv10=>7442104320, 34 | conv11=>7442104320, 35 | conv12=>7442104320, 36 | conv13=>1878589440, 37 | conv14=>1878589440, 38 | conv15=>1878589440, 39 | conv16=>1878589440, 40 | fc1=>411041792, 41 | fc2=>67108864, 42 | fc3=>16777216, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>371589120, 47 | conv02=>7927234560, 48 | conv03=>3699376128, 49 | conv04=>7398752256, 50 | conv05=>3699376128, 51 | conv06=>7398752256, 52 | conv07=>7398752256, 53 | conv08=>7398752256, 54 | conv09=>3757178880, 55 | conv10=>7442104320, 56 | conv11=>7442104320, 57 | conv12=>7442104320, 58 | conv13=>1878589440, 59 | conv14=>1878589440, 60 | conv15=>1878589440, 61 | conv16=>1878589440, 62 | fc1=>411041792, 63 | fc2=>67108864, 64 | fc3=>16777216, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>371589120, 69 | conv02=>7927234560, 70 | conv03=>3699376128, 71 | conv04=>7398752256, 72 | conv05=>3699376128, 73 | conv06=>7398752256, 74 | conv07=>7398752256, 75 | conv08=>7398752256, 76 | conv09=>3757178880, 77 | conv10=>7442104320, 78 | conv11=>7442104320, 79 | conv12=>7442104320, 80 | conv13=>1878589440, 81 | conv14=>1878589440, 82 | conv15=>1878589440, 83 | conv16=>1878589440, 84 | fc1=>411041792, 85 | fc2=>67108864, 86 | fc3=>16777216, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>371589120, 91 | conv02=>7927234560, 92 | conv03=>3699376128, 93 | conv04=>7398752256, 94 | conv05=>3699376128, 95 | conv06=>7398752256, 96 | conv07=>7398752256, 97 | conv08=>7398752256, 98 | conv09=>3757178880, 99 | conv10=>7442104320, 100 | conv11=>7442104320, 101 | conv12=>7442104320, 102 | conv13=>1878589440, 103 | conv14=>1878589440, 104 | conv15=>1878589440, 105 | conv16=>1878589440, 106 | fc1=>411041792, 107 | fc2=>67108864, 108 | fc3=>16777216, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_16_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>23224320, 3 | conv02=>495452160, 4 | conv03=>231211008, 5 | conv04=>462422016, 6 | conv05=>231211008, 7 | conv06=>462422016, 8 | conv07=>462422016, 9 | conv08=>462422016, 10 | conv09=>232565760, 11 | conv10=>465131520, 12 | conv11=>465131520, 13 | conv12=>465131520, 14 | conv13=>116282880, 15 | conv14=>116282880, 16 | conv15=>116282880, 17 | conv16=>116282880, 18 | fc1=>25690112, 19 | fc2=>4194304, 20 | fc3=>1048576, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>23224320, 25 | conv02=>495452160, 26 | conv03=>231211008, 27 | conv04=>462422016, 28 | conv05=>231211008, 29 | conv06=>462422016, 30 | conv07=>462422016, 31 | conv08=>462422016, 32 | conv09=>232565760, 33 | conv10=>465131520, 34 | conv11=>465131520, 35 | conv12=>465131520, 36 | conv13=>116282880, 37 | conv14=>116282880, 38 | conv15=>116282880, 39 | conv16=>116282880, 40 | fc1=>25690112, 41 | fc2=>4194304, 42 | fc3=>1048576, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>23224320, 47 | conv02=>495452160, 48 | conv03=>231211008, 49 | conv04=>462422016, 50 | conv05=>231211008, 51 | conv06=>462422016, 52 | conv07=>462422016, 53 | conv08=>462422016, 54 | conv09=>232565760, 55 | conv10=>465131520, 56 | conv11=>465131520, 57 | conv12=>465131520, 58 | conv13=>116282880, 59 | conv14=>116282880, 60 | conv15=>116282880, 61 | conv16=>116282880, 62 | fc1=>25690112, 63 | fc2=>4194304, 64 | fc3=>1048576, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>23224320, 69 | conv02=>495452160, 70 | conv03=>231211008, 71 | conv04=>462422016, 72 | conv05=>231211008, 73 | conv06=>462422016, 74 | conv07=>462422016, 75 | conv08=>462422016, 76 | conv09=>232565760, 77 | conv10=>465131520, 78 | conv11=>465131520, 79 | conv12=>465131520, 80 | conv13=>116282880, 81 | conv14=>116282880, 82 | conv15=>116282880, 83 | conv16=>116282880, 84 | fc1=>25690112, 85 | fc2=>4194304, 86 | fc3=>1048576, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>23224320, 91 | conv02=>495452160, 92 | conv03=>231211008, 93 | conv04=>462422016, 94 | conv05=>231211008, 95 | conv06=>462422016, 96 | conv07=>462422016, 97 | conv08=>462422016, 98 | conv09=>232565760, 99 | conv10=>465131520, 100 | conv11=>465131520, 101 | conv12=>465131520, 102 | conv13=>116282880, 103 | conv14=>116282880, 104 | conv15=>116282880, 105 | conv16=>116282880, 106 | fc1=>25690112, 107 | fc2=>4194304, 108 | fc3=>1048576, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_16_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>46448640, 3 | conv02=>990904320, 4 | conv03=>462422016, 5 | conv04=>924844032, 6 | conv05=>462422016, 7 | conv06=>924844032, 8 | conv07=>924844032, 9 | conv08=>924844032, 10 | conv09=>469647360, 11 | conv10=>930263040, 12 | conv11=>930263040, 13 | conv12=>930263040, 14 | conv13=>232565760, 15 | conv14=>232565760, 16 | conv15=>232565760, 17 | conv16=>232565760, 18 | fc1=>51380224, 19 | fc2=>8388608, 20 | fc3=>2097152, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>46448640, 25 | conv02=>990904320, 26 | conv03=>462422016, 27 | conv04=>924844032, 28 | conv05=>462422016, 29 | conv06=>924844032, 30 | conv07=>924844032, 31 | conv08=>924844032, 32 | conv09=>469647360, 33 | conv10=>930263040, 34 | conv11=>930263040, 35 | conv12=>930263040, 36 | conv13=>232565760, 37 | conv14=>232565760, 38 | conv15=>232565760, 39 | conv16=>232565760, 40 | fc1=>51380224, 41 | fc2=>8388608, 42 | fc3=>2097152, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>46448640, 47 | conv02=>990904320, 48 | conv03=>462422016, 49 | conv04=>924844032, 50 | conv05=>462422016, 51 | conv06=>924844032, 52 | conv07=>924844032, 53 | conv08=>924844032, 54 | conv09=>469647360, 55 | conv10=>930263040, 56 | conv11=>930263040, 57 | conv12=>930263040, 58 | conv13=>232565760, 59 | conv14=>232565760, 60 | conv15=>232565760, 61 | conv16=>232565760, 62 | fc1=>51380224, 63 | fc2=>8388608, 64 | fc3=>2097152, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>46448640, 69 | conv02=>990904320, 70 | conv03=>462422016, 71 | conv04=>924844032, 72 | conv05=>462422016, 73 | conv06=>924844032, 74 | conv07=>924844032, 75 | conv08=>924844032, 76 | conv09=>469647360, 77 | conv10=>930263040, 78 | conv11=>930263040, 79 | conv12=>930263040, 80 | conv13=>232565760, 81 | conv14=>232565760, 82 | conv15=>232565760, 83 | conv16=>232565760, 84 | fc1=>51380224, 85 | fc2=>8388608, 86 | fc3=>2097152, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>46448640, 91 | conv02=>990904320, 92 | conv03=>462422016, 93 | conv04=>924844032, 94 | conv05=>462422016, 95 | conv06=>924844032, 96 | conv07=>924844032, 97 | conv08=>924844032, 98 | conv09=>469647360, 99 | conv10=>930263040, 100 | conv11=>930263040, 101 | conv12=>930263040, 102 | conv13=>232565760, 103 | conv14=>232565760, 104 | conv15=>232565760, 105 | conv16=>232565760, 106 | fc1=>51380224, 107 | fc2=>8388608, 108 | fc3=>2097152, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_16_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>92897280, 3 | conv02=>1981808640, 4 | conv03=>924844032, 5 | conv04=>1849688064, 6 | conv05=>924844032, 7 | conv06=>1849688064, 8 | conv07=>1849688064, 9 | conv08=>1849688064, 10 | conv09=>939294720, 11 | conv10=>1860526080, 12 | conv11=>1860526080, 13 | conv12=>1860526080, 14 | conv13=>469647360, 15 | conv14=>469647360, 16 | conv15=>469647360, 17 | conv16=>469647360, 18 | fc1=>102760448, 19 | fc2=>16777216, 20 | fc3=>4194304, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>92897280, 25 | conv02=>1981808640, 26 | conv03=>924844032, 27 | conv04=>1849688064, 28 | conv05=>924844032, 29 | conv06=>1849688064, 30 | conv07=>1849688064, 31 | conv08=>1849688064, 32 | conv09=>939294720, 33 | conv10=>1860526080, 34 | conv11=>1860526080, 35 | conv12=>1860526080, 36 | conv13=>469647360, 37 | conv14=>469647360, 38 | conv15=>469647360, 39 | conv16=>469647360, 40 | fc1=>102760448, 41 | fc2=>16777216, 42 | fc3=>4194304, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>92897280, 47 | conv02=>1981808640, 48 | conv03=>924844032, 49 | conv04=>1849688064, 50 | conv05=>924844032, 51 | conv06=>1849688064, 52 | conv07=>1849688064, 53 | conv08=>1849688064, 54 | conv09=>939294720, 55 | conv10=>1860526080, 56 | conv11=>1860526080, 57 | conv12=>1860526080, 58 | conv13=>469647360, 59 | conv14=>469647360, 60 | conv15=>469647360, 61 | conv16=>469647360, 62 | fc1=>102760448, 63 | fc2=>16777216, 64 | fc3=>4194304, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>92897280, 69 | conv02=>1981808640, 70 | conv03=>924844032, 71 | conv04=>1849688064, 72 | conv05=>924844032, 73 | conv06=>1849688064, 74 | conv07=>1849688064, 75 | conv08=>1849688064, 76 | conv09=>939294720, 77 | conv10=>1860526080, 78 | conv11=>1860526080, 79 | conv12=>1860526080, 80 | conv13=>469647360, 81 | conv14=>469647360, 82 | conv15=>469647360, 83 | conv16=>469647360, 84 | fc1=>102760448, 85 | fc2=>16777216, 86 | fc3=>4194304, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>92897280, 91 | conv02=>1981808640, 92 | conv03=>924844032, 93 | conv04=>1849688064, 94 | conv05=>924844032, 95 | conv06=>1849688064, 96 | conv07=>1849688064, 97 | conv08=>1849688064, 98 | conv09=>939294720, 99 | conv10=>1860526080, 100 | conv11=>1860526080, 101 | conv12=>1860526080, 102 | conv13=>469647360, 103 | conv14=>469647360, 104 | conv15=>469647360, 105 | conv16=>469647360, 106 | fc1=>102760448, 107 | fc2=>16777216, 108 | fc3=>4194304, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_16_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>185794560, 3 | conv02=>3963617280, 4 | conv03=>1849688064, 5 | conv04=>3699376128, 6 | conv05=>1849688064, 7 | conv06=>3699376128, 8 | conv07=>3699376128, 9 | conv08=>3699376128, 10 | conv09=>1878589440, 11 | conv10=>3721052160, 12 | conv11=>3721052160, 13 | conv12=>3721052160, 14 | conv13=>939294720, 15 | conv14=>939294720, 16 | conv15=>939294720, 17 | conv16=>939294720, 18 | fc1=>205520896, 19 | fc2=>33554432, 20 | fc3=>8388608, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>185794560, 25 | conv02=>3963617280, 26 | conv03=>1849688064, 27 | conv04=>3699376128, 28 | conv05=>1849688064, 29 | conv06=>3699376128, 30 | conv07=>3699376128, 31 | conv08=>3699376128, 32 | conv09=>1878589440, 33 | conv10=>3721052160, 34 | conv11=>3721052160, 35 | conv12=>3721052160, 36 | conv13=>939294720, 37 | conv14=>939294720, 38 | conv15=>939294720, 39 | conv16=>939294720, 40 | fc1=>205520896, 41 | fc2=>33554432, 42 | fc3=>8388608, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>185794560, 47 | conv02=>3963617280, 48 | conv03=>1849688064, 49 | conv04=>3699376128, 50 | conv05=>1849688064, 51 | conv06=>3699376128, 52 | conv07=>3699376128, 53 | conv08=>3699376128, 54 | conv09=>1878589440, 55 | conv10=>3721052160, 56 | conv11=>3721052160, 57 | conv12=>3721052160, 58 | conv13=>939294720, 59 | conv14=>939294720, 60 | conv15=>939294720, 61 | conv16=>939294720, 62 | fc1=>205520896, 63 | fc2=>33554432, 64 | fc3=>8388608, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>185794560, 69 | conv02=>3963617280, 70 | conv03=>1849688064, 71 | conv04=>3699376128, 72 | conv05=>1849688064, 73 | conv06=>3699376128, 74 | conv07=>3699376128, 75 | conv08=>3699376128, 76 | conv09=>1878589440, 77 | conv10=>3721052160, 78 | conv11=>3721052160, 79 | conv12=>3721052160, 80 | conv13=>939294720, 81 | conv14=>939294720, 82 | conv15=>939294720, 83 | conv16=>939294720, 84 | fc1=>205520896, 85 | fc2=>33554432, 86 | fc3=>8388608, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>185794560, 91 | conv02=>3963617280, 92 | conv03=>1849688064, 93 | conv04=>3699376128, 94 | conv05=>1849688064, 95 | conv06=>3699376128, 96 | conv07=>3699376128, 97 | conv08=>3699376128, 98 | conv09=>1878589440, 99 | conv10=>3721052160, 100 | conv11=>3721052160, 101 | conv12=>3721052160, 102 | conv13=>939294720, 103 | conv14=>939294720, 104 | conv15=>939294720, 105 | conv16=>939294720, 106 | fc1=>205520896, 107 | fc2=>33554432, 108 | fc3=>8388608, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_32_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>371589120, 3 | conv02=>7927234560, 4 | conv03=>3699376128, 5 | conv04=>7398752256, 6 | conv05=>3699376128, 7 | conv06=>7398752256, 8 | conv07=>7398752256, 9 | conv08=>7398752256, 10 | conv09=>3757178880, 11 | conv10=>7442104320, 12 | conv11=>7442104320, 13 | conv12=>7442104320, 14 | conv13=>1878589440, 15 | conv14=>1878589440, 16 | conv15=>1878589440, 17 | conv16=>1878589440, 18 | fc1=>411041792, 19 | fc2=>67108864, 20 | fc3=>16777216, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>371589120, 25 | conv02=>7927234560, 26 | conv03=>3699376128, 27 | conv04=>7398752256, 28 | conv05=>3699376128, 29 | conv06=>7398752256, 30 | conv07=>7398752256, 31 | conv08=>7398752256, 32 | conv09=>3757178880, 33 | conv10=>7442104320, 34 | conv11=>7442104320, 35 | conv12=>7442104320, 36 | conv13=>1878589440, 37 | conv14=>1878589440, 38 | conv15=>1878589440, 39 | conv16=>1878589440, 40 | fc1=>411041792, 41 | fc2=>67108864, 42 | fc3=>16777216, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>371589120, 47 | conv02=>7927234560, 48 | conv03=>3699376128, 49 | conv04=>7398752256, 50 | conv05=>3699376128, 51 | conv06=>7398752256, 52 | conv07=>7398752256, 53 | conv08=>7398752256, 54 | conv09=>3757178880, 55 | conv10=>7442104320, 56 | conv11=>7442104320, 57 | conv12=>7442104320, 58 | conv13=>1878589440, 59 | conv14=>1878589440, 60 | conv15=>1878589440, 61 | conv16=>1878589440, 62 | fc1=>411041792, 63 | fc2=>67108864, 64 | fc3=>16777216, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>371589120, 69 | conv02=>7927234560, 70 | conv03=>3699376128, 71 | conv04=>7398752256, 72 | conv05=>3699376128, 73 | conv06=>7398752256, 74 | conv07=>7398752256, 75 | conv08=>7398752256, 76 | conv09=>3757178880, 77 | conv10=>7442104320, 78 | conv11=>7442104320, 79 | conv12=>7442104320, 80 | conv13=>1878589440, 81 | conv14=>1878589440, 82 | conv15=>1878589440, 83 | conv16=>1878589440, 84 | fc1=>411041792, 85 | fc2=>67108864, 86 | fc3=>16777216, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>371589120, 91 | conv02=>7927234560, 92 | conv03=>3699376128, 93 | conv04=>7398752256, 94 | conv05=>3699376128, 95 | conv06=>7398752256, 96 | conv07=>7398752256, 97 | conv08=>7398752256, 98 | conv09=>3757178880, 99 | conv10=>7442104320, 100 | conv11=>7442104320, 101 | conv12=>7442104320, 102 | conv13=>1878589440, 103 | conv14=>1878589440, 104 | conv15=>1878589440, 105 | conv16=>1878589440, 106 | fc1=>411041792, 107 | fc2=>67108864, 108 | fc3=>16777216, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_32_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>23224320, 3 | conv02=>495452160, 4 | conv03=>231211008, 5 | conv04=>462422016, 6 | conv05=>231211008, 7 | conv06=>462422016, 8 | conv07=>462422016, 9 | conv08=>462422016, 10 | conv09=>234823680, 11 | conv10=>465131520, 12 | conv11=>465131520, 13 | conv12=>465131520, 14 | conv13=>117411840, 15 | conv14=>117411840, 16 | conv15=>117411840, 17 | conv16=>117411840, 18 | fc1=>25690112, 19 | fc2=>4194304, 20 | fc3=>1048576, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>23224320, 25 | conv02=>495452160, 26 | conv03=>231211008, 27 | conv04=>462422016, 28 | conv05=>231211008, 29 | conv06=>462422016, 30 | conv07=>462422016, 31 | conv08=>462422016, 32 | conv09=>234823680, 33 | conv10=>465131520, 34 | conv11=>465131520, 35 | conv12=>465131520, 36 | conv13=>117411840, 37 | conv14=>117411840, 38 | conv15=>117411840, 39 | conv16=>117411840, 40 | fc1=>25690112, 41 | fc2=>4194304, 42 | fc3=>1048576, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>23224320, 47 | conv02=>495452160, 48 | conv03=>231211008, 49 | conv04=>462422016, 50 | conv05=>231211008, 51 | conv06=>462422016, 52 | conv07=>462422016, 53 | conv08=>462422016, 54 | conv09=>234823680, 55 | conv10=>465131520, 56 | conv11=>465131520, 57 | conv12=>465131520, 58 | conv13=>117411840, 59 | conv14=>117411840, 60 | conv15=>117411840, 61 | conv16=>117411840, 62 | fc1=>25690112, 63 | fc2=>4194304, 64 | fc3=>1048576, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>23224320, 69 | conv02=>495452160, 70 | conv03=>231211008, 71 | conv04=>462422016, 72 | conv05=>231211008, 73 | conv06=>462422016, 74 | conv07=>462422016, 75 | conv08=>462422016, 76 | conv09=>234823680, 77 | conv10=>465131520, 78 | conv11=>465131520, 79 | conv12=>465131520, 80 | conv13=>117411840, 81 | conv14=>117411840, 82 | conv15=>117411840, 83 | conv16=>117411840, 84 | fc1=>25690112, 85 | fc2=>4194304, 86 | fc3=>1048576, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>23224320, 91 | conv02=>495452160, 92 | conv03=>231211008, 93 | conv04=>462422016, 94 | conv05=>231211008, 95 | conv06=>462422016, 96 | conv07=>462422016, 97 | conv08=>462422016, 98 | conv09=>234823680, 99 | conv10=>465131520, 100 | conv11=>465131520, 101 | conv12=>465131520, 102 | conv13=>117411840, 103 | conv14=>117411840, 104 | conv15=>117411840, 105 | conv16=>117411840, 106 | fc1=>25690112, 107 | fc2=>4194304, 108 | fc3=>1048576, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_32_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>46448640, 3 | conv02=>990904320, 4 | conv03=>462422016, 5 | conv04=>924844032, 6 | conv05=>462422016, 7 | conv06=>924844032, 8 | conv07=>924844032, 9 | conv08=>924844032, 10 | conv09=>469647360, 11 | conv10=>930263040, 12 | conv11=>930263040, 13 | conv12=>930263040, 14 | conv13=>234823680, 15 | conv14=>234823680, 16 | conv15=>234823680, 17 | conv16=>234823680, 18 | fc1=>51380224, 19 | fc2=>8388608, 20 | fc3=>2097152, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>46448640, 25 | conv02=>990904320, 26 | conv03=>462422016, 27 | conv04=>924844032, 28 | conv05=>462422016, 29 | conv06=>924844032, 30 | conv07=>924844032, 31 | conv08=>924844032, 32 | conv09=>469647360, 33 | conv10=>930263040, 34 | conv11=>930263040, 35 | conv12=>930263040, 36 | conv13=>234823680, 37 | conv14=>234823680, 38 | conv15=>234823680, 39 | conv16=>234823680, 40 | fc1=>51380224, 41 | fc2=>8388608, 42 | fc3=>2097152, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>46448640, 47 | conv02=>990904320, 48 | conv03=>462422016, 49 | conv04=>924844032, 50 | conv05=>462422016, 51 | conv06=>924844032, 52 | conv07=>924844032, 53 | conv08=>924844032, 54 | conv09=>469647360, 55 | conv10=>930263040, 56 | conv11=>930263040, 57 | conv12=>930263040, 58 | conv13=>234823680, 59 | conv14=>234823680, 60 | conv15=>234823680, 61 | conv16=>234823680, 62 | fc1=>51380224, 63 | fc2=>8388608, 64 | fc3=>2097152, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>46448640, 69 | conv02=>990904320, 70 | conv03=>462422016, 71 | conv04=>924844032, 72 | conv05=>462422016, 73 | conv06=>924844032, 74 | conv07=>924844032, 75 | conv08=>924844032, 76 | conv09=>469647360, 77 | conv10=>930263040, 78 | conv11=>930263040, 79 | conv12=>930263040, 80 | conv13=>234823680, 81 | conv14=>234823680, 82 | conv15=>234823680, 83 | conv16=>234823680, 84 | fc1=>51380224, 85 | fc2=>8388608, 86 | fc3=>2097152, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>46448640, 91 | conv02=>990904320, 92 | conv03=>462422016, 93 | conv04=>924844032, 94 | conv05=>462422016, 95 | conv06=>924844032, 96 | conv07=>924844032, 97 | conv08=>924844032, 98 | conv09=>469647360, 99 | conv10=>930263040, 100 | conv11=>930263040, 101 | conv12=>930263040, 102 | conv13=>234823680, 103 | conv14=>234823680, 104 | conv15=>234823680, 105 | conv16=>234823680, 106 | fc1=>51380224, 107 | fc2=>8388608, 108 | fc3=>2097152, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_32_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>92897280, 3 | conv02=>1981808640, 4 | conv03=>924844032, 5 | conv04=>1849688064, 6 | conv05=>924844032, 7 | conv06=>1849688064, 8 | conv07=>1849688064, 9 | conv08=>1849688064, 10 | conv09=>939294720, 11 | conv10=>1860526080, 12 | conv11=>1860526080, 13 | conv12=>1860526080, 14 | conv13=>469647360, 15 | conv14=>469647360, 16 | conv15=>469647360, 17 | conv16=>469647360, 18 | fc1=>102760448, 19 | fc2=>16777216, 20 | fc3=>4194304, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>92897280, 25 | conv02=>1981808640, 26 | conv03=>924844032, 27 | conv04=>1849688064, 28 | conv05=>924844032, 29 | conv06=>1849688064, 30 | conv07=>1849688064, 31 | conv08=>1849688064, 32 | conv09=>939294720, 33 | conv10=>1860526080, 34 | conv11=>1860526080, 35 | conv12=>1860526080, 36 | conv13=>469647360, 37 | conv14=>469647360, 38 | conv15=>469647360, 39 | conv16=>469647360, 40 | fc1=>102760448, 41 | fc2=>16777216, 42 | fc3=>4194304, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>92897280, 47 | conv02=>1981808640, 48 | conv03=>924844032, 49 | conv04=>1849688064, 50 | conv05=>924844032, 51 | conv06=>1849688064, 52 | conv07=>1849688064, 53 | conv08=>1849688064, 54 | conv09=>939294720, 55 | conv10=>1860526080, 56 | conv11=>1860526080, 57 | conv12=>1860526080, 58 | conv13=>469647360, 59 | conv14=>469647360, 60 | conv15=>469647360, 61 | conv16=>469647360, 62 | fc1=>102760448, 63 | fc2=>16777216, 64 | fc3=>4194304, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>92897280, 69 | conv02=>1981808640, 70 | conv03=>924844032, 71 | conv04=>1849688064, 72 | conv05=>924844032, 73 | conv06=>1849688064, 74 | conv07=>1849688064, 75 | conv08=>1849688064, 76 | conv09=>939294720, 77 | conv10=>1860526080, 78 | conv11=>1860526080, 79 | conv12=>1860526080, 80 | conv13=>469647360, 81 | conv14=>469647360, 82 | conv15=>469647360, 83 | conv16=>469647360, 84 | fc1=>102760448, 85 | fc2=>16777216, 86 | fc3=>4194304, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>92897280, 91 | conv02=>1981808640, 92 | conv03=>924844032, 93 | conv04=>1849688064, 94 | conv05=>924844032, 95 | conv06=>1849688064, 96 | conv07=>1849688064, 97 | conv08=>1849688064, 98 | conv09=>939294720, 99 | conv10=>1860526080, 100 | conv11=>1860526080, 101 | conv12=>1860526080, 102 | conv13=>469647360, 103 | conv14=>469647360, 104 | conv15=>469647360, 105 | conv16=>469647360, 106 | fc1=>102760448, 107 | fc2=>16777216, 108 | fc3=>4194304, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_32_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>185794560, 3 | conv02=>3963617280, 4 | conv03=>1849688064, 5 | conv04=>3699376128, 6 | conv05=>1849688064, 7 | conv06=>3699376128, 8 | conv07=>3699376128, 9 | conv08=>3699376128, 10 | conv09=>1878589440, 11 | conv10=>3721052160, 12 | conv11=>3721052160, 13 | conv12=>3721052160, 14 | conv13=>939294720, 15 | conv14=>939294720, 16 | conv15=>939294720, 17 | conv16=>939294720, 18 | fc1=>205520896, 19 | fc2=>33554432, 20 | fc3=>8388608, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>185794560, 25 | conv02=>3963617280, 26 | conv03=>1849688064, 27 | conv04=>3699376128, 28 | conv05=>1849688064, 29 | conv06=>3699376128, 30 | conv07=>3699376128, 31 | conv08=>3699376128, 32 | conv09=>1878589440, 33 | conv10=>3721052160, 34 | conv11=>3721052160, 35 | conv12=>3721052160, 36 | conv13=>939294720, 37 | conv14=>939294720, 38 | conv15=>939294720, 39 | conv16=>939294720, 40 | fc1=>205520896, 41 | fc2=>33554432, 42 | fc3=>8388608, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>185794560, 47 | conv02=>3963617280, 48 | conv03=>1849688064, 49 | conv04=>3699376128, 50 | conv05=>1849688064, 51 | conv06=>3699376128, 52 | conv07=>3699376128, 53 | conv08=>3699376128, 54 | conv09=>1878589440, 55 | conv10=>3721052160, 56 | conv11=>3721052160, 57 | conv12=>3721052160, 58 | conv13=>939294720, 59 | conv14=>939294720, 60 | conv15=>939294720, 61 | conv16=>939294720, 62 | fc1=>205520896, 63 | fc2=>33554432, 64 | fc3=>8388608, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>185794560, 69 | conv02=>3963617280, 70 | conv03=>1849688064, 71 | conv04=>3699376128, 72 | conv05=>1849688064, 73 | conv06=>3699376128, 74 | conv07=>3699376128, 75 | conv08=>3699376128, 76 | conv09=>1878589440, 77 | conv10=>3721052160, 78 | conv11=>3721052160, 79 | conv12=>3721052160, 80 | conv13=>939294720, 81 | conv14=>939294720, 82 | conv15=>939294720, 83 | conv16=>939294720, 84 | fc1=>205520896, 85 | fc2=>33554432, 86 | fc3=>8388608, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>185794560, 91 | conv02=>3963617280, 92 | conv03=>1849688064, 93 | conv04=>3699376128, 94 | conv05=>1849688064, 95 | conv06=>3699376128, 96 | conv07=>3699376128, 97 | conv08=>3699376128, 98 | conv09=>1878589440, 99 | conv10=>3721052160, 100 | conv11=>3721052160, 101 | conv12=>3721052160, 102 | conv13=>939294720, 103 | conv14=>939294720, 104 | conv15=>939294720, 105 | conv16=>939294720, 106 | fc1=>205520896, 107 | fc2=>33554432, 108 | fc3=>8388608, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_8_16_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>371589120, 3 | conv02=>7927234560, 4 | conv03=>3699376128, 5 | conv04=>7398752256, 6 | conv05=>3699376128, 7 | conv06=>7398752256, 8 | conv07=>7398752256, 9 | conv08=>7398752256, 10 | conv09=>3721052160, 11 | conv10=>7442104320, 12 | conv11=>7442104320, 13 | conv12=>7442104320, 14 | conv13=>1878589440, 15 | conv14=>1878589440, 16 | conv15=>1878589440, 17 | conv16=>1878589440, 18 | fc1=>411041792, 19 | fc2=>67108864, 20 | fc3=>16777216, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>371589120, 25 | conv02=>7927234560, 26 | conv03=>3699376128, 27 | conv04=>7398752256, 28 | conv05=>3699376128, 29 | conv06=>7398752256, 30 | conv07=>7398752256, 31 | conv08=>7398752256, 32 | conv09=>3721052160, 33 | conv10=>7442104320, 34 | conv11=>7442104320, 35 | conv12=>7442104320, 36 | conv13=>1878589440, 37 | conv14=>1878589440, 38 | conv15=>1878589440, 39 | conv16=>1878589440, 40 | fc1=>411041792, 41 | fc2=>67108864, 42 | fc3=>16777216, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>371589120, 47 | conv02=>7927234560, 48 | conv03=>3699376128, 49 | conv04=>7398752256, 50 | conv05=>3699376128, 51 | conv06=>7398752256, 52 | conv07=>7398752256, 53 | conv08=>7398752256, 54 | conv09=>3721052160, 55 | conv10=>7442104320, 56 | conv11=>7442104320, 57 | conv12=>7442104320, 58 | conv13=>1878589440, 59 | conv14=>1878589440, 60 | conv15=>1878589440, 61 | conv16=>1878589440, 62 | fc1=>411041792, 63 | fc2=>67108864, 64 | fc3=>16777216, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>371589120, 69 | conv02=>7927234560, 70 | conv03=>3699376128, 71 | conv04=>7398752256, 72 | conv05=>3699376128, 73 | conv06=>7398752256, 74 | conv07=>7398752256, 75 | conv08=>7398752256, 76 | conv09=>3721052160, 77 | conv10=>7442104320, 78 | conv11=>7442104320, 79 | conv12=>7442104320, 80 | conv13=>1878589440, 81 | conv14=>1878589440, 82 | conv15=>1878589440, 83 | conv16=>1878589440, 84 | fc1=>411041792, 85 | fc2=>67108864, 86 | fc3=>16777216, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>371589120, 91 | conv02=>7927234560, 92 | conv03=>3699376128, 93 | conv04=>7398752256, 94 | conv05=>3699376128, 95 | conv06=>7398752256, 96 | conv07=>7398752256, 97 | conv08=>7398752256, 98 | conv09=>3721052160, 99 | conv10=>7442104320, 100 | conv11=>7442104320, 101 | conv12=>7442104320, 102 | conv13=>1878589440, 103 | conv14=>1878589440, 104 | conv15=>1878589440, 105 | conv16=>1878589440, 106 | fc1=>411041792, 107 | fc2=>67108864, 108 | fc3=>16777216, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_8_1_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>23224320, 3 | conv02=>495452160, 4 | conv03=>231211008, 5 | conv04=>462422016, 6 | conv05=>231211008, 7 | conv06=>462422016, 8 | conv07=>462422016, 9 | conv08=>462422016, 10 | conv09=>232565760, 11 | conv10=>465131520, 12 | conv11=>465131520, 13 | conv12=>465131520, 14 | conv13=>116282880, 15 | conv14=>116282880, 16 | conv15=>116282880, 17 | conv16=>116282880, 18 | fc1=>25690112, 19 | fc2=>4194304, 20 | fc3=>1048576, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>23224320, 25 | conv02=>495452160, 26 | conv03=>231211008, 27 | conv04=>462422016, 28 | conv05=>231211008, 29 | conv06=>462422016, 30 | conv07=>462422016, 31 | conv08=>462422016, 32 | conv09=>232565760, 33 | conv10=>465131520, 34 | conv11=>465131520, 35 | conv12=>465131520, 36 | conv13=>116282880, 37 | conv14=>116282880, 38 | conv15=>116282880, 39 | conv16=>116282880, 40 | fc1=>25690112, 41 | fc2=>4194304, 42 | fc3=>1048576, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>23224320, 47 | conv02=>495452160, 48 | conv03=>231211008, 49 | conv04=>462422016, 50 | conv05=>231211008, 51 | conv06=>462422016, 52 | conv07=>462422016, 53 | conv08=>462422016, 54 | conv09=>232565760, 55 | conv10=>465131520, 56 | conv11=>465131520, 57 | conv12=>465131520, 58 | conv13=>116282880, 59 | conv14=>116282880, 60 | conv15=>116282880, 61 | conv16=>116282880, 62 | fc1=>25690112, 63 | fc2=>4194304, 64 | fc3=>1048576, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>23224320, 69 | conv02=>495452160, 70 | conv03=>231211008, 71 | conv04=>462422016, 72 | conv05=>231211008, 73 | conv06=>462422016, 74 | conv07=>462422016, 75 | conv08=>462422016, 76 | conv09=>232565760, 77 | conv10=>465131520, 78 | conv11=>465131520, 79 | conv12=>465131520, 80 | conv13=>116282880, 81 | conv14=>116282880, 82 | conv15=>116282880, 83 | conv16=>116282880, 84 | fc1=>25690112, 85 | fc2=>4194304, 86 | fc3=>1048576, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>23224320, 91 | conv02=>495452160, 92 | conv03=>231211008, 93 | conv04=>462422016, 94 | conv05=>231211008, 95 | conv06=>462422016, 96 | conv07=>462422016, 97 | conv08=>462422016, 98 | conv09=>232565760, 99 | conv10=>465131520, 100 | conv11=>465131520, 101 | conv12=>465131520, 102 | conv13=>116282880, 103 | conv14=>116282880, 104 | conv15=>116282880, 105 | conv16=>116282880, 106 | fc1=>25690112, 107 | fc2=>4194304, 108 | fc3=>1048576, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_8_2_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>46448640, 3 | conv02=>990904320, 4 | conv03=>462422016, 5 | conv04=>924844032, 6 | conv05=>462422016, 7 | conv06=>924844032, 8 | conv07=>924844032, 9 | conv08=>924844032, 10 | conv09=>465131520, 11 | conv10=>930263040, 12 | conv11=>930263040, 13 | conv12=>930263040, 14 | conv13=>232565760, 15 | conv14=>232565760, 16 | conv15=>232565760, 17 | conv16=>232565760, 18 | fc1=>51380224, 19 | fc2=>8388608, 20 | fc3=>2097152, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>46448640, 25 | conv02=>990904320, 26 | conv03=>462422016, 27 | conv04=>924844032, 28 | conv05=>462422016, 29 | conv06=>924844032, 30 | conv07=>924844032, 31 | conv08=>924844032, 32 | conv09=>465131520, 33 | conv10=>930263040, 34 | conv11=>930263040, 35 | conv12=>930263040, 36 | conv13=>232565760, 37 | conv14=>232565760, 38 | conv15=>232565760, 39 | conv16=>232565760, 40 | fc1=>51380224, 41 | fc2=>8388608, 42 | fc3=>2097152, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>46448640, 47 | conv02=>990904320, 48 | conv03=>462422016, 49 | conv04=>924844032, 50 | conv05=>462422016, 51 | conv06=>924844032, 52 | conv07=>924844032, 53 | conv08=>924844032, 54 | conv09=>465131520, 55 | conv10=>930263040, 56 | conv11=>930263040, 57 | conv12=>930263040, 58 | conv13=>232565760, 59 | conv14=>232565760, 60 | conv15=>232565760, 61 | conv16=>232565760, 62 | fc1=>51380224, 63 | fc2=>8388608, 64 | fc3=>2097152, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>46448640, 69 | conv02=>990904320, 70 | conv03=>462422016, 71 | conv04=>924844032, 72 | conv05=>462422016, 73 | conv06=>924844032, 74 | conv07=>924844032, 75 | conv08=>924844032, 76 | conv09=>465131520, 77 | conv10=>930263040, 78 | conv11=>930263040, 79 | conv12=>930263040, 80 | conv13=>232565760, 81 | conv14=>232565760, 82 | conv15=>232565760, 83 | conv16=>232565760, 84 | fc1=>51380224, 85 | fc2=>8388608, 86 | fc3=>2097152, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>46448640, 91 | conv02=>990904320, 92 | conv03=>462422016, 93 | conv04=>924844032, 94 | conv05=>462422016, 95 | conv06=>924844032, 96 | conv07=>924844032, 97 | conv08=>924844032, 98 | conv09=>465131520, 99 | conv10=>930263040, 100 | conv11=>930263040, 101 | conv12=>930263040, 102 | conv13=>232565760, 103 | conv14=>232565760, 104 | conv15=>232565760, 105 | conv16=>232565760, 106 | fc1=>51380224, 107 | fc2=>8388608, 108 | fc3=>2097152, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_8_4_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>92897280, 3 | conv02=>1981808640, 4 | conv03=>924844032, 5 | conv04=>1849688064, 6 | conv05=>924844032, 7 | conv06=>1849688064, 8 | conv07=>1849688064, 9 | conv08=>1849688064, 10 | conv09=>930263040, 11 | conv10=>1860526080, 12 | conv11=>1860526080, 13 | conv12=>1860526080, 14 | conv13=>465131520, 15 | conv14=>465131520, 16 | conv15=>465131520, 17 | conv16=>465131520, 18 | fc1=>102760448, 19 | fc2=>16777216, 20 | fc3=>4194304, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>92897280, 25 | conv02=>1981808640, 26 | conv03=>924844032, 27 | conv04=>1849688064, 28 | conv05=>924844032, 29 | conv06=>1849688064, 30 | conv07=>1849688064, 31 | conv08=>1849688064, 32 | conv09=>930263040, 33 | conv10=>1860526080, 34 | conv11=>1860526080, 35 | conv12=>1860526080, 36 | conv13=>465131520, 37 | conv14=>465131520, 38 | conv15=>465131520, 39 | conv16=>465131520, 40 | fc1=>102760448, 41 | fc2=>16777216, 42 | fc3=>4194304, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>92897280, 47 | conv02=>1981808640, 48 | conv03=>924844032, 49 | conv04=>1849688064, 50 | conv05=>924844032, 51 | conv06=>1849688064, 52 | conv07=>1849688064, 53 | conv08=>1849688064, 54 | conv09=>930263040, 55 | conv10=>1860526080, 56 | conv11=>1860526080, 57 | conv12=>1860526080, 58 | conv13=>465131520, 59 | conv14=>465131520, 60 | conv15=>465131520, 61 | conv16=>465131520, 62 | fc1=>102760448, 63 | fc2=>16777216, 64 | fc3=>4194304, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>92897280, 69 | conv02=>1981808640, 70 | conv03=>924844032, 71 | conv04=>1849688064, 72 | conv05=>924844032, 73 | conv06=>1849688064, 74 | conv07=>1849688064, 75 | conv08=>1849688064, 76 | conv09=>930263040, 77 | conv10=>1860526080, 78 | conv11=>1860526080, 79 | conv12=>1860526080, 80 | conv13=>465131520, 81 | conv14=>465131520, 82 | conv15=>465131520, 83 | conv16=>465131520, 84 | fc1=>102760448, 85 | fc2=>16777216, 86 | fc3=>4194304, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>92897280, 91 | conv02=>1981808640, 92 | conv03=>924844032, 93 | conv04=>1849688064, 94 | conv05=>924844032, 95 | conv06=>1849688064, 96 | conv07=>1849688064, 97 | conv08=>1849688064, 98 | conv09=>930263040, 99 | conv10=>1860526080, 100 | conv11=>1860526080, 101 | conv12=>1860526080, 102 | conv13=>465131520, 103 | conv14=>465131520, 104 | conv15=>465131520, 105 | conv16=>465131520, 106 | fc1=>102760448, 107 | fc2=>16777216, 108 | fc3=>4194304, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /ops/vgg19_net_8_8_Ops.pl: -------------------------------------------------------------------------------- 1 | % NNops =( 2 | conv01=>185794560, 3 | conv02=>3963617280, 4 | conv03=>1849688064, 5 | conv04=>3699376128, 6 | conv05=>1849688064, 7 | conv06=>3699376128, 8 | conv07=>3699376128, 9 | conv08=>3699376128, 10 | conv09=>1860526080, 11 | conv10=>3721052160, 12 | conv11=>3721052160, 13 | conv12=>3721052160, 14 | conv13=>939294720, 15 | conv14=>939294720, 16 | conv15=>939294720, 17 | conv16=>939294720, 18 | fc1=>205520896, 19 | fc2=>33554432, 20 | fc3=>8388608, 21 | ); 22 | 1; 23 | % NNops1 =( 24 | conv01=>185794560, 25 | conv02=>3963617280, 26 | conv03=>1849688064, 27 | conv04=>3699376128, 28 | conv05=>1849688064, 29 | conv06=>3699376128, 30 | conv07=>3699376128, 31 | conv08=>3699376128, 32 | conv09=>1860526080, 33 | conv10=>3721052160, 34 | conv11=>3721052160, 35 | conv12=>3721052160, 36 | conv13=>939294720, 37 | conv14=>939294720, 38 | conv15=>939294720, 39 | conv16=>939294720, 40 | fc1=>205520896, 41 | fc2=>33554432, 42 | fc3=>8388608, 43 | ); 44 | 1; 45 | % NNops2 =( 46 | conv01=>185794560, 47 | conv02=>3963617280, 48 | conv03=>1849688064, 49 | conv04=>3699376128, 50 | conv05=>1849688064, 51 | conv06=>3699376128, 52 | conv07=>3699376128, 53 | conv08=>3699376128, 54 | conv09=>1860526080, 55 | conv10=>3721052160, 56 | conv11=>3721052160, 57 | conv12=>3721052160, 58 | conv13=>939294720, 59 | conv14=>939294720, 60 | conv15=>939294720, 61 | conv16=>939294720, 62 | fc1=>205520896, 63 | fc2=>33554432, 64 | fc3=>8388608, 65 | ); 66 | 1; 67 | % NNops3 =( 68 | conv01=>185794560, 69 | conv02=>3963617280, 70 | conv03=>1849688064, 71 | conv04=>3699376128, 72 | conv05=>1849688064, 73 | conv06=>3699376128, 74 | conv07=>3699376128, 75 | conv08=>3699376128, 76 | conv09=>1860526080, 77 | conv10=>3721052160, 78 | conv11=>3721052160, 79 | conv12=>3721052160, 80 | conv13=>939294720, 81 | conv14=>939294720, 82 | conv15=>939294720, 83 | conv16=>939294720, 84 | fc1=>205520896, 85 | fc2=>33554432, 86 | fc3=>8388608, 87 | ); 88 | 1; 89 | % NNops4 =( 90 | conv01=>185794560, 91 | conv02=>3963617280, 92 | conv03=>1849688064, 93 | conv04=>3699376128, 94 | conv05=>1849688064, 95 | conv06=>3699376128, 96 | conv07=>3699376128, 97 | conv08=>3699376128, 98 | conv09=>1860526080, 99 | conv10=>3721052160, 100 | conv11=>3721052160, 101 | conv12=>3721052160, 102 | conv13=>939294720, 103 | conv14=>939294720, 104 | conv15=>939294720, 105 | conv16=>939294720, 106 | fc1=>205520896, 107 | fc2=>33554432, 108 | fc3=>8388608, 109 | ); 110 | 1; 111 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | zsim_path=$ZSIMPATH 2 | current_dir=${PWD} 3 | 4 | zsim_path=$(echo $zsim_path | sed 's./.\\/.g') 5 | current_dir=$(echo $current_dir | sed 's./.\\/.g') 6 | 7 | mkdir -p config/tech 8 | mkdir -p config/zsim 9 | 10 | cp /scratch0/malviya/modSim/config/tech/Config_Baseline_28nm_1_8.pl config/tech/Config_Baseline_28nm_1_8.pl 11 | cp /scratch0/malviya/modSim/config/tech/Config_N3XT_28nm_3_8.pl config/tech/Config_N3XT_28nm_3_8.pl 12 | cp /scratch0/malviya/modSim/config/zsim/zsim_Baseline_8.cfg config/zsim/zsim_Baseline_8.cfg 13 | cp /scratch0/malviya/modSim/config/zsim/zsim_N3XT_8.cfg config/zsim/zsim_N3XT_8.cfg 14 | 15 | cp -r /scratch0/malviya/modSim/config/multipliers config/multipliers 16 | cp -r /scratch0/malviya/modSim/ops . 17 | cp /scratch0/malviya/modSim/Acc_results_compare_trace.pl . 18 | cp /scratch0/malviya/modSim/Acc_results_processing_silent.pl . 19 | cp /scratch0/malviya/modSim/Extract_operations.pl . 20 | cp /scratch0/malviya/modSim/Parse_all_results.pl . 21 | cp /scratch0/malviya/modSim/psim.sh . 22 | cp /scratch0/malviya/modSim/simulate_zsim.sh . 23 | 24 | sed -i "7 s/.*/ (cd \$D \&\& echo \"[Y] Running \$\{PWD##*\/\}\" \&\& ${zsim_path}\/build\/opt\/zsim ${current_dir}\/config\/zsim\/zsim_\$\{1\}_\$\{2\}\.cfg \&>\/dev\/null)/" simulate_zsim.sh 25 | 26 | sed -i "3 s/.*/network=(langmod alex_net captioning vgg19_net resnet152)/" psim.sh 27 | 28 | sed -i "4 s/.*//" psim.sh 29 | sed -i "5 s/.*/word_size=(8)/" psim.sh 30 | sed -i "6 s/.*/batch_size=(1)/" psim.sh 31 | sed -i "7 s/.*/config=(Baseline N3XT)/" psim.sh 32 | sed -i "8 s/.*//" psim.sh 33 | sed -i "18 s/.*/ path=${current_dir}\/\$i\/\$j\/\$k\/\$x/" psim.sh 34 | sed -i "20 s/.*/ bash ${current_dir}\/simulate_zsim.sh \$x \$j/" psim.sh 35 | 36 | sed -i "15 s/.*/my @config_range=(\"Baseline\",\"N3XT\");/" Parse_all_results.pl 37 | # if you get an error about an op file not existing, uncomment lines 21 thru 26 in Parse_all_results.pl and point the $schedule_directory variable to the right path 38 | 39 | sed -i "16 s/.*/my \$Config_BaseDir=\"${current_dir}\/config\/tech\"; #TODO: Fill with the correct path/" Acc_results_compare_trace.pl 40 | sed -i "17 s/.*/my @arch=(\"Baseline\",\"N3XT\");/" Acc_results_compare_trace.pl 41 | sed -i "18 s/.*/my @Freq=(1,3); #TODO: Feed them as inputs later/" Acc_results_compare_trace.pl 42 | sed -i "19 s/.*/my \$availtypes=2;/" Acc_results_compare_trace.pl 43 | sed -i "23 s/.*/my @Summary=([0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]);/" Acc_results_compare_trace.pl 44 | 45 | mkdir -p alex_net/8/1/ 46 | cp -r /scratch0/malviya/modSim/alex_net/8/1/Baseline alex_net/8/1 47 | cp -r alex_net/8/1/Baseline alex_net/8/1/N3XT 48 | 49 | mkdir -p langmod/8/1/ 50 | cp -r /scratch0/malviya/modSim/langmod/8/1/Baseline langmod/8/1 51 | cp -r langmod/8/1/Baseline langmod/8/1/N3XT 52 | 53 | mkdir -p captioning/8/1/ 54 | cp -r /scratch0/malviya/modSim/captioning/8/1/Baseline captioning/8/1 55 | cp -r captioning/8/1/Baseline captioning/8/1/N3XT 56 | 57 | mkdir -p vgg19_net/8/1/ 58 | cp -r /scratch0/malviya/modSim/vgg19_net/8/1/Baseline vgg19_net/8/1 59 | cp -r vgg19_net/8/1/Baseline vgg19_net/8/1/N3XT 60 | 61 | mkdir -p resnet152/8/1/ 62 | cp -r /scratch0/malviya/modSim/resnet152/8/1/Baseline resnet152/8/1 63 | cp -r resnet152/8/1/Baseline resnet152/8/1/N3XT 64 | 65 | #./psim.sh 66 | 67 | #./Parse_all_results.pl alex_net 1 68 | #./Parse_all_results.pl resnet152 1 69 | #./Parse_all_results.pl vgg19_net 1 70 | #./Parse_all_results.pl langmod 3 71 | #./Parse_all_results.pl captioning 3 72 | -------------------------------------------------------------------------------- /simulate_zsim.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | # Make zsim dependency libraries visible to zsim 4 | export LD_LIBRARY_PATH='/rsgs/pool0/bartolo/TSMC/proto/lib:/rsgs/pool0/bartolo/TSMC/hdf5/usr/lib64' 5 | export HDF5_DISABLE_VERSION_CHECK=1 6 | 7 | echo "Simulating: ${PWD##*/}" 8 | 9 | for D in $PWD/*; 10 | do 11 | #(cd $D && echo "[Y] Running ${PWD##*/}" && /pool0/bartolo/TSMC/ORNL-zsim-logic/build/opt/zsim /rsghome/mattlkf/pool/tsmc_eric/nov27_alexnet_vgg_table/sim/config/zsim/zsim_${1}_${2}.cfg &>/dev/null) 12 | (cd $D && echo "[Y] Running ${PWD##*/}" && /pool0/bartolo/TSMC/ORNL-zsim-logic/build/opt/zsim /rsgs/pool0/bartolo/TSMC/sim-auto/config/zsim/zsim_${1}_${2}.cfg &>/dev/null) 13 | #exit 14 | done 15 | 16 | echo "Simulation Finished" 17 | -------------------------------------------------------------------------------- /template.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from util import * 4 | 5 | # Simple template/macro library. 6 | # Anything between ! signs, e.g. !KEYWORD!, gets replaced with simple 7 | # substitution. 8 | # 9 | # Anything between double !! signs, e.g. !!KEYWORD!!, gets expanded with the 10 | # text generator callback function supplied for KEYWORD. 11 | 12 | DELIM_CHAR = '!' 13 | 14 | 15 | def fillTemplate(srcFileName, destFileName, subsMap, callbackMap=None): 16 | destChars = [] 17 | 18 | with open(srcFileName, 'r') as src: 19 | data = src.read() 20 | i = 0 21 | while (i < len(data)): 22 | char = data[i] 23 | if char == DELIM_CHAR: 24 | if data[i+1] == DELIM_CHAR: # double delim; do callback expansion 25 | if callbackMap == None: 26 | die("ERROR: requested callback expansion, but no callbacks supplied.") 27 | 28 | endDelimIdx = data.index(DELIM_CHAR, i+2) 29 | callbackName = data[i+2:endDelimIdx] 30 | destChars.append(callbackMap[callbackName]()) 31 | 32 | i += 2 + len(callbackName) + 2 33 | 34 | else: # single delim; do simple substitution 35 | if subsMap == None: 36 | die("ERROR: requested variable expansion, but no variables supplied.") 37 | 38 | endDelimIdx = data.index(DELIM_CHAR, i+1) 39 | varName = data[i+1:endDelimIdx] 40 | destChars.append(subsMap[varName]) 41 | 42 | i += 1 + len(varName) + 1 43 | 44 | else: # just a regular character 45 | destChars.append(char) 46 | 47 | i += 1 48 | 49 | with open(destFileName, 'w') as dest: 50 | dest.write(''.join(destChars)) 51 | -------------------------------------------------------------------------------- /util.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import subprocess 3 | import sys, os 4 | 5 | 6 | def warn(msg): 7 | print('\033[1;33m' + str(msg) + '\033[0;0m') 8 | 9 | def die(msg): 10 | print('\033[1;31m' + str(msg) + '\033[0;0m') 11 | sys.exit(1) 12 | 13 | # Synchronously runs a command on the local system, and returns a list of lines that that command sent to STDOUT. 14 | def run_cmd(cmd, cwd=None): 15 | lines = [] 16 | if sys.version_info >= (2,7): 17 | lines = str(subprocess.check_output(cmd, shell=True, cwd=cwd), 'utf-8').split('\n') 18 | else: 19 | lines = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, cwd=cwd).communicate()[0] 20 | lines = lines.split('\n') 21 | 22 | return list(filter(lambda l: l != '', lines)) 23 | 24 | # Takes in a directory, and makes a copy of it by copying the directory 25 | # structure, but hardlinking the non-directory contents instead of copying them. 26 | # TODO: use symlinks (cp -as?) instead? (might be faster?) 27 | def linkclone_dir(srcDir, destDir): 28 | run_cmd('cp -al %s %s' % (srcDir, destDir)) 29 | 30 | # print with no newline 31 | def print_nobr(msg): 32 | sys.stdout.write(msg) 33 | sys.stdout.flush() 34 | --------------------------------------------------------------------------------