• opencl(2)平台、设备、上下文的获取与信息获取


    1:平台

    1)获取平台id

    cl_int clGetPlatformIDs(

    cl_uint num_entries,       //想要获取的平台数

    cl_platform_id * flatformids, //获取到设备会保存在该指针中

    cl_uint *platforms       //环境中存在的平台数量

    )

    2)获取指定平台的info

    cl_int clGetPlatformInfo(

    cl_platform_id platform_id,  //platform平台

    cl_platform_info param_name, //获取信息的类型

    size_t  param_value_size ,  //所要保存信息的字节大小

    void *param_value,      //所要保存的地址

    size_t param_value_size_ret //实际信息的数据大小

    )

    信息类型:

    CL_PLATFORM_PROFILE  确认系统是否支持完整的opencl版本还是嵌入式版本(FULL_PROFILE  EMBEDDED_PROFILE)

    CL_PLATFORM_VERSION

    CL_PLATFORM_NAME

    CL_PLATFORM_VENDOR  返回和平台相关的厂商

    CL_PLATFORM_EXTENSIONS  查看平台支持的浮点精度扩展

    2:设备

    1)获取设备id

    cl_int clGetDeviceIDs(

    cl_platform_id  platform_id,   //所选平台

    cl_device_type device_type, //设备类型

    cl_uint num_entries,    //想要获取的设备数

    cl_device_id *devices,      //保存设备的地址

    cl_uint num_devices    //总设备数

    )

    2) 获取所得设备的信息

    cl_int cl_GetDeviceInfo(

    cl_device_id device_id,     //所选设备

    cl_device_info param_name, //信息类型

    size_t param_value_size,  //所要保存的信息字数

    void* param_value,     //信息保存的地址

    size_t param_value_size_ret   //信息应有的字节数

    )

    信息的类型

    CL_DEVICE_EXTENSION  支持的扩展类型

    CL_DEVICE_GLOBAL_MEM_SIZE  全局设备内存大小

    CL_DEVICE_ADDRESS_BITS    设备地址空间大小

    CL_DEVICE_PREFERRED_VECTOR_EIDTH_CHAR/SHORT/INT/LONG/DOUBLE  向量长度

    3:上下文

    1)根据设备类型,创建上下文

    cl_context clCreateContext(

    cl_context_properties *properties,//属性列表

    cl_uint num_devices,      //设备数量

    const cl_device_id *devices,      //设备列表

    void* ftn_notfy(

    const char* errinfo,

    const char* private_info,

    size_t cb,

    void *user_data),

    void *user_data,        //提供报错信息

    cl_int *errcode_ret        //错误信息大小

    )

    2)根据设备属性,创建上下文

    cl_context clCreateContext(

    cl_context_properties *properties,//属性列表

    cl_device_type device_type

    void* ftn_notfy(

    const char* errinfo,

    const char* private_info,

    size_t cb,

    void *user_data),

    void *user_data,        //提供报错信息

    cl_int errcode_ret        //错误信息大小

    )

    3)获取上下文信息

    cl_int clGetContextInfo(

    cl_context  contxet,     //上下文

    cl_context_info param_name,//信息参数名称

    size_t param_value_size,      //所要保存的大小

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

    size_t param_value_size_ret //信息的大小

    )

    信息类型:

    CL_CONTEXT_REFERENCE_COUNT  引用计数

    CL_CONTEXT_DEVICES    上下文中包含的设备

    CL_CONTEXT_PROPERTIES  属性参数

    4)管理上下文的引用

    cl_int clRetainContext(cl_context context)  引用计数+1

    cl_int clReleaseContext(cl_contetx contex)  引用计数-1

    创建时,计数加1,

  • 相关阅读:
    numpy百题冲关,pandas百题冲关
    mapreduce过程以及相关类总结
    mapreduce,数据结构和类型介绍
    精确度、召回率、混淆矩阵的关系
    小程序点击图片放大效果 单张图片 多张图片
    小程序动态添加class及调接口传递多个参数
    小程序for循环嵌套
    小程序富文本转换
    jquery函数加载及生成随机数
    微信小程序 swiper 显示图片计数 当前/总数
  • 原文地址:https://www.cnblogs.com/pengtangtang/p/PengTangTang_OpenCL_number_one.html
Copyright © 2020-2023  润新知