我在使用 CUDA 管理分配时遇到了严重错误。我想确认以下代码是正确的:
T* x;
cudaMallocManaged(&x, sizeof(*x));
new(x) T(..)
CUDA 版本 11 是否支持放置新语法。 谢谢。
答案 0 :(得分:1)
是的,这应该是可用的,忽略使用省略号和缺少分号等小问题。只需稍加搜索,您就可以在此处的 SO ...
标签上找到在 CUDA 中正确和典型使用 Placement new 的示例。
是的,支持/可以使用新的展示位置。您在此处描述的代码主要是主机代码(忽略对主机代码库的调用)。因此,您所展示的上下文中对这个操作(放置新)的支持实际上来自您正在使用的主机编译器,而不是 CUDA 工具包提供的任何东西。