Skip to content

a-doumoulakis/SPOC

 
 

Repository files navigation

Build Status

SPOC is a set of tools for GPGPU programming with OCaml.

The SPOC library enables the detection and use of GPGPU devices with OCaml using Cuda and OpenCL. There is also a camlp4 syntax extension to handle external Cuda or OpenCL kernels, as well as a DSL to express GPGPU kernels from the OCaml code.

This work was part of my PhD thesis (UPMC-LIP6 laboratory, Paris, France) and was partially funded by the OpenGPU project. I continued this project in 2014-2015 in the Verimag laboratory (Grenoble, France). I am currently in the LIFO laboratory in Orléans, France.

It has been tested on multiple architectures and systems, mostly 64-bit Linux and 64-bit OSX systems. It should work with Windows too.

To be able to use SPOC, you'll need a computer capable of running OCaml (obviously) but also compatible with either OpenCL or Cuda. For Cuda you only need a current proprietary NVidia driver while for OpenCL you need to install the correct OpenCL implementation for your system. SPOC should compile anyway as everything is dynamically linked, but you'll need Cuda/OpenCL eventually to run your programs.

#Docker image

For more information, examples and live tutorials, please check the github page :

  more infos
  how to build spoc
  web examples
  web tutorials
  slides from past presentations
  publications references

Packages

No packages published

Languages

  • OCaml 50.3%
  • C 39.6%
  • C++ 3.6%
  • Makefile 2.3%
  • JavaScript 1.7%
  • Cuda 1.1%
  • Other 1.4%