我試圖運行這段代碼,但在使用這些命令在 intel 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=%p\n", V);
#pragma omp target parallel for simd is_device_ptr(V) if(true)
for(int i = 0; i < 1; i) {
printf("pointer=%p\n", V);
}
#pragma omp target parallel for simd if(true) is_device_ptr(V)
for(int i = 0; i < 1; i) {
printf("pointer=%p\n", V);
}
return 100;
}
uj5u.com熱心網友回復:
您輸入的設備指標無效。在 main 函式的第一行替換(0xdeadbeef)為(omp_target_alloc(size, 0)):
雙指標= reinterpret_cast<double >(omp_target_alloc(size, 0));
希望這可以幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/533420.html
標籤:Intel Collective 指针英特尔英特尔-oneapi英特尔云
下一篇:在Excel中查找值并使用公式
