gpt4 book ai didi

c++ - 设备代码中 CUDA 类静态成员的成语?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:42:02 28 4
gpt4 key购买 nike

所以,我有一个要移植到 CUDA 9 的 C++14 库。我实际上(我认为)非常了解 CUDA,但自那以后我没有直接接触过它CUDA 6.

通常,我在代码中使用大量模板和小类。令我惊讶的是,在 CUDA 9 中仍然不能有 static __device__ 类成员,但全局变量没问题。对此有好的成语或解决方法吗?人们通常做什么?

编辑:我应该清楚,我的意思是专门针对模板类。如果该类未模板化,则非常简单。

编辑 2:这是一些示例代码

在正常的主机端 C++ 中,我这样做:

template <typename T>
class MyClass {
static T my_static_member;
};

在设备上,这不会编译,那么什么是好的等价物?

template <typename T>
class MyClass {
static __device__ T my_static_member;
};

最佳答案

如果您compile your CUDA with clang,您的原始代码就可以工作.

关于c++ - 设备代码中 CUDA 类静态成员的成语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49029906/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com