Skip to content
Jiří Novotný edited this page Jul 1, 2015 · 10 revisions

EACirc provides a version of gate circuit that is capable on running on CUDA devices. EACirc must be compiled with special settings to enable CUDA support. The so created binary can execute faster computations than binary compiled without CUDA support. To run the accelerated computation a special GPU which supports CUDA is required (basically any modern nVIDIA GPU). The minimal supported GPU architecture is Fermi.

Building

  • Prerequisites: Properly installed CUDA version 7 or newer, directory <CUDA>/bin must be added in PATH environment variable. To download the CUDA SDK visit https://developer.nvidia.com/cuda-downloads
  • Enable CUDA support: When CMake detects CUDA (usually done automatically when CUDA is in PATH), a CMake option BUILD_CUDA becomes available. If this option is chosen then the compiled binary will be capable of running on CUDA devices.

Running

  • Prerequisites: nVIDIA driver supporting CUDA 7 (note: I thing a version 350 or higher should do)

Configuration

  • disable option <USE_MEMORY>
  • disable option <FNC_JVM>
  • enable option <CUDA><ENABLED>
  • ensure that <CIRCUIT_REPRESENTATION> is set to 1
  • parameter <TEST_VECTORS><SET_SIZE> should be at least 32000 (any number than 32000 will do, but a multiple of <BLOCK_SIZE> is the most effective)

Advanced Configuration

Note: Changing these configuration could increase or decrease the effectiveness of CUDA circuit. (If you don't know what you are doing decrease is most likely.)

  • option <CUDA><BLOCK_SIZE> - size of the block in kernel (default 512)
  • option <TEST_VECTORS><SET_SIZE> - number of running threads in kernel
  • if any of <CIRCUIT_SIZE_INPUT>, <CIRCUIT_SIZE_OUTPUT>, <NUM_LAYERS>, <SIZE_LAYER>, <NUM_CONNECTORS> is changed then it is recommended to experimentally find the most effective settings for CUDA circuit
Clone this wiki locally