Hasty Briefsbeta

双语

Auto-vectorizing operations on buffers of unknown length

6 months ago
  • #GCC
  • #optimization
  • #auto-vectorization
  • 当缓冲区长度未明确指定时,GCC无法对诸如strlen()之类的简单搜索操作进行自动向量化。
  • GCC 15.1版本引入了对已知长度循环的改进自动向量化功能,支持对缓冲区字符查找等操作进行向量化处理。
  • 一种实现strlen()自动向量化的技巧是传入SIZE_MAX作为长度参数,这使得循环条件在实际执行时变得冗余。
  • 基准测试显示,类似strlen()的操作经自动向量化后性能可提升10至15倍。
  • GCC新补丁集旨在实现对未知长度循环的自动向量化,从而不再需要‘伪造长度’的技巧。
  • 与GCC不同,Clang目前尚无法对讨论的这些函数实现自动向量化。