【问题标题】:what is the content of cl_platform_id data structure?cl_platform_id 数据结构的内容是什么?
【发布时间】:2018-06-03 22:19:19
【问题描述】:

我了解cl_platform_id 是一种数据结构,如:

typedef struct{
   foo1 bar1;
   foo2 bar2;
   ...;
}cl_platform_id;

但是这个结构的内容是什么?例如,如果我想将这些内容打印到控制台,我应该使用什么数据类型?

我尝试了整数,但我得到了错误:

警告:格式指定类型“int”,但参数有类型 'cl_platform_id'(又名'struct _cl_platform_id *')[-Wformat]

提前感谢您的帮助。

【问题讨论】:

    标签: opencl


    【解决方案1】:

    cl_platform_id 是一种抽象(不透明)类型,不打算直接使用。而是在cl_platform_id 上使用clGetPlatformInfo 查询您想知道的信息。您可以获取可以打印的字符串(如CL_PLATFORM_NAME)。

    【讨论】:

    • 您能否向我指出实现cl_platform_id 的源代码?
    【解决方案2】:

    感谢w-manswer,我被指出了正确的方向,是写一个sn-p来打印平台信息:

    cl_platform_info Param_Name[5]={CL_PLATFORM_PROFILE, CL_PLATFORM_VERSION, CL_PLATFORM_NAME, CL_PLATFORM_VENDOR, CL_PLATFORM_EXTENSIONS};
    cl_platform_info param_name;
    size_t param_value_size;
    for(int j=0;j<5;j++){
      param_name=Param_Name[j];
      err = clGetPlatformInfo( platforms[i], param_name, 0, NULL, &param_value_size);
      char* param_value = (char*)malloc( sizeof(char) * param_value_size);
      err = clGetPlatformInfo( platforms[i], param_name, param_value_size, param_value, NULL );
      printf("%s\n", param_value);
      free(param_value);
    }
    

    完整的代码可以在this GitHub Gist找到。

    【讨论】:

      猜你喜欢
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 2015-12-09
      • 2014-06-06
      相关资源
      最近更新 更多