---
title: 220x到351x架构变更
description: "351x架构图如图1所示，总体来看，351x架构新增了以下特性："
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/Ascendcopdevg/atlas_ascendc_compatibility_10_00003.html
sourcePath: /source/zh/canncommercial/900/programug/Ascendcopdevg/atlas_ascendc_compatibility_10_00003.html
indexId: bfd8cbbf4cc460cd4666695987000f5198fda400264a8f7783140c972770dcb295
---
# 220x到351x架构变更

351x架构图如图1所示，总体来看，351x架构新增了以下特性：

- 新增多条数据通路。
- AI Core核数增加。
- UB容量提升。
- 新增SSBuffer核内存储单元，支持AIC核和AIV核通过Scalar访问。
- SIMD编程基础上，支持SIMT编程、SIMD与SIMT混合编程。
- AIV核采用Regbase架构，与220x的Membase架构相比，可以直接对芯片的Vector寄存器Register进行操作，实现更大的灵活性和更好的性能。

图1 351x架构图

具体来说，351x架构的主要变更如下各表所示。除此之外，351x架构还扩展了支持的数据类型，具体可参考数据类型介绍(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlas_ascendc_10_0019.html#ZH-CN_TOPIC_0000002562461957__section137212564579)。

- 搬运单元
**表1 搬运单元变更**

| 351x变更 | 产生的影响 | 影响的API接口 |
| --- | --- | --- |
| 删除L1 Buffer到GM的数据通路。 | 现有接口不支持从L1 Buffer直接搬运数据到GM。开发者需要在L1 Buffer分配一块空间存放单位矩阵，利用MMAD矩阵乘法计算输出到L0C Buffer，从L0C Buffer通过FixPipe将数据搬运到GM。 | DataCopy/DumpTensor |
| 删除GM到L0A Buffer、L0B Buffer的数据通路。 | 原GM到L0A Buffer和L0B Buffer的数据搬运需要拆分为两步，即从GM到L1 Buffer的数据搬运和从L1 Buffer到L0A Buffer、L0B Buffer的数据搬运。 | LoadData |
| 新增UB到L1 Buffer的数据通路。 | 支持将数据直接从UB搬运到L1 Buffer，而无需先从UB搬运到GM，再从GM搬运到L1 Buffer，使用方式具体可参考基础数据搬运(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_0103.html\#ZH\-CN\_TOPIC\_0000002562301699\_\_table659692711105)。 | DataCopy |
| 新增ND\-DMA指令。 | 扩展DataCopy数据搬运接口的能力，相比基础数据搬运接口，可更加自由地配置搬入数据的维度信息及Stride，使用方式具体可参考多维数据搬运（ISASI）(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_00131.html)。 | DataCopy |
| 新增L0C Buffer到UB的单向数据通路。 | 支持将数据直接从L0C Buffer搬运到UB，而无需先从L0C Buffer搬运到GM，再从GM搬运到UB，使用方式具体可参考Fixpipe(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_0251.html)。 | Fixpipe |
| 扩展LoadData搬运指令。 | 新增支持MicroScaling（MX）场景的数据搬运，使用方式具体可参考LoadData(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_0238.html)。 | LoadData |
| 新增DN分型、L1Buffer\->L0A Buffer不再支持transpose。 | 使用新特性具体可参考LoadDataWithTranspose(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_0239.html)。 | LoadDataWithTranspose |
| Fixpipe新增NZ2DN随路转换（实现NZ到DN数据格式的随路变换）。 | 使用方式具体可参考Fixpipe(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_0251.html)。 | Fixpipe |
| DataCopy搬运维度增强。 | DataCopy支持L1 Buffer与GM之间，GM与UB之间通路的loop模式搬运，使用方式具体可参考SetLoopModePara(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_00242.html)。 | DataCopy |
| 351x架构版本中删除了与L0A Buffer和L0B Buffer初始化相关的硬件指令。 | 使用基础API InitConstValue将特定存储位置的LocalTensor初始化为某一具体数值，不支持直接初始化L0A Buffer、L0B Buffer上的LocalTensor。 | InitConstValue |


- 计算单元
**表2 计算单元变更**

| 351x变更 | 产生的影响 | 影响的API接口 |
| --- | --- | --- |
| Cube计算单元不支持s4类型。 | 对于int4b\_t数据类型的矩阵乘计算，开发者需要先将int4b\_t的数据Cast转换为int8\_t类型，再进行Cube计算。 | Mmad |
| Cube计算单元不支持L0A上ZZ到ZN的分形变化。 | L0A切分场景下，矩阵乘需要重新计算左矩阵的L0A地址。 | LoadData/LoadDataWithTranspose |
| Vector Core Membase架构切换到Regbase架构。 | 基础API部分场景性能降低。 | 基础API高维切分模式 |
| 硬件不支持Subnormal功能，当前使用软仿实现的Subnormal功能。 | 开发者需要通过设置config模板参数来配置Subnormal计算模式，具体请参考矢量计算。 | Ln/Sqrt/Rsqrt/Div/Reciprocal/Exp |
| 不支持4:2稀疏矩阵的计算。 | 开发者需要利用Vector Core的能力，进行矩阵稠密转稀疏操作。 | LoadDataWithSparse/MmadWithSparse |


- 存储单元
**表3 存储单元变更**

| 351x变更 | 产生的影响 | 影响的API接口 |
| --- | --- | --- |
| 删除L1 Buffer空间的边界值设定。 | 351x架构硬件删除了L1 Buffer的边界值设定相关寄存器，不再支持SetLoadDataBoundary接口，具体请参考兼容方案。 | SetLoadDataBoundary |
| UB结构变化。220x架构的UB结构和351x架构的UB结构对比请参考bank结构对比。 | 220x架构上UB分为16个bank group，每个bank group包含3个bank，每个bank大小为4KB。351x架构上UB分为8个bank group，每个bank group包含2个bank，每个bank大小为16KB。若发生UB冲突，开发者可参考避免Unified Buffer的bank冲突解决UB冲突。 | / |


- 同步
**表4 同步变更**

| 351x变更 | 产生的影响 | 影响的API接口 |
| --- | --- | --- |
| 新增Mutex能力。 | Mutex用于核内异步流水指令之间的同步处理，其功能类似于传统CPU中的锁机制。通过锁定指定流水再释放流水来完成流水间的同步依赖，使用方式具体可参考Mutex（ISASI）(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_00132.html)。 | Mutex |
| 新增核间同步控制模式。 | 对于AI Core内部的同步控制，AIV0与AIV1可单独触发AIC等待，使用方式具体可参考CrossCoreSetFlag(ISASI)(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendcopapi/atlasascendc\_api\_07\_0273.html)。 | CrossCoreSetFlag/CrossCoreWaitFlag |


- 其它
**表5 其它变更**

| 351x变更 | 产生的影响 | 影响的API接口 |
| --- | --- | --- |
| 删除AIPP硬件级指令，采用软仿实现AIPP功能。 | AIPP接口性能可能有所下降。 | SetAippFunctions/LoadImageToLocal |
| 由于351x架构版本中相关寄存器的删除，UB异常调试接口也被移除。 | 调测接口对功能无影响。 | CheckLocalMemoryIA |
