以下是針對信件的回覆:
1.” 理論上,若沒有加上GCC -O option,則內定應該是-O1 or -O2。所以a應該與-O1 or -O2的結果相同,這部分可以測試一下。”
→實測 gcc 沒有加上 -O 的話是預設 -O0,然後下圖是 -O1 、 -O2、 -O3 的執行時間差異。由下圖可得知,-O2 和 -O3 有相似的執行結果。

2.”GCC -O3會enable auto-vectorization,可以檢視一下產生的instruction,是否真的有RVV instruction;或透過inline assembly,看看banana pi 是否真的可以執行RVV instruction。”
→下圖為確認 RVV asm的結果,確定有使用到 vector 操作。

3. ”使用time量測時間,也是同樣的結果嗎? 感覺似乎沒有enable RVV,看可否由Banana Pi的網站上獲得一些成功執行RVV program的訊息。”
→上週五報告的執行圖片我們沒解釋清楚 ,gcc -01 test.c -o test -march=rv6 gcv -mabi=lp64d 這段指令的執行結果顯示:
matmul_golden(原版矩陣乘法)執行時間約9.7秒,matmul_1d(rvv版矩陣乘法)的執行時間約2.4秒,有近四倍的加速,配合上圖的組合語言,推測有成功用到RVV。
