Opencl paltform id

通用的opencl platform id 获取方法通常是

cl_int clGetPlatformIDs(cl_uint num_entries,
    cl_platform_id *platforms,
    cl_uint *num_platforms)

这个命令会得到可用的OpenCL平台的列表。这个函数的platforms 和 num_platforms都可以设定为NULL,以获取到不同的信息。 如果参数platforms为NULL,clGetPlatformIDs会返回可用平台数。返回的平台数可以用num_entries来限制,这个参数要大于0并小于或等于可用平台数。可以将num_entries和platforms分别设置为0和NULL来查询可用的平台个数。

如果想要给没有平台都分配一个platformID,则可以调用clGetPlatformIDs两次,第一次把Platform 参数设定为NULL,通过num_platforms参数获取当前的platform个数,再为每个platform分配一个cl_platform_id数据结构。然后再次调用clGetPlatformIDs函数为每个platform分配对应的cl_platform_id。

举一个简单的例子说明如何查询和选择平台,下面使用clGetPlatformIDs()得到一个平台ID列表:

cl_int errNum;
cl_uint numPlatforms;
cl_platform_id * platformIDs;
errNum=clGetPlatformIDs(0,NULL,&numPlatforms);
platformIDs=(cl_platform_id*)malloc(sizeof(cl_platform_id)*numPlatforms);
errNum=clGetPlatformIDs(numPlatforms,platformIDs,NULL);

然而对于Intel FPGA 平台的时候,针对这个方法进行了进一步的封装

platformid=findPlatform("Intel(R) FPGA");

其中可以指定的字符串为:
“Intel(R) FPGA SDK for OpenCL”,
“Intel(R) FPGA SDK”, 或者 “Intel(R) FPGA”.
之前使用的Altera 字样会报错。ERROR: Unable to find Altera OpenCL Platform

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值