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)

Reply via email to