向量指令的型別有哪些?


向量是一組標量資料元素的集合,所有元素型別相似,儲存在記憶體中。向量元素是有序的,相鄰元素之間具有固定的地址增量,稱為步長。

向量處理器是一組硬體資源的集合,例如向量暫存器、功能流水線、處理單元和暫存器計數器,用於執行向量運算。

當算術或邏輯運算用於向量時,就會出現向量處理。它與標量處理不同,標量處理操作一個或一對資料。從標量程式碼到向量程式碼的轉換稱為向量化。

向量指令的型別

存在各種型別的向量指令,如下所示:

  • **向量-向量指令** - 從指定的向量暫存器中提取一個或兩個向量運算元,透過功能流水線單元引入,並將結果儲存到另一個向量暫存器中。這些指令由以下兩個對映定義:

    f1 : vi → vj

    f2: vj x vk → vi

    **示例** - $V\:=\sin(v_{2})$ 和 v3 = v1 + v2 分別對應對映 f1 和 f2,其中對於 i = 1, 2, 3,V 為向量暫存器。

  • **向量-標量指令** - 如圖所示,它顯示了一個向量-標量指令,對應於以下對映:

    f3: s x vi → vj

    一個例子是標量積 s x v1 = v2,其中 V 的元素分別乘以標量 s 以產生長度相等的向量 v2

  • **向量-記憶體指令** - 這對應於向量載入或向量儲存元素,在向量暫存器 (V) 和記憶體 (M) 之間,如下所示:

    f4: M → V 向量載入

    f5: V → M 向量儲存

  • **向量歸約指令** - 這些指令對應於以下對映:

    f6: vi → sj

    f7: vi x vj → sk

  • **收集和散射指令** - 這些指令使用兩個向量暫存器來隨機收集或散射記憶體中的向量元素,對應於以下對映:

    a: M → v1 x v0 收集

    fa: v1 x v0 → M 散射

    **收集**是一種操作,它使用自身被索引的索引來從記憶體中獲取稀疏向量的非零元素。

    **散射**則相反,將向量儲存到稀疏向量中,其非零項被索引。向量暫存器包含資料,向量暫存器用作索引,分別從隨機記憶體位置收集或散射資料。

  • **掩碼指令** - 在掩碼指令中,它使用掩碼向量來分別將向量包裝或擴充套件到更短或更長的索引向量,相當於以下對映:

    f10: v0 x vm → v1

更新於:2021年7月30日

4K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.