A mailing list improves communication for all the people interested in a 01.org Project: developers, final users and contributors. A more direct channel to solve your questions and help others to get involved.
Here we show three different algorithms for the seemingly simple linear filtering. All three algorithms use 2 1-d convolutions, horizontal then vertical, to implement the 2-d convolution. This approach minimizes computation, however it needs some more storage for intermediate results.
In example linear_up_walker , since the output surface is created in user-provided system memory, there is no need to call ReadSurface to access those data after enqueue. However, we still need to know when the GPU task is finished, and the output is complete.
CM also provides a way for user to create surface in system memory. This way, CPU and GPU share the physical memory. CPU access memory through pointer, GPU access memory through surface handle. It is user’s responsibility to avoid data race between GPU and CPU.
In this example, two kernels are launched independently (no specific execution order). The linear kernel processes the top-half of the image, and the sepia kernel processes the bottom-half of the image.