You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@singa.apache.org by "wangwei (JIRA)" <ji...@apache.org> on 2016/08/10 13:15:20 UTC

[jira] [Created] (SINGA-234) Unify the engines for cudnn and singa layers

wangwei created SINGA-234:
-----------------------------

             Summary: Unify the engines for cudnn and singa layers
                 Key: SINGA-234
                 URL: https://issues.apache.org/jira/browse/SINGA-234
             Project: Singa
          Issue Type: Improvement
            Reporter: wangwei


For most layers, we would have multiple implementations, e.g., using cudnn for nvidia gpu, using cpp for cpu and using opencl for other gpus.

These layers have different classes. They are registered with different identifiers. This ticket would unify the layer identifiers for each engine:
1. cudnn layers are registered with identifier = cudnn_xxx, e.g., cudnn_convolution for the CudnnConvolution layer.
2. singa layers are registered with identifier = singa_xxx, e.g., singa_convolution for the Convolution layer.

cudnn engine must run on cuda devices. and singa engine could run on cuda-gpu device or cpp-cpu device depending on the layer type. For instance, the Convolution layer must run on cpp-cpu device, and Dense layer can run on both devices and would select the correct device automatically.

Users need to make sure the engine and the device of the tensors.

Both CPP and Python code is updated. Users have to compose the layer identifier manually for CPP version. For Python version, users can set layer.engine='cudnn' or 'singa'. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)