gpt4 book ai didi

c++ - 我可以在 OpenACC 中使用 std::bitset 的函数吗?

转载 作者:太空狗 更新时间:2023-10-29 21:35:35 25 4
gpt4 key购买 nike

是否可以在 OpenACC 区域使用 bitset 的功能?示例代码:

#include <string.h>
#include <bitset>

#pragma acc routine seq
int mystrcmp (const char *, const char *);
int main(int argc, char** argv)
{
long sum = 3, i;
std::bitset<11> vv;
char *str;
char *str2;

#pragma acc parallel loop reduction(+:sum)
for(i = 0; i<5000000000; ++i)
{
sum +=i%2;
if(i == 1){
mystrcmp(str, str2);
vv.count();
}
}
return 0;
}
int mystrcmp (const char *s1, const char *s2) {...}

如果我用 pgc++ -fast -acc -Minfo=accel -ta=nvidia:managed -DNDEBUG -pgc++libs -g 和类似的 (LD_LIBRARY_PATH=/opt/pgi) 编译上面的代码/linux86-64/lib),我收到以下错误:PGCC-S-0155-PGI support procedure called within a compute region: __blt_pgi_popcountl (proba2.cpp: 1288)
PGCC-S-0155-加速器区域被忽略;请参阅 -Minfo 消息(proba2.cpp:28)
主要的:
28、加速器区域忽略
1288, 加速器限制:不支持调用支持例程 '__blt_pgi_popcountl'
PGCC/x86 Linux 16.10-0:编译完成但出现严重错误
,但代码的行数比 1288 少得多。
我使用 mystrcmp 因为内置的 strcmp 需要 routine seq,但据我所知,这是不可能解决的。
但是,如果vv.count()被注释掉,那么编译就成功了。
我阅读和搜索了很多关于OpenACC和OpenACC问题,但我没有找不到这个问题的相应响应。
我该怎么办?

最佳答案

不,抱歉,但我们 (PGI) 尚未添加对“std::bitset”例程的运行时支持。由于这是我看到的第一个功能请求,我提交了一个新的 RFE (TPR#23746) 并将其发送给我们的编译器工程师,看看我们能做什么。

关于c++ - 我可以在 OpenACC 中使用 std::bitset 的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42051963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com