gpt4 book ai didi

pointers - 将结构中的双指针传递给 CUDA

转载 作者:行者123 更新时间:2023-12-04 04:45:55 25 4
gpt4 key购买 nike

我有以下结构:

 struct Param
{
double** K_RP;
};

我想在 CUDA 中对“K_RP”执行以下操作
 __global__  void Test( struct Param prop)
{
int ix = threadIdx.x;
int iy = threadIdx.y;
prop.K_RP[ix][iy]=2.0;
}

如果“prop”具有以下形式,我应该如何进行“cudaMalloc”和“cudaMemcpy”操作?
int main( )
{
Param prop;
Param cuda_prop;

prop.K_RP=alloc2D(Imax,Jmax);

//cudaMalloc cuda_prop ?

//cudaMemcpyH2D prop to cuda_prop ?

Test<<< (1,1), (Imax,Jmax)>>> ( cuda_prop);

//cudaMemcpyD2H cuda_prop to prop ?

return (0);

}

最佳答案

这样的问题不时被问到。如果您在 cuda 标签上搜索,您会找到各种带有答案的示例。这是one example .

  • 通常,包含在结构或其他对象中的动态分配的数据需要特殊处理。此 question/answer解释了为什么以及如何针对单指针 ( * ) 情况执行此操作。
  • 处理双指针( ** )非常困难,以至于大多数人会建议“扁平化”存储,以便可以通过单个指针( * )的引用来处理它。如果您真的想了解双指针 ( ** ) 方法的工作原理,请查看 this question/answer .这不是微不足道的。
  • 关于pointers - 将结构中的双指针传递给 CUDA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18185453/

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