OpenCL:如何创建初始化的设备端缓冲区

时间:2013-10-26 00:29:57

标签: c++ opencl

我正在创建一个内核,使用以下调用将源卷缓冲区中的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'发送到两个数组,从而导致几个额外的每帧要发送的兆字节数据......

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

0 个答案:

没有答案