純紀錄從0到有的學習順序
第一階段:Vector 基礎觀念
- 為什麼需要 Vector Extension?
- 傳統 SIMD vs. Vector ISA 的差異
- RVV 相較於其他架構(如 AVX, NEON)有何優勢
- Vector 寬度與 VLEN(Vector Register Length)
- 註冊檔長度、可變寬度向量的彈性
- 基本術語解釋:
- vtype, vl, vlenb, lmul, sew, vmask
第二階段:Vector 設定與狀態控制
- vsetvli 指令
- 設定 vl(vector length)與 vtype
- 動態調整向量長度與資料型態
- vtype 解碼:SEW、LMUL 與 tail policy
- 設定 element 寬度與向量長度乘數
- tail agnostic vs. tail undisturbed 行為
- 向量 mask 機制
- vmask 的啟用、遮罩條件運算
第三階段:基本向量指令類型
- 載入與儲存(Load/Store)
- vlse.v, vsse.v, vle.v, vse.v
- 算術與邏輯(ALU)
- vadd.vv, vmul.vx, vsub.vi 等指令
- 壓縮與展開(Compress/Expand)
- vcompress, vmerge, vslide
第四階段:進階應用與效能議題
- Reduction / Widening / Narrowing
- 向量加總、寬縮運算應用
- Segment Load/Store
- 一次讀寫多筆資料結構,支援 struct-like 資料格式
- Predication / Masking / Conditional Execution
- 複雜控制流下的向量運算
第五階段:實務與驗證
- 組合語言範例分析
- 向量化簡單迴圈:如 for(i=0;i<n;++i) a[i] += b[i]
- 與 scalar 程式碼對照:比較效能與語意

發表留言