deepin-ocr/3rdparty/ncnn/docs/developer-guide/preload-practice.zh.md
wangzhengyang 718c41634f feat: 切换后端至PaddleOCR-NCNN,切换工程为CMake
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试
2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程
3.重整权利声明文件,重整代码工程,确保最小化侵权风险

Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake
Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
2022-05-10 10:22:11 +08:00

1.0 KiB
Raw Permalink Blame History

只是实践经验,没有理论,不一定正确

prfm pldl1keep, [x0, #256]
  • 放在 ld1 [x0] 前面 0~8 条指令
  • #256 表示把 x0+256 的内容放进 L1 cache
  • ldp 也适用
  • (经验)不写 offset 不如写个 #128
  • (经验)pldl1strm 似乎没啥意思,也没 pldl1keep 快
  • (经验)x0 ~ x0+256 的内容也会进来
  • (经验)load 128bit 用 #128256bit或更多用 #256
  • (经验)避免 pld apld bload aload b 顺序,可能相互干扰
  • (经验)提前太多会失效
  • (经验)适合连续读
prfm pldl2strm, [x0, #256]
  • 放在 ld1 [x0] 前面 N 条指令N 尽量大些
  • #256 表示把 x0+256 的内容放进 L2 cache
  • ldp 也适用
  • (经验)不写 offset 不如写个 #128
  • (经验)pldl2strm 效果稍好于 pldl2keep
  • (经验)x0 ~ x0+256 的内容也会进来
  • (经验)load 128bit 用 #128256bit 用 #256
  • (经验)读很多数据,用不同 offset 连续两次 pldl2strm
  • (经验)后面不要对同位置再 pldl1keep会变慢
  • (经验)适合提前准备要跳到很远的地方读,比如换 channel