• 欢迎光临~

稀疏向量计算技术杂谈

开发技术 开发技术 2022-07-18 次浏览

稀疏向量计算技术杂谈

稀疏计算是数学规划求解器计算速度提高的最基本套路。  现实中的大规模数学规划问题绝大多数是稀疏的, 例如下面这个流程车间调度问题的数学规划模型, 假如当m=10, n=100时, 总变量数可达10万以上, 约束数也是同样的数量级, 这样模型的约束矩阵的元素数字就达到100亿以上(10G双精度浮点数,80G内存)。

参考文献链接

https://mp.weixin.qq.com/s/fA8XMqo5QtJRs0DY-FgVqQ

https://mp.weixin.qq.com/s/BOKc6VcBPKNV54U1vTR5Iw

https://mp.weixin.qq.com/s/vEtOuZv8T-N_DkNTIQpHZQ

如此大的矩阵, 先不说计算, 就是计算机内存都不足以装下。 

 稀疏向量计算技术杂谈

 

 但是好消息是模型是稀疏的。 例如上面的约束(2)-(6), 一行约束上只有3个左右,因此实际上的非零参数最多不超过100万(0.8G内存)。 因此模型的稀疏表达和稀疏计算是现代求解器的最基本套路之一。  以下介绍稀疏计算的入门技术--稀疏向量计算。

稀疏向量的表达与计算

虽然稀疏向量的表达与计算非常简单, 但是它是稀疏计算的最基本元素, 而且算法是十分优美, 从中可以看到稀疏计算的主要基础精髓。

稀疏向量的表达使用的是“数据对”表示法, 就是元素用数据对(i, d) 表示, i表示元素的脚标, d表示元素的取值。 (i,d)就表示向量的第i维元素的取值为d. 把(i,d)线性地表达成一串,忽略取0值的元素,就形成了向量的压缩表示. 例如上面模型的一行约束, 压缩表示时每行只有4个左右的元素就可以了.

如果压缩表示的向量里(i,d)元素是根据i由大到小排序的, 则是排序表示. 但是由于计算中考虑对元素的排序会产生插入操作,占用大量时间, 实践中的向量压缩表达并不考虑对(i, d)排序.

在单纯形表计算中, 假设 u, v 是向量, r是标量, 经常用到如下加法: 

                   u <== u+ r*v.

像这样的计算必须首先把 u或v临时做散开表达,就是把向量展开表达成一般数组。

不必担心这样会增加计算机内存占用。原因是这种散开只是在向量层次上的临时展开。计算机不怕在向量上的少数临时展开,怕的是在矩阵层次上的临时或永久展开。(前者只在算数层次上增加内存需求,后者会在几何层次上增加内存需求)。

对 u <== u+ r*v 的一个计算算法如下:

    1. 首先把v作展开表达为wi。

    2. 遍历u的元素ui, 更新 ui <== ui + r * wi, 并把wi置0。

    3. 遍历v的元素vi, 如果wi不为0, 在u中增加新元素 (i, r*vi),并把wi置0。

上面算法2种两次把wi置0,其中第一次保证了识别u中必须增加的元素,第二次与第一次置0相配合,使得计算完毕后wi全部为0. 在计算完毕后保持wi全部为0非常重要,否则在下次作离散时wi要做全部置0操作会完全丧失稀疏计算的效率。 上面算法的计算成本与 u,v中元素之和数等价。

稀疏向量点乘算法比上面的算法更为简单,但同样需要对其中一个向量作散开操作。

C++实践

首先是c++的包含文件,为方便数组表示,使用容器vector:

#include <iostream>

#include <vector>

using namespace std;

定义压缩向量u,v和散开空间scatter:

int n=15;//向量长度

struct c_element{int i;double v;};//向量元素

vector<c_element> u,v; //压缩向量

vector<double>scatter; //散开空间

随后定义向量生成函数,三个参数依次为 压缩向量、向量维数、非零参数比值:

