Explore chapters and articles related to this topic
Implementation
Published in Seyedeh Leili Mirtaheri, Reza Shahbazian, Machine Learning Theory to Applications, 2022
Seyedeh Leili Mirtaheri, Reza Shahbazian
Chainer’s vision is going further than invariance [119]. Chainer provides automatic differentiation APIs based on Define-by-Run’s approach, i.e., dynamic computational graphs (DGG), along with high-level object-oriented APIs for building and training Neural Networks. Chainer builds Neural Networks dynamically (computational graph is built impulsively), while other frameworks (such as TensorFlow or Caffe) construct their graph in respect of the Define-and-Run scheme (graph is built at the beginning and remains fixed). Chainer supports CUDA/cuDNN using CuPy, to obtain high-performance training and inference. The Intel Math Kernel Library (IntelMKL) for Deep Neural Networks (MKL-DNN), which speeds up Deep Learning frameworks on Intel-based architectures. It also includes libraries for industrial applications such as ChainerCV (for computer vision), ChainerRL (for deep reinforcement learning), and ChainerMN (for scalable multi-node distributed DL).188 Machine Learning: Theory to Applications
Proposal and evaluation of adjusting resource amount for automatically offloaded applications
Published in Cogent Engineering, 2022
For this verification, I used a PGI compiler that interprets OpenACC in the C/C++ language. Python and Java are also commonly used languages in open-source software (OSS). In Python, there is a library called Cupy (Cupy web site, 2021) that converts Numpy Interface (Numpy web site) to CUDA and makes it executable in PyCUDA. Automatic offload via Cupy is possible by converting for loop statements to Numpy IF. From Java 8, parallel processing can be specified by lambda expression. IBM provides a just-in-time (JIT) compiler that offloads processing with lambda expressions to a GPU (Ishizaki, 2016). Automatic offloading is made possible by selecting an appropriate loop statement from the Java loop statement using evolutionary computation.
Study and evaluation of automatic GPU offloading method from various language applications
Published in International Journal of Parallel, Emergent and Distributed Systems, 2022
Next, when offloading the loop statement, the loop pattern is geneticised and GPU processing is controlled by CUDA. The content calculated on the GPU is first converted from the loop statement into the Numpy interface of matrix representation. For CUDA command issuing, Cupy, which is a CUDA processing library with a Numpy compatible interface, is used. The matrix representation is converted into a CUDA command via Cupy, it is specified to PyCUDA, and PyCUDA executes GPU processing. Moreover, performance is measured by using Jenkins.
Deep CNN based microaneurysm-haemorrhage classification in retinal images considering local neighbourhoods
Published in Computer Methods in Biomechanics and Biomedical Engineering: Imaging & Visualization, 2022
Mahua Nandy Pal, Ankit Sarkar, Anindya Gupta, Minakshi Banerjee
In Table 9, Dashtbozorg et al. required 3 min per image for segmentation. They followed a two-stage methodology. In the first stage, gradient weighting technique and iterative thresholding are used for identifying preliminary MA candidates. Then intensity, shape descriptors and local convergence filter based features are used along with the previous features to identify MA and non-MA candidates with AdaBoost supervised classifier. Chudzik et al. reported an average execution time of 220s per image for CNN based classifier with interleaved freezing, whereas Wang et al. reported 1 min per image. Wang et al. used a five-step methodology where features are extracted using VGG-16 network with transfer learning capability. Long et al. provided resolution wise execution times considering E-Ophtha dataset for Naïve Bayes classification with handcrafted features. They experienced different per image execution times while considering different image resolutions. The proposed method also provides resolution wise per image classification times for E-Ophtha, Diaret DB1, ROC and local Hospital dataset images. In this work implementation, CUDA acceleration has not been used instead Main Memory (RAM) is used following NumPy implementation. In this way, the MA-HM segmentation process requires an average of 0.7275s per image. CuPy implementation allocates memory on GPU VRAM. CuPy (Ryosuke Okuta et al., ()) is equivalent to NumPy competent in handling array structure required for computation in the deep network but with the potential of increased speed gained from parallel GPU cores computing [Ryosuke Okuta et al]. Following some formerly executed experiments on NumPy/CuPy execution efficiency evaluation, it can be stated that almost a four-fold improvement in execution time is predictable if the NumPy module is replaced with CuPy particularly when tensors are grown inside the network. In the future implementation, CuPy implementation with Commercial grade GPUs, can be integrated to reduce the model generation complexity further. In this way, the system is able to provide very fast real-time feedback to the user.