北京网站建设公司价格,网站建设的七大优缺点,宁波模板网站建站,sae wordpress 更新上两节介绍的权值预加载技术#xff0c;在很多业务中是真实存在的。
只不过限于本小册内容以及大部分同学硬件设备的局限#xff0c;这里无法通过真正的推理框架(比如 tvm, pytorch) GPU 来实现底层细节#xff0c;这些推理框架中一般会将类似的优化技术封装起来。
作为 …上两节介绍的权值预加载技术在很多业务中是真实存在的。
只不过限于本小册内容以及大部分同学硬件设备的局限这里无法通过真正的推理框架(比如 tvm, pytorch) GPU 来实现底层细节这些推理框架中一般会将类似的优化技术封装起来。
作为 tvm 或者 pytorch 的用户你一般看不到这些实现细节除非你是这些框架的开发者。
因此为了介绍这个优化我通过 81、82 这两节内容来引入了一个简单的硬件-内存模型。
整个权值预加载技术的实现思路为尽可能的在执行模型推理前将权值存放在距离计算单元最近的存储器中比如内存中或 L2 缓存中。如果你用 CUDA 写过 GPU 的 kernel可能你会有更深刻的理解。
这里我们模拟的就是将权值从 txt 文件硬盘)预加载到了内存中相比于硬盘内存距离计算单元CPU更近一些。 评估下性能
在相同的环境下分别运行 2nd_avx2 和 3rd_preload 下的 compile.sh 脚本进行代码编译然后运行编译后生成的可执行文件 ./resnet。
可以分别获取到权值预加载前后的性能指标。 可以看到性能提升非常明显优化前平均推理延时为 5044 ms优化后为 862 ms性能提升了大概 6 倍。
注意不同电脑机器不同环境下测出来的性能会有差异大家只需要比对性能提升的相对值即可。