codeblocks的调试工具栏(用Codeblocks进行OpenCL编程2)

我们先来搞清几个概念:

  • 计算平台指机器设备对OpenCL某个版本的具体实现。

  • 一台计算机上可以有多个计算平台,一个计算平台上可以有多个计算核心。

  • 多核CPU和多CPU是两回事,除非你的主板上插有两块CPU,这种情况也只有服务器主板上才会出现多CPU情况。

  • 一个计算平台设备里面,可以有多个计算核心,每个核心就是实质的计算部件。

像4核CPU就是一个计算平台设备里面有4个计算部件。可以并行执行四个运算操作。因此我们除了要获取系统里计算平台设备信息外,还要获取每个设备里面的计算核心信息,这样才可以对我们的程序进行最大优化。 OpenCL除了获取计算机平台设备数目外,还可以获取这些设备的特性数据。比如刚才说的,CPU是几核心的,频率是多少,CACHE是多大等等这些数据。我们在上节课的程序中进行修改,检测每个计算平台的计算部件信息。

程序代码如下:

codeblocks的调试工具栏(用Codeblocks进行OpenCL编程2)(1)

codeblocks的调试工具栏(用Codeblocks进行OpenCL编程2)(2)

codeblocks的调试工具栏(用Codeblocks进行OpenCL编程2)(3)

codeblocks的调试工具栏(用Codeblocks进行OpenCL编程2)(4)

程序运行结果如下:

codeblocks的调试工具栏(用Codeblocks进行OpenCL编程2)(5)

硬件检索运行结果

大家可看到,我的计算机上有两个计算平台,第一个平台包含了CPU和GPU。第二个平台只包含了CPU。这是怎么回事呢?注意看第二个平台支持的OpenCL版本是 OpenCL2.1。而且还只是实验性版本。这下明白了。OpenCL把计算平台分得很细。这里面又有几个问题了,全局内存、本地内存、最大工作组是什么意思呢?这些我们下节课再讲。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页