Python报错symbol lookup error: xxx.so: undefined symbol: cufftxxx解决办法

技术背景

上一篇文章中介绍过如何实现本地MindSpore的CUDA算子,那么在算子编译和使用的过程中可能会出现一些小问题,这里介绍的是编译成功为so动态链接库之后,在python中调用,提示找不到xxx函数/字符的报错。这里使用的编译指令为:

$ nvcc --shared -Xcompiler -fPIC -o xxx.so xxx.cu

编译后完整报错如下:

python3: symbol lookup error: xxx.so: undefined symbol: cufftExecR2C

原因分析

我们在这个cu文件中调用了cufft的cufftExecR2C函数,但是在编译阶段未使用相关fft的编译配置,导致了编译后的so动态链接库无法识别到cufft库中的函数。

解决方案

在编译时加上-lcufft选项,问题解决。

$ nvcc --shared -Xcompiler -fPIC -lcufft -o xxx.so xxx.cu

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/cufft-issue.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

posted @ 2024-02-26 16:35  DECHIN  阅读(60)  评论(0编辑  收藏  举报