正如标题所示,我正在寻找如何有效地交换两个OpenCL缓冲区.我的内核使用两个gloabl缓冲区,一个作为输入,一个作为输出.不过,我调用我的内核的具有相同NDRange,每段时间设定内核参数,入队内核,并且交换缓冲区,因为以前的输出缓冲区将是下一次迭代的输入缓冲区种子循环.
交换这两个缓冲区的适当方法是什么?我想将缓冲区复制回主机到已经malloc的数组之一并使用它将其复制到下一个输入缓冲区clEnqueueWriteBuffer()
,这clEnqueueReadBuffer()
是一种低效的方法.否则我只是使用临时cl_mem
变量来进行交换.
我对 Tkinter 的 GRID 几何管理器或自定义类或两者都有问题。最有可能两者兼而有之。这是代码:
import sys
from tkinter import
def main():
app = App()
app.master.title("Sample application")
app.mainloop()
class App(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.grid(sticky=N+S+E+W)
top = self.winfo_toplevel()
top.rowconfigure(0, weight=1)
top.columnconfigure(0, weight=1)
self.rowconfigure(1, weight=1)
self.columnconfigure(0, weight=1)
self.__createWidgets()
def __createWidgets(self):
self.f1 = Frame(self, height=100, width=200,
bg='green')
self.f1.grid(row=0, column=0, sticky=E+W)
self.f2 = Frame( self, bg= "yellow", height=100, width=200 ) ############################# CHANGE to self.f2 = myTestFrame( self )
self.f2.grid(row=1, sticky = N+S+E+W)
self.f3 = Frame( self, bg = "cyan", height = 100, …
Run Code Online (Sandbox Code Playgroud)