You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

arrow parquet触发非法指令信号,如何使用Conan构建无AVX2支持的版本?

配置方法与排查方案

关闭AVX2支持/适配通用架构的Conan配置

  • 首先在conanfile.txt的[options]块新增对应配置,Arrow官方Conan包内置了SIMD指令集控制参数,两种配置方式二选一即可:
    [options]
    arrow:shared=True
    arrow:parquet=True
    arrow:with_snappy=True
    # 方式一:直接禁用AVX2支持
    arrow:with_avx2=False
    # 方式二:指定SIMD级别为Jenkins服务器支持的最高版本,可选值包括none/sse4_2/avx/avx2/avx512
    arrow:simd_level=avx
    
    如果需要生成完全不依赖扩展指令集的通用二进制,可以将simd_level设置为none,仅会损失部分运算性能。
  • 调整构建命令,强制指定目标架构,避免编译器默认优化本地架构:
    CFLAGS="-march=x86-64" CXXFLAGS="-march=x86-64" conan install .. --build=arrow --settings arch=x86_64
    
    该命令会强制编译器生成兼容通用x86_64架构的二进制,不会自动启用本地设备支持的AVX2指令。

其他需要排查的问题

  • 检查Conan全局配置是否默认启用本地架构优化:执行conan config get查看全局编译参数,若存在-march=native配置,需要在构建时手动覆盖或者全局删除该配置。
  • 验证Arrow构建日志:执行构建命令时添加-v参数输出详细日志,搜索AVX2关键字确认构建过程中AVX2检测结果为未启用,避免配置未生效。
  • 排查依赖库的指令集兼容问题:确认Snappy等其他依赖库也没有使用AVX2指令编译,若依赖库是从Conan中心拉取的预编译包,也需要添加--build=*参数全量从源码构建所有依赖,保证指令集统一。
  • 排除其他指令集不兼容问题:除AVX2外,还需确认Jenkins服务器是否支持SSE4.2、BMI等Arrow可能默认启用的指令集,若存在不支持的指令集,需要在options中对应关闭。

内容的提问来源于stack exchange,提问作者JACH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 15:51:04