`
cryolite
  • 浏览: 573920 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hello OpenCL——设备信息查询及编译(1)

阅读更多
Ubuntu下,NVIDIA的驱动和Open CL安装后,就可以开发OpenCL程序了。
Mac OS X 10.6下,直接可用

这两个平台上使用的差别有两个:
  • include头文件的位置不同(这个本来可以不是问题的,抱怨一下)
  • 编译的不同

在Ubuntu 9.10中,缺省情况下:
  • 头文件都放在/usr/include/CL目录下,
  • 动态链接库libOpenCL.so放在/usr/lib目录下

写一个C语言的Hello程序opencl_hello.c试试
#include <stdio.h>
#include <stdlib.h>
#ifdef __APPLE__
    #include <OpenCL/cl.h>
#elif defined(__linux__)
    #include <CL/cl.h>
#endif

int main()
{
    cl_uint NumPlatforms;
    clGetPlatformIDs (0, NULL, &NumPlatforms);
    
    cl_platform_id PlatformIDs[NumPlatforms];
    clGetPlatformIDs(NumPlatforms, PlatformIDs, NULL);

    char platformName[64];
    size_t nameLen;
    cl_int res = clGetPlatformInfo((PlatformIDs[0], CL_PLATFORM_NAME, 64, platformName, &nameLen);
    if (res != CL_SUCCESS) {
        fprintf(stderr, "Err: %d\n", res);
        exit(1);
    }   
    platformName[nameLen] = 0;

    char openclVersion[64];
    res = clGetPlatformInfo(NULL, CL_PLATFORM_VERSION, 64, openclVersion, &nameLen);
    if (res != CL_SUCCESS) {
        fprintf(stderr, "Err: %d\n", res);
        exit(1);
    }   
    openclVersion[nameLen] = 0;
    printf("hello, %s's %s\n", platformName, openclVersion);

    return 0;
}


编译:
Linux:
gcc opencl_hello.c -lOpenCL


Mac OS X:
gcc opencl_hello.c -framework OpenCL



执行:
Linux$ ./a.out
hello, NVIDIA's OpenCL 1.0

MacOSX$./a.out
hello, Apple's OpenCL 1.0 (Oct 16 2009 04:12:08)

进一步参考资料:
  1. OpenCL规范
  2. OpenCL API 1.0 quick reference card
  3. OpenCL Programming Guide
  4. OpenCL Jump Start: 比较了OpenCL和CUDA
  5. OpenCL Programming Guide for Mac OS X
分享到:
评论

相关推荐

    OpenCL平台设备信息查询

    查询机器上的OpenCL平台和设备的信息、参数等。 这个代码是从别处下载来的,具体出处不清楚。

    OpenCL——OpenCL的基本介绍

    2008年,苹果公司向Khronos...OpenCL是一个异构并行计算平台编写程序的工作标准,此异构计算可映射到CPU、GPU、DSP和FPGA等计算设备。OpenCL提供了底层硬件结构的抽象模型,旨在提供一个通用的开发的API。开发人员可

    opencl从环境变量设置和编译.docx

    opencl从环境变量设置和编译

    OpenCL语言及编译技术分析

    OpenCL(Open Compution Language)是一种全新的针对异构系统进行并行编程的应用程序接口(API),有效利用系统中的所有计算资源。OpenCL采用运行时动态编译的方式来执行程序,灵活高效。

    Opencl设备信息参数

    查询机器上的OpenCL平台和设备的信息、参数,安状opencl 就可以看出来

    OpenCL——AMD平台搭建

    AMD OpenCL 介绍在Windows系统下基于AMD GPU的OpenCL环境的搭建,并且基于矢量加法实例程序。 构建示例 在传统的AMD APP SDK设计中,已经不存在了,不知道为什么。但是AMD给了一种其他的方式, ...

    IOS应用源码——利用OpenCL生成球体顶点 OpenCL_sphere.zip

    IOS应用源码——利用OpenCL生成球体顶点 OpenCL_sphere.zip

    IOS应用源码——OpenCL_sphere.zip

    IOS应用源码——OpenCL_sphere.zip

    opencl_helloworld

    此实例是学习openl 的初学者必应用的例子,。将带你进入openl 的世界!

    HelloOpenCL

    使用 OpenCL 实现将大写字母转换为小写字母,然后输出。

    OpenCL编写的Hello程序,是个最小系统,可以入门

    OpenCL编写的Hello程序,是个最小系统,可以入门,基本的程序框架都有。很简单的。在很多地方都可以找到。

    编译Android平台的OpenCV库并启用OpenCL及Contrib

    编译Android平台的OpenCV库并启用OpenCL及Contrib

    opencl编程指南(中文版SDK)

    OpenCL领域公认的权威著作,由OpenCL核心设计人员亲自执笔,不仅全面而深刻地解读了OpenCL规范和编程模型,而且通过大量案例和代码演示了 基于OpenCL编写并行程序和实现各种并行算法的原理、方法、流程和最佳实 践,...

    1 OpenCL vecadd.docx

    1 OpenCL vecadd

    intel sdk for opencl

    英特尔@的OpenCL的SDK,内置vs插件,可以直接在vs中创建编译OpenCL内核代码,Kernel分析等等; Intel OpenCl SDK intel_sdk_for_opencl_2017_7.0.0.2567 因为大小限制,这是一个网盘地址。

    AMD OpenCL 中文版教程

    OpenCL由两部分组成,一是用于编写内核程序(在OpenCL设备上运行的代码) 的语 言,二是定义并控制平台的API。OpenCL提供了基于任务和基于数据两种并行计算机制,它极大地扩 展了GPU 的应用范围,使之不再局限于图形...

    基于OpenCL的异构系统并行编程

    将OpenCL与计算统一设备架构CUDA(computeunified device architecture)及其它通用计算技术进行对比。对比 结果表明,OpenCL能够充分发挥异构处理平台上各种处理器的性能潜力,充分合理地分配任务,为进行大规模并行...

    OPENCL异构并行计算原理机制与优化实践

    内容很不错,对OpenCL 2.0许多特征——管道、SVM,以及基于C11标准的原子操作都讲解得很透彻。而且对于事件同步、与OpenGL的交互都有许多具体用例。而后面几章讲解了矩阵乘法等常规高性能计算的优化手法。作者非常...

    CMAKE_OPENCL_VS2010

    从NVIDIA官网下载最新的SDK,以及驱动,一路Next安装即可。...这里主要是说明如何使用CMAKE编写含有OpenCL的工程。 具体步骤可以看到我的博客http://blog.csdn.net/wangyu21505115/article/details/8459951

Global site tag (gtag.js) - Google Analytics