960路高清视频解码,480路智能解析
576路高清视频解码,288路智能解析
BM1684X,416路高清视频智能解析
X86主控,288路1080p高清视频智能解析
BM1684X,32路高清视频智能解析
BM1684,16路高清视频智能解析
BM1684,192路高清视频智能解析
BM1684,8路高清视频智能解析
CV186AH,8路高清视频智能解析
BM1688,16路高清视频智能解析
72路全高清硬解码与智能分析
96路全高清硬解码,48路智能分析
32路高清硬解码,16路智能分析
32路高清硬解码与智能分析
32路高清硬解码与智能分析
32路高清硬解码,16路智能分析
32路高清硬解码,16路智能分析
深度学习开发者产品组合
视频实时压缩转码上云和监测异常事件,增强道路运行安全事件的发现和处置能力
为交通拥堵、行车安全、车辆违法和道路污染治理问题赋能
以国产化算力支撑海量视频的结构化解析,服务警务应用实战
以数据为中心打造“智能、协同、高效、创新”的步态识别大数据分析系统
为用户快速构建融合人、车、通行等多维数据的业务能力
算能运用自研算力硬件设备SG6/SE5/SE6,搭载SOPHON.TEAM视频分析算法,助力工业安全生产智能化
为粮仓、棉仓等大型仓储园区的办公、质检、磅房、库区等区域提供了违规行为和异常事件的安全监控方案
算能联合SOPHON.TEAM生态伙伴打造烟草行业安全生产深度学习管控解决方案
算能联合SOPHON.TEAM生态伙伴,以自研国产化深度学习算力产品为硬件底座,构建安全生产管理体系,提高白酒企业安全生产管理水平
算能联合SOPHON.TEAM生态伙伴构建智算中心解决方案,建设统一管理和调度的云边协同的智算中心
算能联合SOPHON.TEAM生态共同构建了一套以自研国产化深度学习算力产品为硬件底座,以AutoML零代码自动化深度学习训练平台为基础,实现快速、高效的深度学习工程化落地
比赛所使用的算丰TPU的架构如下所示:
其中host memory为计算机内存,system memory为算丰TPU的内存,local memory为NPU内存。Execution Units(EU)为计算单元。CDMA用于host memory与system memory数据搬运,GDMA用于system momery与local memory之间的数据搬运,BDC用于local memory中数据的计算。
算丰的运算是由指令完成,具体的计算指令由host端发射,device端收到指令执行。其中host memory与system momery的交互由host端代码完成,system memory与local memory的交互由device端代码完成。
比赛需要编写device的代码,也就是关注的是GDMA部分以及BDC的部分,即在local memory和system memory中搬运数据,和使用EU计算数据。
比赛所使用的TPU数据如下:
global memory: 128GB
NPU number: 64
local memory:512KB * 64 = 32MB
EU number: 32bit的EU数量为16
数据在host memory和system memory中的搬运赛事已经提供且无法修改。因此需要选手做的事情简化起来就是:数据从system memory搬入local memory->使用bdc计算->将结果从local memory搬运到system memory。
其中,数据搬运使用的是gdma操作,比赛使用的都是浮点数,因此,搬运一般使用的就是:
void okk_gdma_32bit_cpy_S2L(local_addr_t dst_addr, system_addr_t src_addr, const dim4 *shape, const dim4 *dst_stride, const dim4 *src_stride); //tensor搬入
void okk_gdma_32bit_cpy_L2S(system_addr_t dst_addr, local_addr_t src_addr, const dim4 *shape, const dim4 *dst_stride, const dim4 *src_stride); //tensor搬出
void okk_gdma_32bit_matrix_S2L(local_addr_t dst_addr, system_addr_t src_addr, int rows, int cols, int cols_per_channel, int row_stride); //矩阵搬入
void okk_gdma_32bit_matrix_L2S(system_addr_t dst_addr, local_addr_t src_addr, int rows, int cols, int cols_per_channel, int row_stride); //矩阵搬出
其中local_addr_t表示local memory中的地址,所有local memory为统一寻址。
bdc的相关操作较多,就不一一列举了,详见二元函数,一元函数,神经网络函数。
流程中选手要完成比赛的题目主要分为两部分:数据切分和实现新算子。比赛中的tensor输入有多种大小,因此对特别大的数据需要使用数据切分,每次搬入一部分以完成计算。实现新算子是由于基础的神经网络算子库中提供的算子并不多,例如softmax函数需要自己结合exp算子、池化算子以及除法算子完成。