Created by: DannyIsFunny
【问题描述】之前使用的增量Hash算法存在哈希碰撞现象,本PR修改为系统哈希实现
方案一采用增量hash: (与TensorFlow中相同实现的HashCombination
方法,经测试,存在Hash仍然存在Hash碰撞现象,测试脚本如下:
【本PR工作】将之前的增量Hash方法修改为系统Hash方法,即将所有的input_shapes & input_lods 中的内存区域 append 到字符串中,每组数据之间以 0 间隔,拼接出的string再采用std::Hash 系统方法计算Hash值。
经测试,本Hash方法在以上测试中不存在Hash碰撞现象。较为可靠。
【本PR缺点】Hash计算时间教方法一的增量Hash有提高,针对我们的测试模型InferShape时长从 0.02ms 增加到0.03ms ,主要耗时位于string::append (0.025ms) 而非std::Hash。采用std::string::reserve提前为string 分配500的内存空间,string::append耗时降低不明显,耗时增量无法接受,暂且搁置本方案