void generate_vector( vector<c_element>&v,int n,double rate=0.5){

     c_element e;

     for(int i=0;i<n;i++){

         if((double)rand()/RAND_MAX<rate){

              e.i=i;

              e.v=(int)(20*(double)rand()/RAND_MAX)-10;

              v.push_back(e);

         }

     }   

}

定义一个压缩向量输出函数:

void print_vector(vector<c_element>v){

     for(unsigned int i=0;i<v.size();i++){

             cout<<"("<<v[i].i<<","<<v[i].v<<") ";

     }cout<<endl;

}

根据稀疏算法写出计算 u <== u + r*v 的函数:

void add_vector(

     vector<c_element>&u, const vector<c_element>v, double r){

     c_element e;

     for(unsigned int i=0;i<v.size();i++){

         scatter[v[i].i]=v[i].v;

     }

     for(unsigned int i=0;i<u.size();i++){

         u[i].v+=r*scatter[u[i].i];

         scatter[u[i].i]=0;

     }

     for(unsigned int i=0;i<v.size();i++){

         if(scatter[v[i].i]!=0){

              e.i=v[i].i;

              e.v=r*v[i].v;

              u.push_back(e);

              scatter[v[i].i]=0;

         }

     }   

}

主函数 (计算 u <== u - 2*v):

int main(){

     scatter.resize(100,0);

     generate_vector(u,n);

     print_vector(u);

     generate_vector(v,n);

     print_vector(v);

     add_vector(u,v,-2);   // 计算  u <== u - 2*v

     print_vector(u);

     return 0;

}

编译和试算:

 稀疏向量计算技术杂谈

 

 开始的u,v分别是:

(0,1) (1,6) (3,-3) (7,7) (10,-10) (11,-3) (12,-7) (14,-8)

(0,-10) (1,0) (5,3) (6,-3) (7,2) (11,7)

计算后的u为

(0,21) (1,6) (3,-3) (7,3) (10,-10) (11,-17) (12,-7) (14,-8) (5,-6) (6,6)

 其中i=0,7,11位置上的元素发生变化,且增加了i=5,6位置的两个元素。

稀疏向量运算的要点包括:1.向量的压缩表示;2. 向量计算时的展开; 3. 展开向量在计算时的优化置0操作。

稀疏计算方案设计与实践

推理引擎领域,经过最近几年的打磨优化,阿里推出的MNN(Mobile Neural Network)[1][2][3] 也成为业内领先的推理引擎,当想进一步提升性能时,结合深度学习模型设计入手是一个有潜力的方向,结合科学计算、高性能计算领域的知识则是一个更具体的方法,基于这个思考路径, 业内逐渐开始从稀疏计算角度来提升推理引擎性能。稀疏是指数据矩阵中有部分是0元素,一般而言,矩阵稀疏化之后,非0元素数据在内存中不连续,无法直接复用GEMM(general matrix multiply)[9]算法,同时缓存命中问题或判断开销会降低稀疏计算性能,需要新的方法实现稀疏相对稠密计算的加速。

结合业内已有的稀疏计算方法与MNN的推理框架、内存布局、算子关系,在MNN框架中设计支撑多类后端的稀疏整体方案,打磨稀疏计算核心汇编实现达到高性能;重要性能指标数据如下:以AI(Artificial Intelligence)领域经典的分类模型MobileNetV1[12] MobileNetV2[13]为例, 选取相同高通SD 835 CPU(MSM8998),与XNNPack[6] 相比,MobileNetV1 90%稀疏度时XNNPack 加速比为2.35x,MNN加速比为 2.57x - 3.96x。MobileNetV2 85% 稀疏度时, XNNPack MobileNetV2(只有 block=2),加速比为1.62x,MNN加速比为 3.71x(block=4),block含义与其他模型信息见1.1、 3.1节解读,其他信息在后续展开。

 1.1 可调分块稀疏权重

 深度神经网络模型的稀疏计算包括输入稀疏[11]、输出稀疏、权重稀疏,0元素占全部元素的比例就是稀疏度,通常而言输入和输出稀疏对具备特定属性模型会有效果,例如激活函数为ReLU,计算出负数值会被归零,所以可以不精确计算出这些结果,只计算符号实现加速。而在CPU对通用DNN模型具备加速效果的是权重稀疏,在MNN中聚焦权重稀疏这个通用场景,另一个重要特点是面向深度学习的权重稀疏比例一般在30%-90%,有别于科学计算中极度稀疏到99%的场景。即以下三点:

