为什么我在CUDA中得到cuMemcpyDtoH_v2的未定义符号错误

2024-04-19 01:59:46 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图编译我的代码时,我遇到了cuMemcpyDtoH_v2的未定义符号错误。我想我的问题是cummcpydtoh_v2的定义在哪里?我以为它会在cuda运行时环境中定义,但事实并非如此。这是我的代码:

#include </usr/local/cuda/include/cufft.h>
#include </usr/local/cuda/include/cuda.h>

void main()
{
   ...
   cuMemcpyDtoH_v2(v1, v2, ds);
   ...
}

我使用python进行编译二裂核设置.py因为我将python代码链接到cuda代码并创建python C扩展。在

^{2}$

在我的函数.py打电话给distils.core.setup()命令,用于编译python扩展。在

我假设cuMemcpyDtoH_v2将在cuda运行时环境中定义,我相信我使用“-lcudart”命令链接到该环境,但可能并非如此。在

我对C++编程和CUDA很陌生,所以我可能在某个地方犯了一个非常愚蠢的错误。我会很感激你的帮助。在


Tags: 代码py命令定义环境include链接usr
1条回答
网友
1楼 · 发布于 2024-04-19 01:59:46

多亏了罗伯特·克罗韦拉,我才得以使这件事发挥作用。根据Robert的说法,以cu开头的函数调用通常链接到驱动程序API,以cuda开头的函数通常链接到cuda rumtimeapi。所以我需要使用以下命令链接到cuda驱动程序API:

python myfunc.py -build-ext  inplace -lcudart -lcudafft -L"/usr/local/cuda/lib64" -lcuda -L"/usr/local/cuda/lib64/stubs/"

注意:我使用的是CUDA 9.1版

相关问题 更多 >