如何设置Xcode来运行OpenCL代码,以及如何在构建之前验证内核

前端之家收集整理的这篇文章主要介绍了如何设置Xcode来运行OpenCL代码,以及如何在构建之前验证内核前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在查看苹果网站上的官方文档,我看到有一个关于如何在 Xcode上使用OpenCL的快速入门.

也许这只是我,但我没有运气构建“你好OCL”部分提到的代码.

我已经开始Xcode并创建了一个空项目;创建了一个main.c和.cl内核文件,粘贴了苹果开发者网站上的内容,即使添加了目标,我也无法建立任何内容.

AD站点没有要下载的项目,所以我不知道失败的原因(这可能是我最有可能的,或者站点采取步骤,没有提及).

我也尝试过macresearch.org的示例项目,但它们很古老,第三课中的测试项目根本没有运行.

现在,我很确定其他人使用Xcode来运行OCL代码,但是我找不到任何一个页面(除了上述的macresearch.org),它提供了一个关于如何使用OCL运行Xcode项目的清晰设置.有没有人知道一个教程,显示如何使用OCL和Xcode?

我已经在OCL上购买了3本书(Gaster的异构计算与OpenCL,Scarpino的OpenCL和Munshi的OpenCL编程指南),并没有提到如何设置Xcode,而他们详细介绍了可视化工作室设置,甚至是eclipse设置.

在一边;是否有任何应用程序能够在OCL应用程序中运行之前验证内核代码

预先感谢您可能有任何建议.

解决方法

简答: https://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/XCodeHelloWorld/XCodeHelloWorld.html

长命令衬垫的答案:

使用最近的Xcode(和Lion或更高版本),您甚至不需要调用clCreateProgramWithSource,只需编写内核并从您的应用程序中调用它,那么还需要一些额外的编译步骤.

我使用默认的编译器标志(见https://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/ExampleHelloWorld/Example_HelloWorld.html),从苹果公司获取OpenCL Hello World示例,并显示了Xcode在后台执行的步骤.

为了让您开始,请执行以下操作:

/System/Library/Frameworks/OpenCL.framework/Libraries/openclc -x cl -cl-std=CL1.1 -cl-auto-vectorize-enable -emit-gcl mykernel.cl

这将创建2个文件,mykernel.cl.h和mykernel.cl.c(和mykernel.cl.c都将将内核加载到应用程序中的所有魔力).接下来你需要编译内核:

/System/Library/Frameworks/OpenCL.framework/Libraries/openclc -x cl -cl-std=CL1.1 -Os -triple i386-applecl-darwin -emit-llvm-bc -o mykernel.cl.i386.bc mykernel.cl
/System/Library/Frameworks/OpenCL.framework/Libraries/openclc -x cl -cl-std=CL1.1 -Os -triple x86_64-applecl-darwin -emit-llvm-bc -o mykernel.cl.x86_64.bc mykernel.cl
/System/Library/Frameworks/OpenCL.framework/Libraries/openclc -x cl -cl-std=CL1.1 -Os -triple gpu_32-applecl-darwin -emit-llvm-bc -o mykernel.cl.gpu_32.bc mykernel.cl

最后但并非最不重要的是,构建应用程序本身:

clang -c -Os -Wall -arch x86_64 -o mykernel.cl.o mykernel.cl.c
clang -c -Os -Wall -arch x86_64 -o square.o square.c
clang -framework OpenCL -o square mykernel.cl.o square.o

就是这样在Apple的示例代码中,您将看不到任何clCreateProgramWithBinary或clCreateProgramWithSource.一切都是通过由openclc生成的mykernel.cl.c完成的.

猜你在找的iOS相关文章