aclnnBatchNormGatherStatsWithCounts
产品支持情况
功能说明
接口功能:
收集所有device的均值和方差,更新全局的均值和标准差的倒数。BatchNorm的性能和BatchSize相关,BatchSize越大,BatchNorm的统计量也会越准。然而像检测这样的任务,占用显存较高,一张显卡往往只使用较少的图片,比如两张来训练,这就导致BatchNorm的表现变差。一个解决方式就是SyncBatchNorm,所有卡共享同一个BatchNorm,得到全局的统计量。
[object Object]计算公式:
其中,runningMean和runningVar更新公式如下:
函数原型
每个算子分为,必须先调用“aclnnBatchNormGatherStatsWithCountsGetWorkspaceSize”接口获取入参并根据流程计算所需workspace大小,再调用“aclnnBatchNormGatherStatsWithCounts”接口执行计算。
[object Object]
[object Object]
aclnnBatchNormGatherStatsWithCountsGetWorkspaceSize
参数说明:
[object Object]- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:参数
[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]、[object Object]的数据类型不支持BFLOAT16。
- [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:参数
返回值:
第一段接口完成入参校验,出现以下场景时报错:
[object Object]
aclnnBatchNormGatherStatsWithCounts
约束说明
- 确定性计算:
- aclnnBatchNormGatherStatsWithCounts默认确定性实现。
调用示例
[object Object]