### OpenCL Parallel Prefix Sum (aka Scan) Example ### |
=========================================================================== |
DESCRIPTION: |
This example shows how to perform an efficient parallel prefix sum (aka Scan) |
using OpenCL. Scan is a common data parallel primitive which can be used for |
variety of different operations -- this example uses local memory for storing |
partial sums and avoids memory bank conflicts on architectures which serialize |
memory operations that are serviced on the same memory bank by offsetting the |
loads and stores based on the size of the local group and the number of |
memory banks (see appropriate macro definition). As a result, this example |
requires that the local group size > 1. |
Note that the .cl compute kernel file(s) are loaded and compiled at |
runtime. The example source assumes that these files are in the same |
path as the built executable. |
For simplicity, this example is intended to be run from the command line. |
If run from within XCode, open the Run Log (Command-Shift-R) to see the |
output. Alternatively, run the applications from within a Terminal.app |
session to launch from the command line. |
=========================================================================== |
BUILD REQUIREMENTS: |
Mac OS X v10.6 or later |
=========================================================================== |
RUNTIME REQUIREMENTS: |
Mac OS X v10.6 or later with OpenCL 1.0 |
=========================================================================== |
PACKAGING LIST: |
ReadMe.txt |
scan.c |
scan_kernel.cl |
scan.xcodeproj |
=========================================================================== |
CHANGES FROM PREVIOUS VERSIONS: |
Version 1.0 |
- First version. |
=========================================================================== |
Copyright (C) 2008 Apple Inc. All rights reserved. |
Last updated: 2009-09-23