首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenACC使用math.h库

OpenACC使用math.h库
EN

Stack Overflow用户
提问于 2013-03-11 11:27:51
回答 2查看 867关注 0票数 1

您好,我使用的是CAPS OpenACC编译器,但是编译器似乎不能将函数链接到标准的math.h。

实际上,在我的例子中,sqrt函数在加速循环中的代码中使用。当我编译代码时,抛出了下面的错误:

代码语言:javascript
复制
/tmp/cc8L0aKZ.o:compute_fluxes_XrxAnW.translated.i:function _flux_function_central: error: undefined reference to 'sqrt'

有人有什么解决方案吗?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-07-17 01:21:37

所有加速器代码都必须使用routine指令进行标记。否则,编译器不会为它生成设备代码。PGI有一个article解释了如何处理这个问题。

您可以阅读这篇文章,或者尝试在代码中添加以下代码和其他顶级声明:

代码语言:javascript
复制
#pragma acc routine(sqrt) seq
票数 1
EN

Stack Overflow用户

发布于 2013-03-21 00:10:06

请使用以下命令重试

代码语言:javascript
复制
caps capsmc --openacc-target CUDA --io-report -Xnvcc -arch=sm_13 -c --force gcc -std=c99 -L/usr/include/math.h **-lm** compute_fluxes.c -o cf.13

(-lm实际上链接到标准数学库)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15330713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档