高阶API迁移指导
Ascend C高阶API基本兼容351x架构与220x架构,部分API进行了扩展。当前351x架构不支持卷积计算类高阶API。
Matmul类高阶API
- 支持的数据类型有变化。
表1 数据类型兼容性情况 A矩阵
B矩阵
Bias矩阵
C矩阵
说明
int4b_t
int4b_t
int32_t
int32_t、half
351x架构不支持。
fp8_e4m3fn_t、fp8_e5m2_t
fp8_e4m3fn_t、fp8_e5m2_t
float、half、bfloat16_t
fp8_e4m3fn_t、half、bfloat16_t、float
351x架构新增。
hifloat8_t
hifloat8_t
float、half、bfloat16_t
hifloat8_t、half、bfloat16_t、float
351x架构新增。
float
float
bfloat16_t
float、half、bfloat16_t
351x架构新增。
bfloat16_t
bfloat16_t
bfloat16_t
float、half、bfloat16_t
351x架构新增。
half
half
bfloat16_t
float、half、bfloat16_t
351x架构新增。
int8_t
int8_t
int32_t
bfloat16_t
351x架构新增。
- 不支持4:2稀疏特性。具体兼容方案请参考4:2结构化稀疏功能。
其它高阶API
AscendC 高阶API |
兼容说明 |
|---|---|
Tanh、Asin、Sin、Acos、Cos、Log、Atan、Fmod |
兼容220x架构。 扩展支持算法配置,通过模板参数配置API使用的算法,从而提供高精度、高性能的算法选择。 |
Sinh、Cosh、Tan、Trunc、Frac、Erf、Erfc、Atanh、Asinh、 Acosh、Floor、Ceil、Round、Axpy、Exp、Lgamma、Digamma、Xor、Cumsum |
兼容220x架构。 |
Power |
兼容220x架构。 扩展支持uint8_t、int8_t、uint16_t、int16_t、uint32_t、bfloat16_t数据类型。 |
Sign |
兼容220x架构。 扩展支持int64_t数据类型。 |
AscendC 高阶API |
兼容说明 |
|---|---|
SoftMax、SimpleSoftMax、SoftmaxFlash、SoftmaxGrad、SoftmaxFlashV2、SoftmaxFlashV3、SoftmaxGradFront、AdjustSoftMaxRes、LogSoftMax、FasterGelu、FasterGeluV2、Gelu、SwiGLU、Silu、Swish、GeGLU、ReFlu、Sigmoid |
兼容220x架构。 |
AscendC 高阶API |
兼容说明 |
|---|---|
LayerNormGrad、LayerNormGradBeta、RmsNorm、BatchNorm、DeepNorm、GroupNorm |
兼容220x架构。 |
Normalize、WelfordUpdate |
兼容220x架构。 扩展支持bfloat16_t数据类型。 |
LayerNorm |
兼容220x架构。 扩展支持求方差。 |
WelfordFinalize |
兼容220x架构。 扩展支持算法配置,通过模板参数指定在计算方差时是否使用修正系数。 |
AscendC 高阶API |
兼容说明 |
|---|---|
AscendQuant |
兼容220x架构。 扩展支持PRE_TOKEN量化、PRE_GROUP量化。 扩展支持从half、bfloat16_t、float类型到fp8_e5m2_t、fp8_e4m3fn_t、hifloat8_t、int8_t类型的量化。 扩展支持从half、bfloat16_t类型到fp4x2_e1m2_t、fp4x2_e2m1_t类型的量化。 |
AscendDequant |
兼容220x架构。 扩展支持PRE_TOKEN量化、PRE_GROUP量化。 扩展支持从int32_t类型到half、bfloat16_t、float类型反量化。 扩展支持从float类型到half、bfloat16_t、float类型的反量化。 |
AscendAntiQuant |
兼容220x架构。 扩展支持PRE_TOKEN量化、PRE_GROUP量化。 扩展支持从int8_t、hifloat8_t、fp8_e5m2_t、fp8_e4m3fn_t类型到half、bfloat16_t、float、half类型的伪量化。 扩展支持从fp4x2_e1m2_t、fp4x2_e2m1_t类型到half、bfloat16_t类型的伪量化。 |
AscendC 高阶API |
兼容说明 |
|---|---|
Sum、Mean、ReduceXorSum、ReduceMean、ReduceAny、ReduceAll、ReduceProd |
兼容220x架构。 |
ReduceSum |
兼容220x架构。 扩展支持int32_t、uint32_t、int64_t、uint64_t数据类型。 |
ReduceMax、ReduceMin |
兼容220x架构。 扩展支持int8_t、uint8_t、int16_t、uint16_t、bfloat16_t、int32_t、uint32_t、int64_t、uint64_t数据类型。 |
AscendC 高阶API |
兼容说明 |
|---|---|
Concat、Extract、GetSortOffset、GetSortLen、MrgSort |
兼容220x架构。 |
TopK |
兼容220x架构。 使用RADIX_SELECT算法时,扩展支持uint8_t、int8_t、uint16_t、int16_t、uint32_t、int32_t、bfloat16_t、uint64_t、int64_t数据类型。 |
Sort |
兼容220x架构。 扩展支持算法配置,通过模板参数指定排序算法以及降序升序排序。 |
AscendC 高阶API |
兼容说明 |
|---|---|
Arange |
兼容220x架构。 扩展支持int64_t数据类型。 |
AscendC 高阶API |
兼容说明 |
|---|---|
Select |
兼容220x架构。 |
DropOut |
兼容220x架构。 扩展支持bfloat16_t数据类型。 |
AscendC 高阶API |
兼容说明 |
|---|---|
Transpose |
兼容220x架构。 新增支持数据排布转换场景:
|
TransData、Pad、UnPad |
兼容220x架构。 |
BroadCast |
兼容220x架构。 扩展支持动态Shape。 扩展支持int16_t、uint16_t、bfloat16_t、int32_t、uint32_t数据类型。 |
Fill |
兼容220x架构。 扩展支持uint8_t、int8_t、bfloat16_t、uint64_t、int64_t数据类型。 |
AscendC 高阶API |
兼容说明 |
|---|---|
Hccl模板参数 |
支持HCCL_SERVER_TYPE_CCU服务端类型。 |
InitV2、SetCcTilingV2、AllReduce、AllGather、ReduceScatter、AlltoAll、AlltoAllV、Commit、Wait、Finalize |
兼容220x架构。 |
BatchWrite、iterate、Query、InterHcclGroupSync、GetWindowsInAddr、GetWindowsOutAddr、GetRankId、GetRankDim、QueueBarrier、GetQueueNum |
351x架构暂不支持。 |
SetReduceType、AlltoAllvWrite |
351x架构新增。 |