在Intel Devcloud中运行代码,抛出运行时错误



我试图运行这个代码,但在编译英特尔devcloud使用这些命令:

icpx -qopenmp -fopenmp-targets=spir64 openmp_target_offload_clause_ordering.cpp
export OMP_TARGET_OFFLOAD=MANDATORY

显示运行时错误。

#include <stdio.h>
int main() {
double *V = reinterpret_cast<double*>(0xdeadbeef);
printf("pointer=%pn", V);
#pragma omp target parallel for simd is_device_ptr(V) if(true)
for(int i = 0; i < 1; ++i) {
printf("pointer=%pn", V);
}
#pragma omp target parallel for simd if(true) is_device_ptr(V)
for(int i = 0; i < 1; ++i) {
printf("pointer=%pn", V);
}
return 100;
}

您输入的设备指针无效。将main函数第一行的(0xdeadbeef)替换为(omp_target_alloc(size, 0)),如下所示:

doubleptr = reinterpret_cast>(omp_target_alloc(size, 0));

希望这对你有帮助!

最新更新