93
edits
Changes
GPUSquad
,→Assignment 3
* Use gpu constant memory for jacobi calculation constants
* Utilize the ghost cell pattern for shared memory within blocks
The ghost cell pattern is a technique used to allow threads in a particular block to access data that would normally be inside another block.
The following info and images are taken from: http://people.csail.mit.edu/fred/ghost_cell.pdf
Ghost Cell Pattern Abstract:
<pre>
Many problems consist of a structured grid of points that
are updated repeatedly based on the values of a fixed set
of neighboring points in the same grid. To parallelize these
problems we can geometrically divide the grid into chunks
that are processed by different processors. One challenge
with this approach is that the update of points at the periphery
of a chunk requires values from neighboring chunks.
These are often located in remote memory belonging to different
processes. The naive implementation results in a lot
of time spent on communication leaving less time for useful
computation. By using the Ghost Cell Pattern communication
overhead can be reduced. This results in faster time to
completion.
</pre>
[[File:Dps_915_gpusquad_needneighbour.png]]
[[File:Dps_915_gpusquad_ghostcellexample.png]]