Rosella       Machine Intelligence & Data Mining

OpenCL vs CUDA for GPU

CMSR Studio neural network modeling tools are implemented with both OpenCL and CUDA. Both offer very efficient performance. Both provide very similar speed. Single CPU thread runs provide best performance for ANN. Note that ANN is not suitable for GPU. But for deep convolutional neural networks, GPU provides over hundreds or thousands times faster than a single CPU thread.

Speed of OpenCL and CUDA

CUDA is more efficient than OpenCL for ANN. However for deep neural networks such as CNN, performances are the about the same due to asynchronous programing. Note that GPU performance is very good for convolutional layers. For pooling layers, performance is not good.

Enabling OpenCL for CMSR Studio

New CMSR download comes with Java OpenCL (JOCL) package pre-installed. It will be availble automatically.

Enabling CUDA for CMSR Studio

To use CUDA, you need to have CUDA enabled Nvidia GPU on your computer. To enable CUDA for CMSR Studio, download JCUDA from the following URL. Look at below the "Download" section for a download link;

From the downloaded ZIP file, extract the following two jar files;

  • jcuda-xx-x-x.jar
  • jcuda-natives-xx-x-x.platformname.jar

The second file depends on your operating system. From CMSR, select "File" - "Install JDBC driver" and choose the first extracted file. Repeat for the second extracted file. Restart CMSR. Note that you may need to install OS-specific CUDA device driver.