5
运行时
OPENACC运行错误
2025-04-10 13:53:59
156

操作系统版本:CentOS Linux release 7.6.181
DTK版本:DTK24.04.1
驱动版本:/
DCU类型:gfx906
MPI:/public/software/mpi/openmpi/openmpi-4.1.5 
编译器:/public/software/compiler/rocm/dtk-24.04.2/llvm/bin/clang++
编译选项:-lm -g -O2 -I/public/home/ghfund4_a41/ref.gpu/mdspan/include/ -target x86_64-pc-linux-gnu $(DEFS) -fPIC -Wall -fopenacc -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx906 -Wno-openacc-and-cxx -I/public/software/mpi/openmpi/openmpi-4.1.5//include/ -L/public/software/mpi/openmpi/openmpi-4.1.5//lib/ -D__HIP_PLATFORM_AMD__
问题描述:下述代码在类方法中。编译可以通过,但运行报错。
报错内容:

Libomptarget error: Host ptr 0x000000000525e1a8 does not have a matching target pointer.
全部评论(12)
只看楼主
网
网友r8FirG
3楼
请修改-march=gfx926后再试,如问题仍然存在,请给出完整代码便于我们分析。
2025/4/8
H
HwHiAiUser007
回复 @网友r8FirG
好的我尝试一下。感谢
2025/4/9
P
panhb
2楼
k100的gfx应该是926,麻烦您改下编译选项中的march为gfx926。或者使用rocminfo |grep gfx查看下机器的gfx,根据这个进行修改。
2025/4/8
H
HwHiAiUser007
回复 @panhb
好的,我尝试一下。感谢
2025/4/9
H
HwHiAiUser007
回复 @panhb
用rocminfo查了是906,估计不是K100的卡。上述问题依旧存在。
2025/4/10
H
HwHiAiUser007
回复 @panhb

错误代码:

```cpp

#if 1

// 封装到头文件方法,不会报错。

xxx_acc_test(__FILE__, __LINE__);

int i = 0;

const int N = 1024;

// 直接在so的类方法中写,会报错

#pragma acc enter data copyin(this[:1])

#pragma acc parallel loop gang worker

for (i = 0; i < 1024; i++)

{

}

```

上述代码在main.cpp中不会报错,但是在so的类方法中使用会报错。而将代码封装到头文件inline函数后,在类方法中调用也不会报错。
2025/4/10
全部8条回复
H
HwHiAiUser007
楼主
1楼

报错代码:

```cpp

int i =0;

#pragma acc enter data copyin(this[ : 1])

#pragma acc parallel loop gang worker default(none)

for (i = 0; i < 64; i++){}

#pragma acc exit data delete(this[ : 1])

```
2025/4/8
没有更多内容了
--
楼主
Level.4
0 帖子
楼主热帖
暂无数据