GithubHelp home page GithubHelp logo

sondv2 / triton-inference-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from triton-inference-server/server

0.0 0.0 0.0 8.23 MB

The Triton Inference Server provides a cloud inferencing solution optimized for NVIDIA GPUs.

License: BSD 3-Clause "New" or "Revised" License

Dockerfile 0.44% Python 28.82% Shell 9.59% C++ 56.74% Smarty 0.08% CMake 2.70% C 0.19% Cuda 0.62% Roff 0.66% Go 0.17%

triton-inference-server's Introduction

License

NVIDIA Triton Inference Server

NEW NAME: We have a new name: Triton Inference Server. Read about why we are making this change and our plans for version 2 of the inference server in Roadmap.

LATEST RELEASE: You are currently on the master branch which tracks under-development progress towards the next release. The latest release of the Triton Inference Server is 1.11.0 and is available on branch r20.02.

NVIDIA Triton Inference Server provides a cloud inferencing solution optimized for NVIDIA GPUs. The server provides an inference service via an HTTP or GRPC endpoint, allowing remote clients to request inferencing for any model being managed by the server. For edge deployments, Triton Server is also available as a shared library with an API that allows the full functionality of the server to be included directly in an application. Triton Server provides the following features:

  • Multiple framework support. The server can manage any number and mix of models (limited by system disk and memory resources). Supports TensorRT, TensorFlow GraphDef, TensorFlow SavedModel, ONNX, PyTorch, and Caffe2 NetDef model formats. Also supports TensorFlow-TensorRT and ONNX-TensorRT integrated models. Variable-size input and output tensors are allowed if supported by the framework. See Capabilities for detailed support information for each framework.
  • Concurrent model execution support. Multiple models (or multiple instances of the same model) can run simultaneously on the same GPU.
  • Batching support. For models that support batching, Triton Server can accept requests for a batch of inputs and respond with the corresponding batch of outputs. Triton Server also supports multiple scheduling and batching algorithms that combine individual inference requests together to improve inference throughput. These scheduling and batching decisions are transparent to the client requesting inference.
  • Custom backend support. Triton Server allows individual models to be implemented with custom backends instead of by a deep-learning framework. With a custom backend a model can implement any logic desired, while still benefiting from the GPU support, concurrent execution, dynamic batching and other features provided by the server.
  • Ensemble support. An ensemble represents a pipeline of one or more models and the connection of input and output tensors between those models. A single inference request to an ensemble will trigger the execution of the entire pipeline.
  • Multi-GPU support. Triton Server can distribute inferencing across all system GPUs.
  • Triton Server provides multiple modes for model management. These model management modes allow for both implicit and explicit loading and unloading of models without requiring a server restart.
  • Model repositories may reside on a locally accessible file system (e.g. NFS), in Google Cloud Storage or in Amazon S3.
  • Readiness and liveness health endpoints suitable for any orchestration or deployment framework, such as Kubernetes.
  • Metrics indicating GPU utilization, server throughput, and server latency.
  • C library inferface allows the full functionality of Triton Server to be included directly in an application.

The current release of the Triton Inference Server is 1.11.0 and corresponds to the 20.02 release of the tensorrtserver container on NVIDIA GPU Cloud (NGC). The branch for this release is r20.02.

Backwards Compatibility

Continuing in the latest version the following interfaces maintain backwards compatibilty with the 1.0.0 release. If you have model configuration files, custom backends, or clients that use the inference server HTTP or GRPC APIs (either directly or through the client libraries) from releases prior to 1.0.0 you should edit and rebuild those as necessary to match the version 1.0.0 APIs.

The following inferfaces will maintain backwards compatibility for all future 1.x.y releases (see below for exceptions):

As new features are introduced they may temporarily have beta status where they are subject to change in non-backwards-compatible ways. When they exit beta they will conform to the backwards-compatibility guarantees described above. Currently the following features are in beta:

  • The inference server library API as defined in trtserver.h is currently in beta and may undergo non-backwards-compatible changes.
  • The C++ and Python client libraries are not stictly included in the inference server compatibility guarantees and so should be considered as beta status.

Roadmap

The inference server's new name is Triton Inference Server, which can be shortened to just Triton Server in contexts where inferencing is already understood. The primary reasons for the name change are to :

Transitioning from the current protocols (version 1) to the new protocols (version 2) will take place over several releases.

  • 20.03
    • Change name to Triton Inference Server.
    • Beta release of server support for KFServing community standard GRPC inference protocol.
    • Beta release of Python client library that uses KFServing community standard GRPC inference protocol.
    • See client documentation for description and examples showing how to enable and use the new GRPC inference protocol and Python client library.
    • Existing HTTP/REST and GRPC protocols, and existing client APIs continue to be supported and remain the default protocols.
  • 20.05
    • Full release of KFServing community standard HTTP/REST and GRPC inference protocol support in server, Python client, and C++ client.
    • Existing HTTP/REST and GRPC protocols are deprecated but remain the default.
    • Existing shared library inferface defined in trtserver.h continues to be supported but is deprecated.
    • New shared library interface is defined in tritonserver.h.
  • 20.06
    • Triton Server version 2.0.0.
    • KFserving community standard HTTP/REST and GRPC inference protocols become the default and only supported protocols for the server.
    • C++ and Python client libraries based on the KFServing standard inference protocols become the default and only supported client libraries, replacing the original C++ and Python client libraries.
    • The new shared library interface defined in tritonserver.h becomes the default and only supported shared library interface, replacing the original trtserver.h inferface.

Throughout the transition the model configuration schema, model repository struture, and custom backend APIs will remain unchanged so that any existing models, model repository, and custom backends will continue to work with Triton Server.

Documentation

The User Guide, Developer Guide, and API Reference documentation for the current release provide guidance on installing, building, and running Triton Inference Server.

You can also view the documentation for the master branch and for earlier releases.

An FAQ provides answers for frequently asked questions.

READMEs for deployment examples can be found in subdirectories of deploy/, for example, deploy/single_server/README.rst.

The Release Notes and Support Matrix indicate the required versions of the NVIDIA Driver and CUDA, and also describe which GPUs are supported by Triton Server.

Other Documentation

Contributing

Contributions to Triton Inference Server are more than welcome. To contribute make a pull request and follow the guidelines outlined in the Contributing document.

Reporting problems, asking questions

We appreciate any feedback, questions or bug reporting regarding this project. When help with code is needed, follow the process outlined in the Stack Overflow (https://stackoverflow.com/help/mcve) document. Ensure posted examples are:

  • minimal – use as little code as possible that still produces the same problem
  • complete – provide all parts needed to reproduce the problem. Check if you can strip external dependency and still show the problem. The less time we spend on reproducing problems the more time we have to fix it
  • verifiable – test the code you're about to provide to make sure it reproduces the problem. Remove all other problems that are not related to your request/question.

triton-inference-server's People

Contributors

guanluo avatar coderham avatar tanmayv25 avatar dzier avatar aramesh7 avatar rmccorm4 avatar aleksa2808 avatar bencsikandrei avatar arsdragonfly avatar tripti-singhal avatar yoosful avatar airie avatar wilwang-nv avatar nvpohanh avatar ryanolson avatar nieksand avatar slipknottn avatar mvpel avatar jobegrabber avatar fangmath avatar dougn avatar sgodithi1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.