gpt4 book ai didi

c++ - cudaMalloc 不适用于模板

转载 作者:行者123 更新时间:2023-11-28 07:14:39 27 4
gpt4 key购买 nike

template <typename T, std::size_t N>
void gpu_load(T (&data)[N])
{
cudaMalloc((void**)data, N*sizeof(T));
}

我这样调用它:

float data[2];
gpu_load(data);

但它不起作用。我猜它一定是带有 & 和点的东西......

最佳答案

您不能只将指针转换为指向指针的指针。数据是 T* 类型,但 cudaMalloc 想要一个 void **

试试这个:

cudaMalloc(static_cast<void**>(&d), N*sizeof(T));

注意新的符号。

编辑:按照评论中的建议添加了静态转换。

关于c++ - cudaMalloc 不适用于模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20436085/

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