首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何列出OpenCL-2.0设备的OpenCL平台?

如何列出OpenCL-2.0设备的OpenCL平台?
EN

Stack Overflow用户
提问于 2017-04-08 10:15:24
回答 1查看 1.4K关注 0票数 0

我需要为我的开源项目1.2实现一个真正有效的平台版本筛选器:https://github.com/tugrul512bit/Cekirdekler

目前,我没有150美元可以购买OpenCL2.0功能的显卡,所以我正在开发一个纯1.2版本的系统,不确定其他(新的)系统。

问题:当同一个系统中只有OpenCL2.0功能的gpus和1.2(max)和2.0(max)功能gpus时,平台的列表是什么样子的呢?

让我们假设我在用这个

代码语言:javascript
复制
clGetPlatformIDs()

得到一份名单。我想它应该只给每个设备一个版本的平台,还是,

例如,GTX(OpenCL2.0功能?)可以列出两个平台:

  • OpenCL 1.2
  • OpenCL 2.0

同样的设备单独使用?还是只提供2.0版本?

和GT-640怎么样?

  • OpenCL 1.2 (TitanXP + GT-640)
  • OpenCL 2.0 (TitanXP)

  • OpenCL 2.0 (TitanXP)
  • OpenCL 1.2 (GT-640)

哪一种呢?

这种情况会随司机而改变吗?

那么OpenCL版本2.3GPU呢?在OpenCL API中,它们是否看起来是2.0,还是正确地将3作为次要版本?

如果有人能分享他/她的经历,我很感激。

目前,项目可以采用1.2或2.0版本(我安装的Intel驱动程序有一个带有bug的试验性版本2.1,因此,我不确定Nvidia或Amd是否可以在OpenCL-2.x功能卡中执行类似或相反的操作)。我也可以过滤平台名称“试验性”/“测试版”,以排除这类平台,但我不确定同一GPU是否有多个版本。

我假设2.0设备对1.2具有向后兼容,但我是否需要额外的东西来启用1.2规范?目前,我不会为1.2设备做任何额外的事情。也许2.0需要一些吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-08 13:36:15

每个平台独立于其他平台返回自己的版本号。您可以混合使用,例如,GPU为1.2,CPU驱动程序为2.0。

如果只发出OpenCL 1.2API调用,则可以使用这两种调用。如果进行OpenCL 2.0API调用,则只能使用2.0或更高版本的平台。

同样,平台中的设备可以返回它们自己的版本号,尽管我认为它们不能大于它们的父平台号。这方面的一个例子是一个较旧的GPU,它可能只是OpenCL 1.1,尽管平台是1.2。

与此不同的是每个设备所支持的OpenCL内核语言的版本。为了向后兼容,如果您不传递编译选项,您将得到OpenCL C1.x。如果您在2.x设备上,那么在编译内核以获得新的语言特性时,可以传递一个选项字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43292748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档