简单的聊聊 NPU ,Tensor core

刚刚,有个前同事问我tensor core到底是个啥

在我接触过的项目和芯片里,tensor core就是矩阵乘法器。

NPU英文全称是Neural network Processing Unit, 中文大概得叫神经网络处理单元吧。

有篇文章是介绍这个的,

CPU/GPU/TPU/NPU傻傻分不清楚 - 知乎

看完这个介绍,或许可以明白一些概念,但是还是不明白本质

现在我们大谈算力,在计算机的世界里可以按照维度把运算分为,标量运算,矢量运算,矩阵运算

我们在小学的时候学习标量运算,初中高中学习矢量运算,大学里学习矩阵运算。

简单或者本质的理解就是,

  • CPU的主要计算单元是标量运算,当然后面出来的SSD,AVX指令不包含在里面
  • GPU的主要计算单元是矢量运算,现在一般都是SIMD,然后多个SIMD组成MIMD
  • NPU的主要计算单元是矩阵运算. 矩阵运算器就是tensor core. 

当然现在NV新出的高端GPU里面都包含了 tensor core. 高端的CPU里面也包含了矢量运算,甚至也包含了矩阵运算。

再来聊聊为啥这么多人在做NPU

  • 有前景,有未来,算力就是未来,这肯定没错
  • 用于推理的NPU和CPU,GPU相比,相对比较好做,当然用于训练的NPU,生态系统和技术难度都是非常大。
  • 资本多,又是新东西,好找投资,好说梦

当然,要做好NPU肯定是不容易的事情

  • SOC的架构,存储系统的设计(Cache,SRAM,DRAM),片内互联技术,片与片互联,计算单元设计,控制单元设计,Slice设计,每个部分都有非常非常多的东西可以研究
  • 软件设计,像cuda一样的系统软件,这是NV的核心技术。看看大芯片公司庞大的软件开发团队。
  • 生态系统建设

最后总结一句,做芯片真的需要耐心。

你可能感兴趣的:(神经网络,矩阵,深度学习)