Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

ARM Cortex-A55 Fast Model & ARM DS-5 Stream



Cortex-A55でMNIST用のディープラーニングを実施。

実機ではなく、Arm Fast Modelを使っているところが味噌。

おまけに、ARM DS-5のStreamlineを使って、CPUコアがどんな感じに動いているのかを視覚化。

おまけに、コンパイラオプションを、O1からO3に変えて、高速およびコードサイズを小さくしています。


そこまでで終わらずに、Convolutionを変えてみて、さらに、Load/Storeを少なくすることで高速化。。。

引用
            Execution Time (instr)  NN code size (byte)	 Convolution function usage  CPU Load/Store
   O1	          13146K           	 49K	              96.7%                    1187 / 547
   O3	           7166K	         31K                  86.99%	                608 / 224
   O3 w/conv2	   3952K	         28K                  77.16%                    250 / 76

そして、NN Accelerator にすると、

引用
            Execution Time (instr)  NN code size (byte)	 Convolution function usage  CPU Load/Store
   O1	          13146K           	 49K	              96.70%                    1187 / 547
   O3	           7166K	         31K                  86.99%	                 608 / 224
   O3 w/conv2	   3952K	         28K                  77.16%                     250 /  76
   O3 w/NNacc 	    850k                 24K                  50.00%                     106 /  23

になり、最初から実行時間では、1桁以上速くなり、コードサイズも半分に。。。

いやー、凄いわ。。。これが、チューニングだよね。。。ompiled_code M0コード生成は、ここだよ]。