Deep Learning Frameworks
Deep learning (DL) frameworks offer building blocks for designing, training, and validating deep neural networks through a high-level programming interface. Widely used DL frameworks, such as MXNet, PyTorch, TensorFlow, and others rely on GPU-accelerated libraries, such as cuDNN, NCCL, and DALI to deliver high performance, multi-GPU accelerated training.
Developers, researchers, and data scientists can get easy access to NVIDIA optimized DL framework containers with DL examples that are performance-tuned and tested for NVIDIA GPUs. This eliminates the need to manage packages and dependencies or build DL frameworks from source. Containerized DL frameworks, with all dependencies included, provide an easy place to start developing common applications, such as conversational AI, natural language understanding (NLU), recommenders, and computer vision. Visit NVIDIA NGC™ to learn more.
Following is a list of popular DL frameworks that we support, including learning resources for getting started.
PyTorch is a Python package that provides two high-level features:
- Tensor computation (like numpy) with strong GPU acceleration.
- Deep Neural Networks (DNN) built on a tape-based autograd system.
You can reuse your favorite Python packages such as numpy, scipy and Cython to extend PyTorch when needed.
MXNet is a DL framework designed for both efficiency and flexibility. It allows you to mix the flavors of symbolic programming and imperative programming to maximize efficiency and productivity.
In its core is a dynamic dependency scheduler that automatically parallelizes both symbolic and imperative operations on the fly. A graph optimization layer on top of that makes symbolic execution fast and memory efficient. The library is portable and lightweight, and it scales to multiple GPUs and multiple machines.
TensorFlow is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) that flow between them. This flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device without rewriting code. For visualizing TensorFlow results, TensorFlow offers TensorBoard, suite of visualization tools.
For high-performance inference deployment for TensorFlow trained models, you can:
- Use TensorFlow-TensorRT integration to optimize models within TensorFlow and deploy with TensorFlow
- Export TensorFlow models and import, optimize and deploy with NVIDIA TensorRT's built in TensorFlow model importer.
- Deep Learning Documentation: TensorFlow User Guide
- Deep Learning Documentation: TensorFlow Best Practices
- TensorFlow Getting Started Guide
Deep Graph Library
Deep Graph Library (DGL) is a framework-neutral, easy-to-use, and scalable Python library used for implementing and training Graph Neural Networks (GNN). Being framework-neutral, DGL is easily integrated into an existing PyTorch, TensorFlow, or an Apache MXNet workflow.
To enable developers to quickly take advantage of GNNs, we have partnered with the DGL team to provide a containerized solution that includes DGL, the latest PyTorch, and a set of tested dependencies. Our early release includes two containers, a ready-to-use DGL container, and an SE(3)-Transformer for DGL container, an accelerated neural network training environment based on DGL, SE(3)-Transformer, and PyTorch, suited for recognizing 3-dimensional shapes. SE(3)-Transformer for DGL container, is useful for segmenting LIDAR point clouds or in pharmaceutical and drug discovery research, for example. Apply for early access to our DGL container or the SE(3)-Transformer for DGL container.
MATLAB makes DL easy for engineers, scientists, and domain experts. With tools and functions for managing and labeling large data sets, MATLAB also offers specialized toolboxes for working with machine learning, neural networks, computer vision, and automated driving. With just a few lines of code, MATLAB allows you to create and visualize models, and deploy models to servers and embedded devices without being an expert. MATLAB also enables users to automatically generate high performance CUDA code for DL and vision applications from MATLAB code.
For high performance inference deployment of MATLAB trained models, use MATLAB GPU Coder to automatically generate TensorRT-optimized inference engines from cloud to embedded deployment environments.
PaddlePaddle provides an intuitive and flexible interface for loading data and specifying model structures. It supports CNN, RNN and multiple variants, and easily configures complicated deep models.
PaddlePaddle also provides extremely optimized operations, memory recycling, and network communication, and makes it easy to scale heterogeneous computing resources and storage to accelerate the training process.