小编Luu*_*cky的帖子

CUDA nvcc建立图书馆链

我的目标是:library2.so正在使用library1.somycode.o正在使用(库应该链接)library2.so(也许library1.so).

源代码是(省略一行头文件):

library1.cu:

__device__ void func1_lib1(void){}
Run Code Online (Sandbox Code Playgroud)

library2.cu:

#include "library1.h"
__global__ void func1_lib2(void)
{
    func1_lib1();
}
extern "C"
void func2_lib2(void)
{
    func1_lib2<<<1,1>>>();
}
Run Code Online (Sandbox Code Playgroud)

mycode.c中:

#include "library2.h"
int main(void)
{
    func2_lib2();
}
Run Code Online (Sandbox Code Playgroud)

我正在根据 Makefile 构建共享库

broken:
    rm -f *.o *.so
    nvcc -arch=sm_30 --compiler-options '-fPIC' -dc library1.cu
    nvcc -arch=sm_30 --compiler-options '-fPIC' -dlink -o cuda-lib1.o library1.o
    gcc  -shared -Wl,-soname,library1.so -o library1.so library1.o uda-lib1.o
    nvcc -arch=sm_30 --compiler-options '-fPIC' -dc library2.cu
    nvcc -arch=sm_30 --compiler-options '-fPIC' …
Run Code Online (Sandbox Code Playgroud)

cuda dynamic-linking nvcc

0
推荐指数
1
解决办法
1629
查看次数

标签 统计

cuda ×1

dynamic-linking ×1

nvcc ×1