zoukankan      html  css  js  c++  java
  • opencl(5)缓存对象

    //创建的内存对象由内核访问,将缓冲区作为参数传递给内核

    1:创建缓存对象

    cl_mem clCreateBuffer(

    cl_context context,  //上下文

    cl_mem_flags flags,     //内存对象性质标签

    size_t size,      //大小

    void* host_ptr,    //主机地址

    cl_int *errcode_ret  //错误码

    )

    性质标签:

    CL_MEM_READ_WRITE     指定内核对象将由内核读写

    CL_MEM_WRITE_ONLY     指定内核对象只由内核写

    CL_MEM_READ_ONLY       指定内核对象只由内核读

    CL_MEM_ALLOC_HOST_PTR         指定缓冲区应当在宿主机可访问的内存中分配,不能与下一个性质一起用

    CL_MEM_USE_HOST_PTR    实现使用host_ptr引用的内存作为内存对象的存储位

    CL_MEM_COPY_HOST_PTR       实现分配内存对象的内存,并从hst_ptr引用的内存复制数据,不能和上一个性质一起使用。可以和CL_MEM_ALLOC_HOST_PTR,初始化这些对象的内容。且host_ptr不为NULL

    2:创建子缓存对象

    cl_mem clCreateSubBuffer(

    cl_mem buffer,            //缓存对象

    cl_mem_flags flags,            //性质对象

    cl_buffer_create_type buffer_create_type,//CL_BUFFER_CREATE_TYPE_ORGIN

    const void* buffer_create_info,     //缓存创建信息数据

    cl_int* errcode_ret            //错误代码

    )

    缓存创建信息结构数据:(buffer_create_info)

    typedef struct _cl_buffer_region{

    size_t origin;

    size_t size;

    }cl_buffer_region;

    3:获取缓存对象相关信息

    cl_int clGetMemObjectInfo(

    cl_mem memobj,      //缓存对象

    cl_mem_info param_name,   //信息类型名称

    size_t param_value_size,    //要获取相关信息的大小

    void* param_value,       //存放缓存信息的地址

    size_t param_value_size_ret  //实际获得信息的大小

    )

  • 相关阅读:
    oo第四次作业总结
    oo第三次博客总结
    oo第二次博客总结
    oo第一次博客总结
    leetcode155-最小栈
    leetcode141-环形链表
    leetcode278-第一个错误的版本
    leetcode118-杨辉三角
    LeetCode21-合并两个有序列表
    LeetCode27-移除元素
  • 原文地址:https://www.cnblogs.com/pengtangtang/p/PengTangTang_OpenCL_numberfour.html
Copyright © 2011-2022 走看看