C++ cuda malloc托管内存之后的新位置
我在CUDA管理的分配中犯了严重错误。我想确认以下代码是否正确:C++ cuda malloc托管内存之后的新位置,c++,cuda,C++,Cuda,我在CUDA管理的分配中犯了严重错误。我想确认以下代码是否正确: T* x; cudaMallocManaged(&x, sizeof(*x)); new(x) T(..) 是CUDA版本11支持的新语法。 谢谢。是的,应该可以使用,忽略一些小问题,比如省略号和缺少分号。您可以在SOCUDA标签上找到正确和典型地使用CUDA中的placement new的示例,只需稍加搜索 是,支持/可用新位置。这里描述的代码主要是主机代码(忽略对主机代码库的调用)。因此,在您展示的上下文中对该操作(
T* x;
cudaMallocManaged(&x, sizeof(*x));
new(x) T(..)
是CUDA版本11支持的新语法。
谢谢。是的,应该可以使用,忽略一些小问题,比如省略号和缺少分号。您可以在SO
CUDA
标签上找到正确和典型地使用CUDA中的placement new的示例,只需稍加搜索
是,支持/可用新位置。这里描述的代码主要是主机代码(忽略对主机代码库的调用)。因此,在您展示的上下文中对该操作(placement new)的支持实际上来自您正在使用的主机编译器,而不是CUDA工具包提供的任何东西