如果我用 `-Dcpu-baseline="none"` 构建NumPy,它还会为较新的CPU生成优化的代码路径吗?
我对这部分文档有些难以理解:https://numpy.org/devdocs//reference/simd/build-options.html#targeting-older-cpus
在NumPy的默认构建中,cpu-baseline 被设置为 min。在这种情况下,文档指出NumPy会生成多条代码路径,并在运行时根据所执行的CPU架构动态选择最快的一条。
如果我将 cpu-baseline 设置为 none,情况仍然如此吗?还是会为所有CPU只生成一条代码路径?
解决方案
是的,NumPy仍然会为具有与构建所在主机相同架构并具备高级SIMD / ISA扩展的新一代CPU生成分发目标。
查看构建脚本 the build script,将 cpu-baseline 选项设为 none,若没有其他配置(如 [cpu-baseline-detect],影响在构建系统中如何计算出有效的 CPU_CONF_BASELINE,从而使构建系统生成一个通用的构建。
所谓通用构建,是指你得到一个保守的基线构建,其中没有把NumPy的最小SIMD基线要求写入其中。
CPU_BASELINE_NAMES 将为空,最小SIMD基线将被编译为一个与基线构建分离的分发目标。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。