我在双核系统上使用Java Cl。我发现了两个平台,一个是"AMD“,一个是Intel,每个平台都有一个设备。
should it not return one platform and two devices ?发布于 2013-04-19 23:35:22
AMD和英特尔都为他们的一些CPU和GPU提供了OpenCL实现。在AMD的情况下,他们的OpenCL实现也支持英特尔CPU。因此,在安装AMD Accelerated Parallel Processing (APP) SDK之后,您的程序至少会识别具有一个设备的AMD平台,即您计算机中的CPU。安装英特尔OpenCL软件开发工具包后,您的计算机上将运行第二个检测您的OpenCL的应用程序。因此,查询可用平台将返回两个平台,每个平台都有一个设备。这两个设备都是一样的--你的电脑的CPU。不同之处在于使用哪种OpenCL实现来访问该处理器-即英特尔版本还是AMD版本。
关于内核的数量,OpenCL将CPU视为单个设备,但它允许您查询设备(即CPU)上存在多少个计算单元(即物理内核)。
发布于 2013-04-18 20:00:53
不,设备是您的CPU,即使您有多个插槽,它也会显示为一个设备。
您可以编写在尽可能多的可用内核上运行的代码(不需要知道有多少内核)
有些GPUS有数千个内核,将它们作为一个设备一起使用要容易得多。
例如,Tesla K10有3072个内核,你不仅不想告诉每个内核该做什么,而且你也不能轻易做到。GPU的设计是为了让每个内核都能做同样的事情。
https://stackoverflow.com/questions/16081560
复制相似问题