官术网_书友最值得收藏!

1.7 本章小結

本章嘗試使用不同的方法對兩個4096×4096矩陣的乘法進行性能優化。為了方便對比各個版本程序的性能,我們以性能最差的Python語言實現版本作為基線(baseline),計算各個版本程序性能的絕對加速比(absolute speedup),公式如下:

同時,計算每個版本的性能相對于前一個版本的性能所獲得的相對加速比(relative speedup),公式如下:

此外,計算各個實現版本的每秒十億次浮點運算次數(Giga Floating Point Operations Per Second,GFLOPS)作為算力比較的一部分。在4096×4096矩陣乘法中,以Python語言實現為例,總運算量包括一個三重循環的計算,且最內層的每次循環都需要進行浮點數的一次乘法和一次加法的運算,總運算量約為2×(2123=237次浮點運算。因此,可以用來計算各個版本的GFLOPS。

綜上,各個實現版本的運行結果如表1.8所示。從結果可以看到,最終的優化代碼1.9相比最早的實現代碼1.1,性能提升了50 064倍。這充分說明了普通程序員編寫的程序和深入理解軟件系統優化的專家編寫的程序之間存在巨大的性能差距,也說明了學習軟件系統優化相關知識的必要性。

表1.8 矩陣乘法各實現版本的性能優化結果

主站蜘蛛池模板: 正镶白旗| 赤壁市| 定襄县| 油尖旺区| 上蔡县| 宜兰县| 凉城县| 樟树市| 静安区| 开封县| 资溪县| 台前县| 祁东县| 托克逊县| 闽侯县| 邳州市| 准格尔旗| 咸丰县| 始兴县| 株洲市| 乐平市| 鄂托克前旗| 云林县| 呈贡县| 醴陵市| 安岳县| 宜阳县| 白城市| 甘谷县| 永善县| 陈巴尔虎旗| 比如县| 大悟县| 临西县| 朔州市| 冕宁县| 长海县| 宜州市| 长白| 南平市| 卢氏县|