본문으로 건너뛰기

모델 호환성

SiMa.ai 컴파일 도구 체인은 ONNX 모델을 가져오고, 머신 러닝 가속기(MLA)를 위한 연산자를 준비합니다. Modalix를 위한 모델을 준비하기 전에, 이 페이지를 사용하여 연산자 지원 여부를 확인하십시오.

지원 운영체제

운영자와 정밀도 스킴별 MLA 컴파일러 지원 여부를 확인하기 위해 표를 검색합니다. INT8는 MLA에서 실행됩니다. BF16는 Modalix (개발자 프리뷰)에서 사용 가능합니다. 5D는 5D (N, D, H, W, C) 텐서를 수용하는 운영자를 나타냅니다. 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로 유지합니다. 커널 크기는 각 공간 차원에서 128보다 작아야 하며, 전역 풀링에는 크기 제한이 없습니다.
  • BatchNorm — 추론 모드로 내보냅니다. 훈련 모드는 지원되지 않습니다.
  • Concat — 배치 축을 따라 연결은 지원되지 않습니다.
  • Convdilations 값은 1에서 63 사이여야 하고, strides 값은 1에서 31 사이여야 합니다.
  • ConvTransposedilations 값을 1로 유지합니다. 연산자는 depthwise 연산이어야 하거나 group=1를 사용해야 합니다. 스트라이드는 1, 2, 4, 8, 16 또는 depthwise 연산의 경우 1 또는 2여야 합니다.
  • CumSum — 앞 방향으로만 합계를 계산하며, 정확히 하나의 축을 따라 계산하고, 그 축은 상수여야 합니다. 축의 길이는 최대 257개의 요소까지 가능합니다.
  • Div — 입력 값은 동일한 형태를 가져야 하며, 하나는 스칼라 형태여야 하거나, 둘 다 브로드캐스팅이 가능해야 합니다.
  • Einsum — 정확히 두 개의 입력 텐서를 사용합니다. 방정식 내의 모든 인덱스가 최소 두 개의 항에 나타나야 하며, 단 하나의 항 내에는 한 번만 나타날 수 있습니다. 예를 들어, jk,k->k는 지원되지 않습니다. 왜냐하면 j가 단 하나의 항에만 나타나고, jk,kk->jk가 동일한 항 내에 두 번 나타나기 때문입니다.
  • 수집indices는 상수여야 하며, 스칼라 또는 1차원 텐서여야 합니다.
  • Gelu — 정확한 공식만 지원됩니다. approximate="none"를 설정해주세요.
  • GridSamplemodelinear로 설정하고, padding_mode="reflection"을 사용하지 마십시오. 샘플링은 가로 축 방향으로만 지원됩니다.
  • InstanceNorm — 4D 및 5D 텐서에만 지원됩니다.
  • 레이어 정규화stash_type=10 (FLOAT16)는 지원되지 않습니다. 기본값으로 유지하십시오.
  • Lp정규화 — 단 하나 p=2, L2 정규화도 지원됩니다. p=1 그렇지 않습니다.
  • MaxPool: dilations 값을 1로 유지하고, 선택적인 인덱스 출력을 요청하지 마십시오. 커널 크기는 각 공간 차원에서 128 미만이어야 합니다. 전역 풀링에는 크기 제한이 없습니다.
  • Mul — 입력 값은 동일한 형태를 가져야 하며, 하나는 스칼라 형태여야 하거나, 둘 다 브로드캐스팅이 가능해야 합니다.
  • 패딩: constant 모드에서만 패딩 값을 0으로 지정할 수 있으며, 최대 두 개의 차원만 비어 있지 않은 패딩 너비를 가질 수 있습니다.
  • Pow — 지수는 0.5, -0.5, 2, 또는 3의 상수 스칼라여야 합니다.
  • PRelu — 알파 기울기 입력은 1차원 텐서여야 합니다.
  • 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" 및 바운딩(floor) 연산을 사용합니다. 단 하나의 입력 텐서만 지원됩니다.
  • RMSNormstash_type=10 (FLOAT16)는 지원되지 않습니다. 기본값으로 두는 것이 좋습니다.
  • 슬라이싱 — 단계는 양수여야 합니다. 음수 스트라이드는 지원되지 않습니다.
  • 소프트맥스 — 채널 축 방향만 지원.
  • Sub — 입력 값은 동일한 형태를 가져야 하며, 하나는 스칼라 형태여야 하거나, 둘 다 브로드캐스팅이 가능해야 합니다.
  • 초기화 — 인덱스는 상수여야 하며, 스칼라 또는 1차원 텐서여야 합니다.
  • 전치 — 배치 축을 이동하는 순열은 지원되지 않습니다.
  • 변동성 — 모든 공간 차원에 대해 계산됨.