MNN稀疏计算的基本选型:

  • 左右矩阵方面:选择通用权重稀疏;
  • 稀疏度方面: 在30%-90%左右需产生加速效果,非科学计算的极度稀疏场景;
  • 结构方面:不采用裁剪权重矩阵通道维度的完全结构化剪枝方法,而是随机稀疏+分块稀疏。

常规结构化剪枝中[4][5],直接删减权重矩阵的IC或OC维度的整个维度切片,裁剪后模型仍然是稠密的,直接缩减矩阵乘法规模,由于对宏观结构改变较大,导致模型精度损失显著。

MNN中的稀疏计算选择对权重在OC维度做动态分块稀疏,下图1为随机稀疏分块下矩阵乘法的左右矩阵数据布局,涂色方格表示数据非0, 白色方格表示稀疏化处理后为0,即可不存储,又可不计算。

 稀疏向量计算技术杂谈

 

 下图2为分块稀疏的矩阵乘法的左右矩阵数据布局,左矩阵与随机稀疏情形相同, 右矩阵为权重矩阵,以每OCBlock为单位,连续为0或非0分布于内存中。为了灵活性考虑,设计支持OCBlock为可调数值。

 稀疏向量计算技术杂谈

 

 1.2  权重矩阵数据压缩格式

经过对比选型,在MNN中权重矩阵采用了多种布局形式,原始权重如图3所示,为了保障性能的同时压缩内存占用。性能随机稀疏时,选用图4所示的布局样式;分块稀疏时,选用图5布局。原始矩阵压缩为非0数据与索引部分。下图4、5中,权重矩阵A的0元素被压缩后不再存储,data为非0数据,Row start Index 与Column Index为行索引与列索引。图5的布局时,可以节省更多索引空间,压缩内存占用。

 稀疏向量计算技术杂谈

 

 稀疏向量计算技术杂谈

 

 稀疏向量计算技术杂谈

 

 2.1 推理框架层设计

在MNN已有架构基础上的设计稀疏计算,则设计与实现需要考虑较多现状的约束,结合基础软件的定位,设计目标主要包括以下5个方面。

稀疏向量计算技术杂谈

 

 说明:由于汉语时序的”前后“和英语”forward/backward”语义相反,故用了向旧兼容代替通常说的有歧义的"向前兼容"。

 2.2 MNN稀疏计算架构解析

 经过不断设计与完善,MNN稀疏计算目前整体上包含稀疏训练、转换参数、算子框架、后端kernel 四个阶段,设计四部分松耦合;方便层内扩展,以及模块化集成与被集成,如下图package UML所示。为了便于理解,参考C4Model建模方法分层,图6为container层架构、图7为具体一层的Component层架构。

稀疏向量计算技术杂谈

 

 1. 第一,属于算法模型阶段, 算法工程师结合数据搭建模型,根据自身偏好在各类框架下训练得到AI模型;

2. 第二,稀疏化训练阶段,参考图6,从float稠密权重模型开始,导入MNN Python压缩工具包(mnncompress),设定mnncompress需要的参数,运行将原模型中权重部分数值稀疏化为0。建议用户使用MNNCompress工具里的训练插件,最大化发挥加速性能;

3. 第三,转换模型阶段,MNN convertor 主要包含三类模块,MNN内部buffer格式转换、图优化、后处理,选择算子,将权重矩阵统计处理,满足稀疏阈值的,给添加稀疏后端识别和运行需要的参数,最终写文件得到稀疏MNN模型;

