Last update: 12 March 2022
If you are doing deep learning AI research and/or development with GPUs, big chance you will be using graphics card from NVIDIA to perform the deep learning tasks. A vantage point with GPU computing is related with the fact that the graphics card occupies the PCI / PCIe slot. From the frugality point of view, it may be a brilliant idea to scavenge unused graphics cards from the fading PC world and line them up on another unused desktop motherboard to create a somewhat powerful compute node for AI tasks. Maybe not.
With the increasing popularity of container-based deployment, a system architect may consider creating several containers with each running different AI tasks. This means that that the underlying GPU resources should then be shared among the containers. NVIDIA provides a utility called NVIDIA Docker or nvidia-docker2 that enables the containerization of a GPU-accelerated machine. As the name suggests, the utility targets Docker container type. Continue reading →
CUDA Deep Neural Network (cuDNN) is a library from NVIDIA that provides the GPU-accelerated primitives for deep learning such as convolution, pooling, normalization, activation layers, tensor transformation. With cuDNN, a machine learning researcher or developer can spend less time writing the implementation for low-level GPU performance tuning. The cuDNN library powers major deep learning frameworks such as Caffe, Caffe 2, Tensor Flow, Cognitive Toolkit and PyTorch.
This post summarizes the steps to install cuDNN 7 for Cuda Toolkit 9.1 on Ubuntu 16.04. Installation for different version of cuDNN and Cuda Toolkit may require additional tweak or different steps that are not covered in this post. Continue reading →
With advances in GPU technologies, performing complex computation is not an exclusive feat of multicore CPUs anymore. It is not uncommon to perform computation for linear algebra, image and video processing, machine learning (especially deep learning), graph analytics, and so forth on GPU.
NVIDIA graphic cards have gained popularity among machine learning researchers and practitioners as the base hardware for GPU computing. To harness the GPU power, NVIDIA develops and provides CUDA toolkit that can be used as the development environment and libraries for GPU-accelerated applications.
If you are using Ubuntu 16.04 (Xenial) and want to install the recent release of CUDA toolkit (version 9.1), this post may help. The official installation guide is available at the NVIDIA website and can be referenced when following the steps outlined in this post. Continue reading →
Node JS has been gaining more popularity as the server-side runtime environment of choice these recent years. The asynchronous event-driven feature built into Node JS can be considered a killer feature that may flatter a system architect planning to build a high-performing server-side component serving HTTP webservice to the clients.
Node JS is cross-platform. The executable can run on major OSes that include Windows, GNU Linux, and Mac OS. Having a wide OS support further accelerates Node JS adoption within the server-side technology stack. Continue reading →
Secure Shell (SSH) is a common protocol used to access or login to remote servers. The protocol is widely supported across Operating Systems. If you are Windows user, you may have heard and been using Putty, which is a SSH client for Windows. Windows 10 users can use Open SSH client that can be installed via new feature installation. UNIX OSes usually come with native SSH client support, so additional software installation is not needed. Continue reading →