小编Tso*_*dze的帖子

CUDA 内核中的 STD 类

我知道在 CUDA 内核中无法使用字符串、向量、映射或集合等 std 类。然而,没有它们就很不舒服。我必须在 CUDA 内核中编写大量代码,所以我想至少使用字符串和向量。我不是在谈论诸如推力之类的东西。我希望能够写出这样的东西:

__global__ void kernel()
{
    cuda_vector<int> a;
    for(int i=0;i<10;i++)
        a.push_back(i);
}

int main()
{
    kernel<<<1,512>>>();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这应该创建 512 个线程,并且在每个线程中我想创建 cuda_vector 类并将其用作 std::vector。我在互联网上没有找到任何解决方案,我开始编写自己的课程。这个类的每个函数都被定义为“__ host __”和“__ device __”函数,这样我就可以在CPU和GPU上使用它。理论上是可以实现的,但只能在费米架构上实现。因为,我们需要动态分配内存。我有 GTX 580 并开始编写自己的 Vector。但很累,需要很多时间。没有我可以使用的实现吗?我不敢相信没有。这么多软件开发人员在没有 CUDA 的情况下编写代码吗?没有人尝试编写他/她自己的版本?

cuda vector std

5
推荐指数
2
解决办法
3466
查看次数

标签 统计

cuda ×1

std ×1

vector ×1