跳至主要内容

模型相容性

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
Add✅✅—14
ArgMax✅✅—13
AveragePool✅✅—11
BatchNorm———15
BroadcastTo✅✅✅—
Clip✅✅—13
Concat✅✅✅13
Conv✅✅✅11
ConvTranspose✅✅✅11
CumSum———14
DepthToSpace✅✅—13
Div✅——14
Einsum✅✅—12
Elu✅——6
Erf✅✅—13
Exp✅——13
Gather❌✅—13
Gelu✅——20
GlobalAveragePool✅✅——
GlobalMaxPool✅✅——
GridSample—✅—16
HardSigmoid✅——6
HardSwish✅——14
InstanceNorm✅✅✅6
LayerNorm✅✅—17
LeakyRelu✅——16
Log✅——13
Log10✅———
Log2✅———
LpNormalization✅✅—22
LRN✅——13
MatMul✅✅—13
MaxPool✅✅—12
Mul✅✅—14
Pad✅✅—13
Pow✅✅✅15
PRelu✅✅—16
QuickGelu✅✅✅—
Reciprocal✅——13
ReduceL2✅✅—18
ReduceMax✅✅—13
ReduceMean✅——13
ReduceMin❌❌—13
ReduceSum✅✅—13
Relu✅✅—14
Reshape✅✅✅14
Resize✅✅—13
RMSNorm✅✅—23
Rsqrt✅———
Sigmoid✅✅—13
Slice✅✅—13
Softmax✅✅—13
Softplus✅——1
SpaceToDepth✅✅—13
Split✅✅—13
Sqrt✅——13
Sub✅✅—14
Swish✅✅—24
Take✅✅——
Tanh✅——13
Transpose✅✅—13
Variance✅✅✅—

限制​

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

  • 加法 — 輸入必須具有相同的形狀,其中一個輸入必須為單一值,或兩個輸入可以進行廣播。
  • ArgMax — 僅沿通道軸方向縮小,並返回 int32,而不是 int64,這與 ONNX 規格不同。 請下游使用者根據此進行調整。
  • 平均池 — 設定 count_include_pad=True 並且,請留下 dilations 在 1. 每個空間維度下,Kernel 尺寸必須小於 128;全局池化沒有尺寸限制。
  • BatchNorm — 僅支援運算模式,不支援訓練模式。
  • Concat — 沿批次軸的連結功能不受支援。
  • Conv — dilations 必須介於 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。
  • LayerNorm — stash_type=10 (FLOAT16) 暫時無法支援。請維持預設設定。
  • LpNormalization — 僅支援 L2 範,p=2。p=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,並提供一個非空的目標形狀。
  • 縮放 — 僅支援 nearest 和 linear 兩種模式,coordinate_transformation_mode="tf_crop_and_resize" 模式則不支援。 使用 linear 時,任何縮放係數皆可,但若使用 INT8 格式,係數超過 63 可能會影響準確度。 使用 nearest 時,縮放係數必須為 2 的次方,或以相同的比例應用於兩維度,並搭配 coordinate_transformation_mode="half_pixel" 和向下取整。 僅支援單一輸入張量。
  • RMSNorm — stash_type=10 (FLOAT16) 尚不受支援。請維持預設值。
  • 切片 — 步驟必須為正數。負數步長不受支援。
  • Softmax — 僅支援在通道軸上。
  • Sub — 輸入必須具有相同的形狀,其中一個輸入必須為單一值,或兩個可以廣播。
  • 取樣 — 索引必須為常數,且必須為一個數值或一維張量。
  • 轉置 — 不支援移動批次軸的排列。
  • 變異度 — 計算在所有空間維度上。