3

我目前正在创建一个内核,该内核使用以下调用将 3D 卷从源缓冲区平滑到目标缓冲区:

    d_aVolumeInput  = clCreateBuffer(g_dGpuContext, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,    _nVoxelsScanArea, _aVolumeInput,    &g_nErrNum);    CHECK_OCL();
    d_aVolumeSmooth = clCreateBuffer(g_dGpuContext, CL_MEM_WRITE_ONLY| CL_MEM_COPY_HOST_PTR,    _nVoxelsScanArea, _aVolumeInput,    &g_nErrNum);    CHECK_OCL();

不幸的是,我的内核假设一个初始化的目标数组“d_aVolumeSmooth”效率更高,到目前为止,我发现使其工作的唯一方法是将我的 _aVolumeInput 发送到两个数组,从而导致几兆字节的数据每帧发送...

有没有办法让我分配正确大小的设备端内存并将其初始化为零?

4

0 回答 0