智算服务器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
视频实时压缩转码上云和监测异常事件,增强道路运行安全事件的发现和处置能力
为交通拥堵、行车安全、车辆违法和道路污染治理问题赋能
以国产化算力支撑海量视频的结构化解析,服务警务应用实战
以数据为中心打造“智能、协同、高效、创新”的步态识别大数据分析系统
为用户快速构建融合人、车、通行等多维数据的业务能力
对生产全过程、全方位实时感知与精细化监管,推进应急监测智能化,赋能风险识别预警
为粮仓、棉仓等大型仓储园区的办公、质检、磅房、库区等区域提供了违规行为和异常事件的安全监控方案
全量场景感知预警,赋能烟草生产作业过程数智化
为白酒生产企业细化风险监测因素,建立智能感知与预警感知体系,提高企业安全生产管理水平
以云边协同的新型算力基础设施赋能各类数字城市场景,为数字经济发展提供源动力
以自动化训练推理一体化平台为基础,助力算力/算法整合应用快速、高效工程化落地
按照正常流程编程的话,比如按N切分,硬件所执行的流程为:搬入数据->计算数据->搬出数据->搬入数据->计算数据->....->搬出数据。而数据的搬运和数据的计算分别由GDMA和BDC控制,因此,当执行GDMA时,BDC为闲置状态,执行BDC时,GDMA为闲置状态。
因此,一个简单的想法是利用乒乓缓冲,达到同时使用GDMA和BDC的目的。
以上图为例:
(1) 搬入第一块的输入。
(2)计算第一块,同时搬入第二块的输入。
(3)搬出第一块的输出,搬入第一块的输入,同时计算第二块。
(4)搬出第二块的输出,搬入第二块的输入,计算第一块,之后重复(3)(4),直到运行结束,可以看到,除了开始和结束的搬运,之后所有时间内,GDMA和BDC都是同时工作的。
伪代码以 output=input+1.0 为例,通过奇偶性来控制访问的地址:
local_addr_t input_addr[2], output_addr[2];
for(int i=0; i<blocks+2; i++)
{
okk_parallel_start(); //标志开始并行
if(i<blocks)
S2L(input_addr[i%2], param->input_addr + i*input_skip_bytes); // 搬运数据
if(i>0 && i<blocks+1; i++)
add_one(output_addr[(i-1)%2], input[(i-1)%2]); // 计算上次搬运的数据
if(i>1)
L2S(param->output_addr + (i-2)*output_skip_bytes, output_addr[(i-2)%2]); //搬出上次计算好的数据
okk_parallel_end();
}
包含在okk_parallel_start()和okk_parallel_end()中的操作会被并行执行。更详细的代码见算丰文档。