Skip to content

rai-project/cudnn_scope

Repository files navigation

cuDNN|Scope

Benchmark cuDNN for different DL layers.

Contributors

Documentation

See the docs folder for a description of the benchmarks.

Build / Run

./scripts/run_benchmarks.sh

You need a recent CMAKE which can be downloaded from https://apt.kitware.com/

Build / Run with CUPTI Profiling

./scripts/run_benchmarks_cupti.sh

Usage

Use predefined parameters to generate the benchmarks

The parameters for the convolution benchmarks are taken from Baidu Research DeepBench. Benchmarks for the other layer types also use these parameters for now.

Use model-defined parameters to generate the benchmarks

GENERATED_BENCHMARK_LAYER

Customize

To update sugar files for compilation, run

 python $SCOPE_PATH/tools/generate_sugar_files.py --top $SCOPE_PATH/scopes/cudnn_scope/src/

cuDNN API for DL layers

Inputs to layers are either arg.hpp or derived form it. The arguments are from the convolution in Baidu DeepBench

Activation

cudnnActivationBackward

cudnnActivationForward

cudnnActivationMode_t cudnnSetActivationDescriptor

Batchnorm

cudnnBatchNormalizationBackward

cudnnBatchNormalizationForwardTraining

cudnnBatchNormalizationForwardInference

cudnnDeriveBNTensorDescriptor cudnnBatchNormMode_t

Convoluation

cudnnConvolutionBiasActivationForward

cudnnConvolutionBackwardBias

cudnnConvolutionBackwardData

cudnnConvolutionBackwardFilter

cudnnConvolutionForward

cudnnConvolutionBwdDataAlgo_t cudnnConvolutionBwdFilterAlgo_t cudnnConvolutionFwdAlgo_t cudnnSetConvolution2dDescriptor cudnnGetConvolution2dForwardOutputDim cudnnGetConvolutionForwardWorkspaceSize

Dropout

cudnnDropoutBackward

cudnnDropoutForward

cudnnDropoutGetStatesSize cudnnSetDropoutDescriptor cudnnDropoutGetReserveSpaceSize

Pooling

cudnnPoolingBackward

cudnnPoolingForward

cudnnGetPooling2dForwardOutputDim cudnnSetPooling2dDescriptor

Softmax

cudnnSoftmaxBackward

cudnnSoftmaxForward

cudnnSoftmaxMode_t cudnnSoftmaxAlgorithm_t