使用cudaMemset清除CUDA中的uint3

使用cudaMemset清除CUDA中的uint3,cuda,Cuda,我有uint3类型的数据。我的应用程序只填充成员x和y一次,但填充成员z多次。所以,我需要在下一个数据到来之前清除成员z。可以使用cudaMemSet进行设置吗?可以用于设置值 int* dev_ptr = (int*)dev_uint3_ptr; cudaMemset2D( dev_ptr + 2, // offset device_ptr by 2 elements so first element is z sizeof(uint3), // set pitch t

我有uint3类型的数据。我的应用程序只填充成员x和y一次,但填充成员z多次。所以,我需要在下一个数据到来之前清除成员z。可以使用cudaMemSet进行设置吗?

可以用于设置值

int* dev_ptr = (int*)dev_uint3_ptr;
cudaMemset2D(
    dev_ptr + 2,    // offset device_ptr by 2 elements so first element is z
    sizeof(uint3),  // set pitch to size of uint3 so each increment is to next z
    0,              // set to 0
    sizeof(int),    // sizeof(z)
    elements        // number of elements in your array
    );

我对演出没有把握。您可能需要考虑从结构数组到数组结构的切换。

关于性能,在使用它的第一个内核中初始化Z为零可能更好。