摘要:
这一讲我们将介绍更多的概念。 我们的示例程序是通过OpenCL来实现一个正方形的颜色渐变着色。 这里,我们将牵涉到变量存储属性,另外还引入了向量数据,向量数据是如何操作的,向量数据与标量数据是如何交叉操作的。 我先在首页贴上OpenCL的内核代码,然后附上完整的工程。// Render a square// left-top: red(1, 0, 0)// left-bottom: green(0, 1, 0)// right-top: blue(0, 0, 1)// right-bottom:black(0, 0, 0)__constant float4 left_top ... 阅读全文
摘要:
http://www.cocoachina.com/bbs/read.php?tid=33105&keyword=opencl以下代码就是本人针对之前的OpenCL教程,结合各位能掌握的程度列出的一个示例代码。这份代码由本人亲手炮制。 先贴代码,然后讲解。这里再附上完整的工程。这份代码,当然仍然只能在Snow Leopard下才能运行,因为Leopard上没有OpenCL驱动。/* * hello.c * OpenCL_init * * Created by Zenny Chen on 9/1/10. * Copyright 2010 GreenGames Studio. A... 阅读全文
摘要:
http://www.cocoachina.com/bbs/read.php?tid=37608我们前几章介绍了OpenCL的一些基本概念以及一些基本的用法。我们之前的例子都是线程独立计算的,相互之间没有任何通信。而这样的计算模型也是GPU最最喜欢的,能完全发挥GPU众核并行计算的优势。 今天我们将介绍OpenCL多线程同步技巧。我们下面的例子将是以一个简单的求和算法来描述如何同步一个工作组内的线程以及工作组之间如何同步。 我们之前介绍过变量的地址属性。用__global修饰的变量存放在显示存储器中,特点是容量很大,但访问速度很慢,并且所有工作项都能访问;而用__local修饰的变量存放在共享 阅读全文