• opencl(6)读写传输命令、内存映射命令


    1:将缓存对象的内容读到缓存对象中(从设备到主机)

    cl_int clEnqueuReadBuffer(

    cl_command_queue command_queue,  //命令队列

    cl_mem buffer,               //  缓存对象

    cl_bool blocking_read,          //是否堵塞CL_TRUE CL_FALSE

    size_t offset,                //缓冲区起始偏移位置

    size_t size,                //缓冲区大小大小

    void *ptr,                  //宿主机内存中的指针,指示所读数据写到哪里

    cl_uint num_events_wait_in_list,

    const cl_event* event_wait_list,

    cl_event *event

    )

    2:将主机内存写到缓冲对象中(从主机写到设备)

    cl_int clEnqueueWriteBuffer(

    cl_command_queue  command_queue,

    cl_mem buffer,

    cl_bool blocking_write,          //是否堵塞

    size_t offset,

    size_t size,

    void* ptr,                 //从ptr指示的主机内存中的数据写到buffer

    cl_uint num_events_waut_in_list,

    const cl_event* event_wait_list,

    cl_event* event

    3:内存映射命令

    1)将缓存对象中的区域映射到主机内存,返回映射指针

    void* clEnqueueMapBuffer(

    cl_command_queue command_queue,

    cl_mem buffer,

    cl_bool blocking_map,

    cl_map_flags map_flags,

    size_t offset,

    size_t size,

    cl_uint num_events_wait_in_list,

    const cl_event* event_wait_list,

    cl_event* event,

    cl_int *errcode_ret

    )

    2)解映射

    cl_int clEnqueueUnmapMemObject(

    cl_command_queue command_queue,//命令队列

    cl_mem memobj,           //缓存对象

    void* mapped_ptr,          //映射指针

    cl_uint num_events_in_wait_list,

    const cl_event* event_wait_list,

    cl_event* event

    )

    cl_map_flags:

    CL_MAP_READ            映射完成读操作

    CL_MAP_WRITE            映射完成写操作

    CL_MAP_WRITE_INVALIDATE_REGION     

    此标志指定在内存对象中映射的区域正在进行写入映射。

    被映射区域的内容将被丢弃。这通常是被映射的区域被主机覆盖的情况。此标志允许实现不再保证由握力队列映射{Buffer|Image}返回的指针包含被映射区域的最新位,这是一个显著的性能增强。

  • 相关阅读:
    无向图判断三元环
    POJ 2785 4 Values whose Sum is 0
    lower_bound和upper_bound
    2153: 2018湖南多校第二场-20180407(网络同步赛)
    前缀和、前缀积
    hdu 4686 Arc of Dream
    UVA Recurrences 矩阵相乘+快速幂
    UVA 11149 Power of Matrix 构造矩阵
    poj 1258 Agri-Net prim模板 prim与dijkstra的区别
    poj 1182 食物链 (并查集)
  • 原文地址:https://www.cnblogs.com/pengtangtang/p/PengTangTang_OpenCL_numberfive.html
Copyright © 2020-2023  润新知