2013-06-24 3 views
1

Я хочу протестировать SIMD-интерфейс xeon phi. Так что я написал следующий код:Неопределенная ссылка при использовании встроенного

#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

ответ

2

компилятор компилирует для хоста а также для xeon 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