【问题标题】:Undefined reference when using intrinsic使用内部时未定义的引用
【发布时间】:2013-06-20 14:08:02
【问题描述】:

我想测试 xeon phi 的 SIMD 内在函数。所以我写了以下代码:

#pragma offload target(mic) in(a:length(N))
#pragma omp parallel for
for(int i=0;i<16;++i){
    __m512i p ;
    p = _mm512_loadunpackhi_epi64(p, &a[i*10]);
}

编译时,icpc 给了我未定义的引用错误

/tmp/icpc3kLMRg.o: In function `main':
./src/test.cc:(.text+0x2e8): undefined reference to `_mm512_extloadunpackhi_epi64'
make: *** [test.cc] Error 1

除了immintrin.h之外,是否还有其他头文件要包含

【问题讨论】:

    标签: intel intrinsics intel-mic


    【解决方案1】:

    编译器为主机和至强 phi 编译。主机不支持您尝试调用的功能,因此您需要这样做:

    #ifdef __MIC__
    #pragma offload target(mic) in(a:length(N))
    #pragma omp parallel for
    for(int i=0;i<16;++i){
        __m512i p ;
        p = _mm512_loadunpackhi_epi64(p, &a[i*10]);
    }
    #else
       <do something differnt on the host (or nothing)>
    #endif
    

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      相关资源
      最近更新 更多