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)
进一步参考资料:
- OpenCL规范
- OpenCL API 1.0 quick reference card
- OpenCL Programming Guide
- OpenCL Jump Start: 比较了OpenCL和CUDA
- OpenCL Programming Guide for Mac OS X
分享到:
相关推荐
查询机器上的OpenCL平台和设备的信息、参数等。 这个代码是从别处下载来的,具体出处不清楚。
2008年,苹果公司向Khronos...OpenCL是一个异构并行计算平台编写程序的工作标准,此异构计算可映射到CPU、GPU、DSP和FPGA等计算设备。OpenCL提供了底层硬件结构的抽象模型,旨在提供一个通用的开发的API。开发人员可
opencl从环境变量设置和编译
OpenCL(Open Compution Language)是一种全新的针对异构系统进行并行编程的应用程序接口(API),有效利用系统中的所有计算资源。OpenCL采用运行时动态编译的方式来执行程序,灵活高效。
查询机器上的OpenCL平台和设备的信息、参数,安状opencl 就可以看出来
AMD OpenCL 介绍在Windows系统下基于AMD GPU的OpenCL环境的搭建,并且基于矢量加法实例程序。 构建示例 在传统的AMD APP SDK设计中,已经不存在了,不知道为什么。但是AMD给了一种其他的方式, ...
IOS应用源码——利用OpenCL生成球体顶点 OpenCL_sphere.zip
IOS应用源码——OpenCL_sphere.zip
此实例是学习openl 的初学者必应用的例子,。将带你进入openl 的世界!
使用 OpenCL 实现将大写字母转换为小写字母,然后输出。
OpenCL编写的Hello程序,是个最小系统,可以入门,基本的程序框架都有。很简单的。在很多地方都可以找到。
编译Android平台的OpenCV库并启用OpenCL及Contrib
OpenCL领域公认的权威著作,由OpenCL核心设计人员亲自执笔,不仅全面而深刻地解读了OpenCL规范和编程模型,而且通过大量案例和代码演示了 基于OpenCL编写并行程序和实现各种并行算法的原理、方法、流程和最佳实 践,...
1 OpenCL vecadd
英特尔@的OpenCL的SDK,内置vs插件,可以直接在vs中创建编译OpenCL内核代码,Kernel分析等等; Intel OpenCl SDK intel_sdk_for_opencl_2017_7.0.0.2567 因为大小限制,这是一个网盘地址。
OpenCL由两部分组成,一是用于编写内核程序(在OpenCL设备上运行的代码) 的语 言,二是定义并控制平台的API。OpenCL提供了基于任务和基于数据两种并行计算机制,它极大地扩 展了GPU 的应用范围,使之不再局限于图形...
将OpenCL与计算统一设备架构CUDA(computeunified device architecture)及其它通用计算技术进行对比。对比 结果表明,OpenCL能够充分发挥异构处理平台上各种处理器的性能潜力,充分合理地分配任务,为进行大规模并行...
内容很不错,对OpenCL 2.0许多特征——管道、SVM,以及基于C11标准的原子操作都讲解得很透彻。而且对于事件同步、与OpenGL的交互都有许多具体用例。而后面几章讲解了矩阵乘法等常规高性能计算的优化手法。作者非常...
从NVIDIA官网下载最新的SDK,以及驱动,一路Next安装即可。...这里主要是说明如何使用CMAKE编写含有OpenCL的工程。 具体步骤可以看到我的博客http://blog.csdn.net/wangyu21505115/article/details/8459951