A Haskell implementation of the Deep Mind Atari AI. Work has been done here https://github.com/kristjankorjus/Replicating-DeepMind to build the bot in python and I am referring to it for ideas of the impementation.
- Strict named pipe interface
- Frame preprocessing
- Neural Network Initilaization
- Neural Network Output function
- Neural Network Training function
- CPU 4D tensor convolution with stride paramter
- GPU 4D tensor convolution with stride parameter
ghc -O2 -threaded Main.hs
./Main +RTS -N
ALE (Arcade Learning Environement) and its dependencies
Release - 0.1
Both CPU and GPU convole have been implemented.
The GPU implementation is on par with performance with the CPU implementation but it should be possible to make it much faster. A very large array is copied to gpu memory every frame right now, it might be possible to construct this large array on the gpu for better performance.
Release - 0.2
The GPU convolve now is ahead of the CPU convolve in terms of speed after building an large array on the GPU instead of doing an expensive memcopy. The CPU load balancing is decidedly better but still has room for improvement.