Skip to content

L3 Corner Track example #94

@mbugti

Description

@mbugti

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions