在 CUDA 内核中使用 memset

Using memset in a CUDA kernel

这似乎是一个显而易见的问题,但 Google 没有发现任何有趣的问题。在 CUDA 内核中使用 memset 是否合法,例如:

__device__ void myKernel()
{
    int array[10];
    memset(array, 0, sizeof(array));
    // ...etc...
}

(我知道 int array[10] = {0}; 可能更好,但这只是一个更复杂的例子。)

是,如 Appendix B of the programming manualmemset 以及 memcpymallocfree 中所述(后两者仅在计算设备代码支持 >= 2.0 设备)。