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...