小编Tim*_*Tim的帖子

CUDA 构建共享库

我需要为 cuda 创建一个共享库。库的编译工作正常,但是当我尝试在我的程序中使用它时 nvcc 返回链接器或 ptxas 错误。

我将问题简化为以下代码。该库必须替换不同的 C 函数(此处:memset)。该库由三个 C++ 文件组成:

文件A.h

#ifndef FILEA_H_
#define FILEA_H_

namespace A {
    __device__ 
    void* memset(void* _in, int _val, int _size);
};
#endif
Run Code Online (Sandbox Code Playgroud)

文件A.cpp

#include "FileA.h"

__device__ 
void* A::memset(void* _in, int _val, int _size) {
    char* tmp = (char*)_in;
    for(int i = 0; i < _size; i++) tmp[i] = _val;
    return _in;
}
Run Code Online (Sandbox Code Playgroud)

临时类.h

#ifndef TEMPCLASS_H_
#define TEMPCLASS_H_

#include "FileA.h"

namespace A {
    template <typename T>
    class TC {
    public:
        __device__ 
        TC() { …
Run Code Online (Sandbox Code Playgroud)

cuda shared-libraries linker-errors nvcc

2
推荐指数
1
解决办法
2680
查看次数

标签 统计

cuda ×1

linker-errors ×1

nvcc ×1

shared-libraries ×1