跳至主要内容

模型相容性

SiMa.ai 編譯工具鏈可以導入 ONNX 類型的模型,並為機器學習加速器 (MLA) 準備運算子。 請使用此頁面來檢查運算子是否支援,以便您為 Modalix 準備模型。

支援的運算子

搜尋表格以查看運算子和精確度方案的 MLA 支援情況。 INT8 支援 MLA。 BF16 則可在 Modalix 上使用(開發者預覽版)。 5D 標示支援 5D (N, D, H, W, C) tensors 的運算子。 Opset 是 ONNX 的 opset 版本。 搜尋結果會同時搜尋限制文字和運算子名稱,每個運算子都會連結到 onnx.ai 上的參考資料。

62 of 62 operators
Add14
ArgMax13
AveragePool11
BatchNorm15
BroadcastTo
Clip13
Concat13
Conv11
ConvTranspose11
CumSum14
DepthToSpace13
Div14
Einsum12
Elu6
Erf13
Exp13
Gather13
Gelu20
GlobalAveragePool
GlobalMaxPool
GridSample16
HardSigmoid6
HardSwish14
InstanceNorm6
LayerNorm17
LeakyRelu16
Log13
Log10
Log2
LpNormalization22
LRN13
MatMul13
MaxPool12
Mul14
Pad13
Pow15
PRelu16
QuickGelu
Reciprocal13
ReduceL218
ReduceMax13
ReduceMean13
ReduceMin13
ReduceSum13
Relu14
Reshape14
Resize13
RMSNorm23
Rsqrt
Sigmoid13
Slice13
Softmax13
Softplus1
SpaceToDepth13
Split13
Sqrt13
Sub14
Swish24
Take
Tanh13
Transpose13
Variance

限制

以下運算子有以下限制。未在此處列出的運算子沒有額外限制。如果限制指定一個 ONNX 屬性,請在匯出模型時設定該屬性。

  • 加法 — 輸入必須具有相同的形狀,其中一個輸入必須為單一值,或兩個輸入可以進行廣播。
  • ArgMax — 僅沿通道軸方向縮小,並返回 int32,而不是 int64,這與 ONNX 規格不同。 請下游使用者根據此進行調整。
  • 平均池 — 設定 count_include_pad=True 並且,請留下 dilations 在 1. 每個空間維度下,Kernel 尺寸必須小於 128;全局池化沒有尺寸限制。
  • BatchNorm — 僅支援運算模式,不支援訓練模式。
  • Concat — 沿批次軸的連結功能不受支援。
  • Convdilations 必須介於 1 和 63 之間, strides 介於 1 到 31 之間。
  • ConvTranspose — 請將 dilations 設為 1。這個運算子必須是深度別的,或使用 group=1。步幅必須為 1、2、4、8、16,或在深度別的情況下為 1 或 2。
  • CumSum — 僅沿著一個軸向進行求和,且該軸向必須是常數。該軸向的長度最多為 257 個元素。
  • Div — 輸入必須具有相同的形狀,其中一個輸入必須為單一值,或兩個輸入可以進行廣播。
  • Einsum — 接受兩個輸入的張量。 每個方程式中的索引必須至少在兩個詞語中出現,且在任何單一詞語中最多出現一次。 例如,jk,k->k 不支援,因為 j 僅出現在一個詞語中,而 jk,kk->j 不支援,因為 k 在同一個詞語中出現兩次。
  • 收集indices 必須是一個常數,且必須是單一數值或一維張量。
  • Gelu — 僅支援完全相同的公式。請設定 approximate="none".
  • GridSample — 將 mode 設定為 linear,且不得使用 padding_mode="reflection"。 僅支援在寬度軸上進行採樣。
  • InstanceNorm — 僅支援 4D 和 5D tensor。
  • LayerNormstash_type=10 (FLOAT16) 暫時無法支援。請維持預設設定。
  • LpNormalization — 僅支援 L2 範,p=2p=1則不受支援。
  • MaxPool — 保持 dilations 的值為 1,且不要要求輸出額外的索引。 卷積核的大小必須小於每個空間維度 128;全局池化沒有大小限制。
  • Mul — 輸入必須具有相同的形狀,其中一個輸入必須為單一值,或兩個可以廣播。
  • 填充 — 僅支援具有填充值為 0 的 constant 模式,且最多只能有兩個維度具有非零的填充寬度。
  • Pow — 指數必須是常數,且值必須為 0.5、-0.5、2 或 3。
  • PRelu — α 傾斜輸入必須為一維張量。
  • ReduceL2 — 僅能作為 L2 歸一化的部分使用:必須接著使用 Div,以便將它們合併。單獨使用 ReduceL2 不支援。
  • ReduceMean — 當在單一軸上進行縮小時,該軸必須是空間軸。在所有空間軸上進行縮小沒有大小限制;否則,每個空間軸必須小於 128 個元素。
  • ReduceMin — 目前尚未支援。
  • ReduceSum — 當在單一軸上進行縮減時,該軸必須是空間軸。 在所有空間軸上進行縮減沒有大小限制;否則,每個空間軸必須小於 128 個元素。
  • 重新塑形 — 將 allowzero 設定為 0,並提供一個非空的目標形狀。
  • 縮放 — 僅支援 nearestlinear 兩種模式,coordinate_transformation_mode="tf_crop_and_resize" 模式則不支援。 使用 linear 時,任何縮放係數皆可,但若使用 INT8 格式,係數超過 63 可能會影響準確度。 使用 nearest 時,縮放係數必須為 2 的次方,或以相同的比例應用於兩維度,並搭配 coordinate_transformation_mode="half_pixel" 和向下取整。 僅支援單一輸入張量。
  • RMSNormstash_type=10 (FLOAT16) 尚不受支援。請維持預設值。
  • 切片 — 步驟必須為正數。負數步長不受支援。
  • Softmax — 僅支援在通道軸上。
  • Sub — 輸入必須具有相同的形狀,其中一個輸入必須為單一值,或兩個可以廣播。
  • 取樣 — 索引必須為常數,且必須為一個數值或一維張量。
  • 轉置 — 不支援移動批次軸的排列。
  • 變異度 — 計算在所有空間維度上。