4. 第四,MNN engine推理计算阶段,部署新模型到MNN运行环境中,和普通模型运行一样,MNN 运行时会自行处理算子映射、后端microkernel选择、执行推理。参考一般模型部署运行文档。(https://www.yuque.com/mnn/cn/create_session)

在 MNN Engine中,参考图7, 算子operators和后端backend做如下结构设计与考量。

1. 外部看来,算子注册并未新增一种“稀疏卷积”算子,仍然是普通的卷积算子,这样可以减小用户使用的选择成本,减少算子膨胀,在MNN内部更灵活地选择稀疏计算加速,或原始稠密卷积。

2. 算子层面,将原始的稠密卷积重组成两层,合理分配可复用与需要扩展的部分,实现稀疏计算压缩各类操作。

3. 量化稀疏算子则基于量化卷积算子ConvInt8Tiled扩充实现,基本方法与2相近。

4. 算子中平台有关的核心函数,分别实现了ARM32 fp32,ARM32 int8,  ARM64 fp32, ARM64 int8, x86 avx2 fp32, x86 avx512 fp32共6种后端的汇编代码。

5. 测试类方面,稀疏的用例完全包含稠密卷积的用例,并增加稀疏分块维度,遍历不同分块、不同稀疏度、不同后端的正确性。

疏计算性能评估

稀疏向量计算技术杂谈

 

 3.1 典型模型稀疏加速评估

 为全面评估fp32稀疏加速效果,从"稀疏度、分块大小、cpu型号、模型类型"四个维度进行评测,汇集在图8展示结果,  单张曲线图表示固定一个设备、一个模型时,推理耗时随稀疏度的变化曲线。

将大图的第1行第2列取出单列置于上方,便于解读数据。单张曲线图包含四条曲线,"dense"为MNN当前基准, "dense-im2col"为将推理算法固定为分块im2col做加速的数据,不使用winograd之类加速算法, "sparse-block1x1"表示对权重矩阵的稀疏为1x1分块,也就是完全随机稀疏。 "sparse-block1x4"是半结构化稀疏,表示对权重矩阵的稀疏分块为1x4分块,沿着ic维度分块为1, 沿着oc维度分块为4。

从小图可见在mobilenet V1、Mi6 机型、1x4分块时,对应绿色左三角◁曲线,稀疏加速比在0.9稀疏度是达到3.71x。

参考对比XNNPack模型推理性能:

XNNPack[6] 数据评测采用高通SD 835 CPU(MSM8998),mobilenetV1 为90%稀疏度,对mobilenetV2 为85% 稀疏度,

对应SD 835 CPU,以小米6为例,下图第1行第2列,为例对比数据:

XNNPack mobilenetV1(sparsity=0.9, block=1),加速比为2.35x,MNN加速比为 2.57x , 分块为1x4时加速比3.96x.

XNNPack mobilenetV2(sparsity=0.85, block=2),加速比为1.62x,MNN加速比为 3.71x(block=4).

对于卷积kernel不是1x1的层,仍可以实现稀疏加速,在XNNPack的论文中表明并未能实现稀疏加速。

通过数据大图8,可得到几点分析和结论:

  • 参照设备小米6上, 在稀疏分块1x4时,稀疏加速临界值优化到0.3, 低端机型临界值有升高,其他中高端机型, 分块1x4时, 稀疏度0.1的时候就达到加速临界值了, 0.9稀疏度时加速比可达4.13x。
  • MNN推理耗时随稀疏度增加,基本线性下降,跨模型、cpu 一致性比较好。
  • 内存占用:经过推导, 稀疏相对稠密节省的内存比例如下,

 稀疏向量计算技术杂谈

 

 稀疏向量计算技术杂谈

 

 稀疏向量计算技术杂谈

 

 另一方面,评估了典型模型的分类精度,MobileNet V2在0.5稀疏度、1x4稀疏分块配置下,精度损失0.6%,对应上图加速比为1.3x。

务模型实践稀疏向量计算技术杂谈

 

 4.1 某图片超分业务

在某业务移动端链路上,时间延迟与流量是其痛点,业务方对接端智能 MNN与工作台,开发超分辨率任务模型,同时使用MNN稀疏计算加速方案,主要做了四个步骤,

1. 第一步为超分模型算法训练;

2. 第二步,参考稀疏训练文档,设定压缩工具mnncompress需要的稀疏参数,得到权重部分数稀疏为0的模型;

3. 第三步,使用MNN convertor转换模型;

4. 运用MNN工作台(https://www.mnn.zone/m/0.3/) ,部署模型到mnn运行环境中。整套流程集成再MNN工作台,大大提升了AI的开发流程效率,感兴趣的同学可以试用和联系工作台负责人”明弈“。

下图所示,在稀疏度0.45情况下,稀疏自身方案对推理的加速比约1.2x, 业务指标为图像信噪比,从  34.728dB少量下降到34.502dB。对业务精度影响在接受范围内。

稀疏向量计算技术杂谈

 

 4.2 某语音模型

另一个业务方模型为某语音模型,下图为构造稀疏后在avx512下实测加速比,不同稀疏方法对加速会有影响,0.75稀疏度时,输入序列20时(典型场景1),下图所示,稀疏与稠密模型相比,encoder1加速比 2.82x,  encoder2加速比3.02x。对于此方案达到预期的加速比。

稀疏向量计算技术杂谈

 

 在MNN现有框架中,设计了通用稀疏卷积计算方案,使其数据布局、算子结构配合既有MNN结构、发挥出较高性能,而XNNPack的稀疏矩阵乘法只针对网络pointwise类卷积有加速。

 第一点,设计实现了推理性能优于XNNPack的MNN稀疏加速方案;0.9稀疏度时,CV模型在ARM端获得3.16x-4.13x加速比,跨机型、跨模型加速效果都比较显著。

第二点,在实际业务模型中验证了业务精度指标,损失有限、可接受。

第三点,推理耗时随稀疏度增加线性下降,跨模型、cpu 一致;在小米6上,稀疏分块1x4加速临界值优化到0.3,中高端机型甚至稀疏度0.1的时候可达临界值。

第四点,降低内存占用随稀疏度成正比,具体数值见性能分析部分。

在引擎实现、稀疏计算内核、汇编代码开发中,经常会从不及预想值开始,在一次次调试中不断加深对MNN既有逻辑的理解,优化稀疏算子代码、SIMD代码,优化数据布局,最终将综合指标提升到高水准。

稀疏计算研发工作得以完成,非常感谢团队的同学通力协作!移动端或服务端,量化加速在不同领域都相对常见,指令集支持由来已久。而深度模型在CPU上的稀疏计算加速不断发展,分别使用时,二者各有相对优势。稀疏计算加速可以理解为一种 "可伸缩"等效位宽的技术,这个角度可以探索更多独特的应用场景。总而言之,MNN稀疏计算仍然在持续进化,满足业务方多样化需求,欢迎内部外部业务与技术团队合作!

AI研究、AI产业持续快速发展,Transformer从NLP破圈进入CV,Vision Transformer 登顶 ImageNet;大公司内AI、数据智能运用如火如荼,产业内蛰伏的AI、数据公司IPO成功,如Exscientia, Snowflake, UiPath, Confluent,商汤等;AI进入市场化运作阶段。在此期间MNN荣获”中国科协2021年度优秀开源产品“。淘系端智能团队坚信,未来的AI的运用是端侧肇始、端云协同的。自主研发并对外开放了新的技术产品“MNN工作台”,支持AI应用入门、无门槛训练和一键多端部署能力,欢迎进入MNN官网,下载使用。

【参考资料】

[1]: 淘宝轻量级的深度学习端侧推理引擎 MNN 开源

[2]: https://github.com/alibaba/MNN

[3]: Jiang, X. ,  Wang, H. ,  Chen, Y. ,  Wu, Z. ,  Wang, L. , &  Zou, B. , et al. (2020). Mnn: a universal and efficient inference engine:https://arxiv.org/abs/2002.12418

[4]: A. Gordon, E. Eban, O. Nachum, B. Chen, H. Wu, T. Yang, and E.Choi. Morphnet: Fast simple resource-constrained structure learning of deep networks. In 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 1586–1595, June 2018. 2:https://arxiv.org/abs/1711.06798

[5]: Jian-Hao Luo, Jianxin Wu, and Weiyao Lin. Thinet: A Filter Level Pruning Method for Deep Neural Network Compression. In IEEE International Conference on Computer Vision, ICCV 2017, Venice, Italy, October 22-29, 2017, pages 5068–5076, 2017 :https://arxiv.org/abs/1707.06342

[6]: Elsen, E. ,  Dukhan, M. ,  Gale, T. , &  Simonyan, K. . (2020). Fast Sparse ConvNets. 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. https://arxiv.org/abs/1911.09723

[7]: Block Compress Sparse Row/colum format, BCSR:https://scipy-lectures.org/advanced/scipy_sparse/bsr_matrix.html

[8]: Arm Cortex-A Processor Comparison :  developer.arm.com/ip-products/processors/cortex-a. 

[9]: General Matrix Multiply:https://spatial-lang.org/gemm

[10]:  https://www.intel.com/content/www/us/en/architecture-and-technology/avx-512-overview.html

[11]: Akhlaghi, V. ,  Yazdanbakhsh, A. ,  Samadi, K. ,  Gupta, R. K. , &  Esmaeilzadeh, H. . (2018). SnaPEA: Predictive Early Activation for Reducing Computation in Deep Convolutional Neural Networks. Acm/ieee International Symposium on Computer Architecture. IEEE Computer Society :http://ieeexplore.ieee.org/document/8416863

[12] Howard, A. G. ,  Zhu, M. ,  Chen, B. ,  Kalenichenko, D. ,  Wang, W. , &  Weyand, T. , et al. (2017). Mobilenets: efficient convolutional neural networks for mobile vision applications:https://arxiv.org/abs/1704.04861

[13] Sandler, M. ,  Howard, A. ,  Zhu, M. ,  Zhmoginov, A. , &  Chen, L. C. . (2018). Mobilenetv2: inverted residuals and linear bottlenecks. IEEE:https://arxiv.org/abs/1801.04381

稀疏化计算生态

6 月 13 日,人工智能与浪潮签订元脑战略合作协议。这是在浪潮战略投资之后,双方的进一步战略合作。

将携手浪潮信息,以领先的稀疏化计算技术和产品,广阔的生态潜能,融合资源与算法,共创全栈 AI 解决方案,为各行各业 AI 应用提供强大算力引擎和生态支撑,为企业降本增效,并加速产业的人工智能化进程。

 AI 计算的新锐势力——稀疏化计算

人工智能科技创立于 2018 年,总部位于深圳,致力于通过稀疏化算法构建高性能低 TCO(总拥有成本)的 AI 算力,其产品主要是用于云端和终端的 AI 加速器方案,可广泛应用于互联网、运营商、生物医药等数据中心 AI 推理场景,并积极致力于稀疏化生态建设。今年 1 月,刚刚完成数亿元 A 轮融资。
在 AI 时代算力需求呈指数级剧增、传统摩尔定律面临失效的背景下,稀疏化计算是突破 AI 芯片算力瓶颈的创新方向之一。当前,谷歌、OpenAI、Meta 等 AI 巨头纷纷布局稀疏化计算。人工智能作为专注于稀疏化技术的先入局者,已经建立起全球领先的稀疏化核心技术以及产业化优势。
在机器学习领域中,稀疏化是一种高效的数据处理和模型压缩方式。它从人类大脑得到灵感,让神经网络在计算时仅启用所需神经元。稀疏化计算的技术原理是指在原有AI计算的大量矩阵运算中,将含有零元素或无效元素剔除,以加快计算速度。它在需要海量数据处理的 AI 加速计算中优势尤为突出,能让算力超越极限,让企业得以完成复杂的 AI 任务,同时能为企业显著降低能耗和成本。
为领先 AI 生态赋能
浪潮信息是 AI 服务器的领导厂商,「浪潮元脑」是为应对产业 AI 化的挑战、加速产业 AI 化的发展进程,与合作伙伴共同构建的 AI 生态体系,其成立于 2019 年,包含人工智能基础设施、深度学习框架与工具等产品,为人工智能提供生态支撑。
本次合作是所代表的新一代 AI 计算技术,与浪潮代表的 AI 先进生态的强势联合,有望打造面向未来的「高算力+强生态」的产业新实践。
元脑生态的生态伙伴分为两类:左手伙伴即技术型伙伴,右手伙伴即战略型伙伴、能力型伙伴,分别代表先进优化的 AI 开发能力,和实际可操作的优秀 AI 落地部署能力。作为左手伙伴加入元脑生态,将有力增强元脑的 AI 算力底座,为右手伙伴推动更多创新 AI 应用场景的实现,为 AI 生态的发展带来更多元的机会。
浪潮元脑负责人张强表示:如果说「元脑生态 1.0」是为人工智能而生,「元脑生态 2.0」就是为了智算而生,为千行百业而生。会特别看重左手伙伴的技术支撑实力,稀疏化计算产品以其高算力、高精度、低功耗、低 TCO(Total Cost of Ownership)的优势让眼前一亮。他还表示,迄今为止,看到 SparseOne™️ S100 计算卡在浪潮内部测试中表现突出,让对稀疏化计算推动商业赋能的技术实力深具信心,并充满期待。
产业化提速稀疏化计算释放积极生态力量
一直在积极推进基于稀疏化算法及架构的 AI 芯片及计算卡的产业化进程。2021 年 12 月 31 日,首颗芯片 Antoum®️ 顺利回片,第一次上电即点亮,仅用 24 小时就跑通主流 AI 模型 ResNet50。 

 稀疏向量计算技术杂谈

 

人工智能 SparseOne️ S100 计算卡基于 Antoum®️ 芯片,专注为数据中心 AI 推理应用。实测数据显示,S100 计算卡的性能领先行业,如 ResNet50 计算速度高达 33197 FPS,BERT 计算速度达到 7832 SPS——与国际头部厂商同类产品相比,S100 计算卡在满足精度要求的同时,仅以一半的功耗,便可带来 6 倍算力提升。

 稀疏向量计算技术杂谈

 

 S100 可广泛应用于互联网、运营商、生物医药等众多 AI 推理场景。

SparseRT™️ 软件开发环境为快速开发提供了完整的可扩展平台并激活稀疏计算的潜力。SparseRT™️ 可以高效支持通用的 AI 编程框架,如 TensorFlow、PyTorch、ONNX 和 MXNet 等。用户可以在熟悉的 TensorFlow 或 PyTorch 环境里进行开发之后再进行迁移与交付。
据介绍,在未来合作中人工智能将针对大模型、智慧医疗等的解决方案上架元脑生态平台 AIStore,并联合浪潮,探索稀疏化计算赋能各行各业的更多可能,助力浪潮元脑 AI 集成、部署和服务能力,帮助用户完成业务智能转型升级,携手步入智算生态新时代。
人工智能创始人兼 CEO 王维表示,稀疏化计算产品可以提供理想的 AI 算力,它满足人类 AI 前沿技术的计算需求,高效而又环保地驱动 AI 世界,同时能以极低的迁移成本,一键式地将稀疏计算功能添加到现有的计算设施中,在算力、成本和能耗上给 AI 世界带来惊喜。同时,稀疏化蕴含广阔的生态发展潜力,将构建涵盖软件、硬件、应用的 AI 计算平台,与研究人员、开发者、软件开发商等合作伙伴一起,为各行各业用户提供高性能 AI 计算服务,共同构筑场景丰富、生机勃勃的稀疏化生态。

 

 

参考文献链接

https://mp.weixin.qq.com/s/fA8XMqo5QtJRs0DY-FgVqQ

https://mp.weixin.qq.com/s/BOKc6VcBPKNV54U1vTR5Iw

https://mp.weixin.qq.com/s/vEtOuZv8T-N_DkNTIQpHZQ

程序员灯塔
转载请注明原文链接:稀疏向量计算技术杂谈
喜欢 (0)