Deep Learning on Image Denoising: An overview <s> Hardware and software of deep learning techniques <s> The OpenCL standard offers a common API for program execution on systems composed of different types of computational devices such as multicore CPUs, GPUs, or other accelerators. <s> BIB001 </s> Deep Learning on Image Denoising: An overview <s> Hardware and software of deep learning techniques <s> Caffe provides multimedia scientists and practitioners with a clean and modifiable framework for state-of-the-art deep learning algorithms and a collection of reference models. The framework is a BSD-licensed C++ library with Python and MATLAB bindings for training and deploying general-purpose convolutional neural networks and other deep models efficiently on commodity architectures. Caffe fits industry and internet-scale media needs by CUDA GPU computation, processing over 40 million images a day on a single K40 or Titan GPU ($\approx$ 2.5 ms per image). By separating model representation from actual implementation, Caffe allows experimentation and seamless switching among platforms for ease of development and deployment from prototyping machines to cloud environments. Caffe is maintained and developed by the Berkeley Vision and Learning Center (BVLC) with the help of an active community of contributors on GitHub. It powers ongoing research projects, large-scale industrial applications, and startup prototypes in vision, speech, and multimedia. <s> BIB002 </s> Deep Learning on Image Denoising: An overview <s> Hardware and software of deep learning techniques <s> MatConvNet is an implementation of Convolutional Neural Networks (CNNs) for MATLAB. The toolbox is designed with an emphasis on simplicity and flexibility. It exposes the building blocks of CNNs as easy-to-use MATLAB functions, providing routines for computing linear convolutions with filter banks, feature pooling, and many more. In this manner, MatConvNet allows fast prototyping of new CNN architectures; at the same time, it supports efficient computation on CPU and GPU allowing to train complex models on large datasets such as ImageNet ILSVRC. This document provides an overview of CNNs and how they are implemented in MatConvNet and gives the technical details of each computational block in the toolbox. <s> BIB003 </s> Deep Learning on Image Denoising: An overview <s> Hardware and software of deep learning techniques <s> TensorFlow is a machine learning system that operates at large scale and in heterogeneous environments. Tensor-Flow uses dataflow graphs to represent computation, shared state, and the operations that mutate that state. It maps the nodes of a dataflow graph across many machines in a cluster, and within a machine across multiple computational devices, including multicore CPUs, general-purpose GPUs, and custom-designed ASICs known as Tensor Processing Units (TPUs). This architecture gives flexibility to the application developer: whereas in previous "parameter server" designs the management of shared state is built into the system, TensorFlow enables developers to experiment with novel optimizations and training algorithms. TensorFlow supports a variety of applications, with a focus on training and inference on deep neural networks. Several Google services use TensorFlow in production, we have released it as an open-source project, and it has become widely used for machine learning research. In this paper, we describe the TensorFlow dataflow model and demonstrate the compelling performance that TensorFlow achieves for several real-world applications. <s> BIB004 </s> Deep Learning on Image Denoising: An overview <s> Hardware and software of deep learning techniques <s> We identify hardware that is optimal to produce molecular dynamics trajectories on Linux compute clusters with the GROMACS 2018 simulation package. Therefore, we benchmark the GROMACS performance on a diverse set of compute nodes and relate it to the costs of the nodes, which may include their lifetime costs for energy and cooling. In agreement with our earlier investigation using GROMACS 4.6 on hardware of 2014, the performance to price ratio of consumer GPU nodes is considerably higher than that of CPU nodes. However, with GROMACS 2018, the optimal CPU to GPU processing power balance has shifted even more towards the GPU. Hence, nodes optimized for GROMACS 2018 and later versions enable a significantly higher performance to price ratio than nodes optimized for older GROMACS versions. Moreover, the shift towards GPU processing allows to cheaply upgrade old nodes with recent GPUs, yielding essentially the same performance as comparable brand-new hardware. <s> BIB005
One reason of the success of deep learning is GPU. The GPU uses CUDA  , OpenCL BIB001 and Cudnn  to obtain stronger parallel computing ability, which exceeds 10-30 times than CPU in speed. The CPU consists of a NVIDIA consumer (i.e. GTX 680, GTX 980, GTX 1070, GTX 1070Ti, GTX1080, GTX 1080Ti, RTX 2070, RTX 2080 and RTX 2080Ti), NVIDIA (i.e. Tesla K40c, Tesla K80, Quadro M6000, Quadro GP100, Quadro P6000 and Tesla V100) and AMD (i.e. Radeon Vega 64 and FE) BIB005 . Another important factor of deep learning techniques is software. The software can provide some interfaces to call GPU and allow the users to implement functions, according to their demands. Further, the popular software packages are presented as follows: (1) Caffe BIB002 based on C++ is clear and efficient for deep learning. It provides C++, Python and Matlab interfaces, which can also run on both CPU and GPU, respectively. It is widely used for object detection task. However, the Caffe requires developers to master strong C++ basic knowledge. (2) Theano  is a compiler of math expressions to deal with large-scale neural networks. The Theano provides Python interface and it is used in image super-resolution, denoising and classification in general. (3) Matconvnet BIB003 offers Matlab interface. It is usually utilized in image classification, denoising and super-resolution, and video tracking. However, it requires users to expertly master Matlab. (4) Tensorflow BIB004 is relatively high-order machine learning libraries. It is also faster than Theano for compilation. The Tensorflow offers C++ and Python interfaces. It is suitable to object detection, image classification, denoising and super-resolution and so on. (5) Keras [36] based on Tensorflow and Theano is implemented by Python. The Keras offers Python interface. It can be applied in image classification, object detection, image resolution, image denoising and action recognition. (6) Pytorch  is implemented by Python. The Pytorch presents Python interface. Additionally, it is employed in image classification, object detection, image segment, action recognition, image super-resolution, image denoising and video tracking.