-
Notifications
You must be signed in to change notification settings - Fork 142
Description
Why is it necessary to create buffers in loop? What if i just want to create buffer just once? Is it doable?
for (int lvl = 0; lvl < NUM_LEVELS - 1; lvl++)
{
cl::Buffer pyr_imageToDevice1(context, CL_MEM_USE_HOST_PTR | CL_MEM_READ_ONLY,
(pyr_h[lvl] * pyr_w[lvl] * CH_TYPE),
(ap_uint<INPUT_PTR_WIDTH> *)imagepyr1[lvl].data);
cl::Buffer pyr_imageFromDevice1(context, CL_MEM_USE_HOST_PTR | CL_MEM_WRITE_ONLY,
(pyr_h[lvl + 1] * pyr_w[lvl + 1] * CH_TYPE),
(ap_uint<OUTPUT_PTR_WIDTH> *)imagepyr1[lvl + 1].data);
cl::Buffer pyr_imageToDevice2(context, CL_MEM_USE_HOST_PTR | CL_MEM_READ_ONLY,
(pyr_h[lvl] * pyr_w[lvl] * CH_TYPE),
(ap_uint<INPUT_PTR_WIDTH> *)imagepyr2[lvl].data);
cl::Buffer pyr_imageFromDevice2(context, CL_MEM_USE_HOST_PTR | CL_MEM_WRITE_ONLY,
(pyr_h[lvl + 1] * pyr_w[lvl + 1] * CH_TYPE),
(ap_uint<OUTPUT_PTR_WIDTH> *)imagepyr2[lvl + 1].data);
How can i create buffer once outside the loop? I want to do this because creating buffer is the most time taking process in whole project.