智算服务器SGM7-40,适配主流LLM,单卡可运行70B的大语言模型
SOM1684,搭载算能BM1684,支持16路高清视频分析
Core-1684-JD4,搭载算能BM1684,支持16路高清视频分析
SBC-6841,搭载算能BM1684,支持16路高清视频分析
iCore-1684XQ,搭载算能BM1684X,支持32路高清视频分析
Core-1684XJD4,搭载算能BM1684X,支持32路高清视频分析
Shaolin PI SLKY01,搭载算能BM1684,支持16路高清视频分析
QY-AIM16T-M,搭载算能BM1684,支持16路高清视频分析
QY-AIM16T-M-G,搭载算能BM1684,支持16路高清视频分析
QY-AIM16T-W,搭载算能BM1684,支持16路高清视频分析
AIV02T,PCIE板卡,1684*2,半高半长
IVP03X,搭载算能BM1684X,支持32路高清视频分析
IVP03A,微服务器 被动散热,12GB内存
Coeus-3550T,搭载算能BM1684,支持16路高清视频分析
EC-1684JD4,搭载算能BM1684,支持16路高清视频分析
CSA1-N8S1684,算力集群服务器,BM1684*8,1U
DZFT-ZDFX,ARM+DSP智能封条分析,搭载算能BM1684X
ZNFX-32,搭载算能BM1684,支持16路高清视频分析
ZNFX-8,ARM+DSP架构,隔爆兼本安分析装置符合煤安要求,搭载BM1684X
EC-A1684JD4,微服务器主动散热,16GB内存,32GB eMMC
EC-A1684JD4 FD,搭载算能BM1684,支持16路高清视频分析,16GB内存,32GB eMMC
EC-A1684XJD4 FD,搭载算能BM1684X,支持32路高清视频分析
ECE-S01,搭载算能BM1684,支持16路高清视频分析
IOEHM-AIRC01,微服务器,主动散热,搭载算能BM1684,支持16路高清视频分析
IOEHM-VCAE01,搭载算能BM1684,支持16路高清视频分析
CSA1-N8S1684X,算力集群服务器,BM1684X*8,1U
QY-S1U-16,1U版本BM1684盒子
QY-S1U-192,算力集群服务器,BM1684*12,1U
QY-S1X-384,算力集群服务器,BM1684X*12,1U
视频实时压缩转码上云和监测异常事件,增强道路运行安全事件的发现和处置能力
为交通拥堵、行车安全、车辆违法和道路污染治理问题赋能
以国产化算力支撑海量视频的结构化解析,服务警务应用实战
以数据为中心打造“智能、协同、高效、创新”的步态识别大数据分析系统
为用户快速构建融合人、车、通行等多维数据的业务能力
对生产全过程、全方位实时感知与精细化监管,推进应急监测智能化,赋能风险识别预警
为粮仓、棉仓等大型仓储园区的办公、质检、磅房、库区等区域提供了违规行为和异常事件的安全监控方案
全量场景感知预警,赋能烟草生产作业过程数智化
为白酒生产企业细化风险监测因素,建立智能感知与预警感知体系,提高企业安全生产管理水平
以云边协同的新型算力基础设施赋能各类数字城市场景,为数字经济发展提供源动力
以自动化训练推理一体化平台为基础,助力算力/算法整合应用快速、高效工程化落地
比赛所使用的算丰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算子、池化算子以及除法算子完成。