Running with the CUDA backend
To compile using the CUDA backend, we should install the accelerate-cuda
package from
Hackage. Also required is the CUDA platform. Refer to the accelerate-cuda
package documentation and CUDA platform documentation for further information:
cabal install accelerate-cuda -fdebug
The Haskell dependencies require some additional tools in scope, including alex
, happy
, and c2hs
. Install those first if necessary. The debug
flag gives our Accelerate CUDA programs some additional tools. There's no extra runtime cost versus no debug flag. The additional flags could interfere with the user program, though.
In principle, the only necessary code change for using the CUDA backend instead of the interpreter is to import the run
function from Data.Array.Accelerate.CUDA
instead of the Interpreter
module:
import Data.Array.Accelerate.CUDA
The program below executes our matrix product of 100x100 matrices on the GPU using CUDA. Note that swapping back to the interpreter is a...