【发布时间】:2012-12-13 13:28:44
【问题描述】:
我只是想问一下,是否有人可以提醒我在使用多个简单内核时要注意什么。
我可以使用相同的CommandQueue 吗?我可以用不同的cl_program 运行几次clCreateProgramWithSource + cl_program 吗?我忘记了什么?
谢谢!
【问题讨论】:
标签: opencl
我只是想问一下,是否有人可以提醒我在使用多个简单内核时要注意什么。
我可以使用相同的CommandQueue 吗?我可以用不同的cl_program 运行几次clCreateProgramWithSource + cl_program 吗?我忘记了什么?
谢谢!
【问题讨论】:
标签: opencl
您可以创建和编译多个程序(并从中创建内核对象),也可以将所有内核放入同一个程序中(clCreateProgramWithSource 毕竟需要多个字符串)并从该程序创建所有内核。使用相同的 CommandQueue 应该可以正常工作。无论如何,使用多个 CommandQueue 来执行应该在同一设备上串行执行的内核并不是一个好主意,因为在这种情况下,您必须手动等待事件完成,而不是异步地将所有内核排队,然后等待结果(在至少一些操作应该在设备和主机上并行执行,因此在最后可能的时刻等待通常更快更容易)。
【讨论】: