-
Notifications
You must be signed in to change notification settings - Fork 8
Cuda support
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.
- 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.
- Prerequisites: nVIDIA driver supporting CUDA 7 (note: I thing a version 350 or higher should do)
- disable option
<USE_MEMORY>
- disable option
<FNC_JVM>
- enable option
<CUDA><ENABLED>
- ensure that
<CIRCUIT_REPRESENTATION>
is set to1
- parameter
<TEST_VECTORS><SET_SIZE>
should be at least32000
(any number than 32000 will do, but a multiple of <BLOCK_SIZE> is the most effective)
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