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  //实际获得信息的大小

    )

  • 相关阅读:
    Linux基本知识
    Linux 基金会发起开源创新计划,为全球对抗 COVID-19 提供基础架构
    单片机程序设计有十层功力,你现在在哪一层?
    C语言太复杂?CUDA Python也能实现并行计算加速!
    Java 基础 子类赋值给父类问题
    SpringBlade AVUE 拖拽排序
    java 基础 Long类型 判断是否相等
    数字量输入模块和模拟量输入模块的区别是什么?
    模拟量输入模块和模拟量输出模块的应用范围
    NB-IOT关键技术分析
  • 原文地址:https://www.cnblogs.com/pengtangtang/p/PengTangTang_OpenCL_numberfour.html
Copyright © 2011-2022 走看看