【发布时间】:2017-07-27 15:34:42
【问题描述】:
我有一个复杂的迭代优化问题,涉及多个步骤。其中一个步骤涉及获取当前迭代,并使用其中的值来渲染数十个版本的简单场景,然后获取这些渲染并对像素执行一些计算以创建值,然后将这些值反馈到优化算法中。这些步骤重复了很多次。
这个伪代码大致说明了我的想法
array_A[100]
array_b[100]
fill array_A from CPU
Loop 100 times
{
perform step 1 on array_A
use values in array_A as angles to render 100 images of a cube with different rotations
sum pixels in each image, and write results to array_B
add array_B to array_A
}
Transfer array_A back to CPU
一种方法是使用 CPU 从 OpenCL 获取信息,使用它来渲染所有这些场景,然后将内核排入队列以处理渲染。但是,更快的方法肯定是将所有内容都保留在 GPU 上,而不涉及 CPU。
这可能吗?
【问题讨论】: