aws-virtual-gpu-device-plugin
kserve
Our great sponsors
aws-virtual-gpu-device-plugin | kserve | |
---|---|---|
3 | 3 | |
132 | 3,047 | |
- | 7.3% | |
0.0 | 9.4 | |
over 1 year ago | 5 days ago | |
Jupyter Notebook | Python | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
aws-virtual-gpu-device-plugin
-
Share a GPU between pods on AWS EKS
This project (available here) uses the k8s device plugin described by this AWS blog post to make GPU-based nodes publish the amount of GPU resource they have available. Instead of the amount of VRAM available or some abstract metric, this plugin advertises the amount of pods/processes that can be connected to the GPU. This is controlled by what is called by NVIDIA as Multi-Process Service (MPS).
-
[D] Serverless solutions for GPU inference (if there's such a thing)
AWS has apparently already started using this type of tech as of this year (see lost below). They mention virtual gpus but this particular solution probably won't help OP unfortunately. https://aws.amazon.com/blogs/opensource/virtual-gpu-device-plugin-for-inference-workload-in-kubernetes/
-
AWS open source news and updates No.41
The post explores GPU device plugin to address how to set fractional number of GPU resource for each pod by implementing the Kubernetes device plugin and Nvidia MPS. This project has been open sourced on GitHub.
kserve
-
Show HN: Software for Remote GPU-over-IP
Inference servers essentially turn a model running on CPU and/or GPU hardware into a microservice.
Many of them support the kserve API standard[0] that supports everything from model loading/unloading to (of course) inference requests across models, versions, frameworks, etc.
So in the case of Triton[1] you can have any number of different TensorFlow/torch/tensorrt/onnx/etc models, versions, and variants. You can have one or more Triton instances running on hardware with access to local GPUs (for this example). Then you can put standard REST and or grpc load balancers (or whatever you want) in front of them, hit them via another API, whatever.
Now all your applications need to do to perform inference is do an HTTP POST (or use a client[2]) for model input, Triton runs it on a GPU (or CPU if you want), and you get back whatever the model output is.
Not a sales pitch for Triton but it (like some others) can also do things like dynamic batching with QoS parameters, automated model profiling and performance optimization[3], really granular control over resources, response caching, python middleware for application/biz logic, accelerated media processing with Nvidia DALI, all kinds of stuff.
[0] - https://github.com/kserve/kserve
[1] - https://github.com/triton-inference-server/server
[2] - https://github.com/triton-inference-server/client
[3] - https://github.com/triton-inference-server/model_analyzer
-
Run your first Kubeflow pipeline
Kubeflow has multiple components: central dashboard, Kubeflow Notebooks to manage Jupyter notebooks, Kubeflow Pipelines for building and deploying portable, scalable machine learning (ML) workflows based on Docker containers, KF Serving for model serving (apparently superseded by KServe), Katib for hyperparameter tuning and model search, and training operators such as TFJob for training TF models on Kubernetes.
-
[D] Serverless solutions for GPU inference (if there's such a thing)
If you can run on Kubernetes then KFServing is an open source solution that allows for GPU inference and is built upon Knative to allow scale to zero for GPU based inference. From release 0.5 it also has capabilities for multi-model serving as a alpha feature to allow multiple models to share the same server (and via NVIDIA Triton the same GPU).
What are some alternatives?
aws-eks-share-gpu - How to share the same GPU between pods on AWS EKS
kubeflow - Machine Learning Toolkit for Kubernetes
k8s-device-plugin - NVIDIA device plugin for Kubernetes
awesome-mlops - A curated list of references for MLOps
determined - Determined is an open-source machine learning platform that simplifies distributed training, hyperparameter tuning, experiment tracking, and resource management. Works with PyTorch and TensorFlow.
kind - Kubernetes IN Docker - local clusters for testing Kubernetes
terraform-provider-kubernetes - Terraform Kubernetes provider
kubeflow-learn
booster - Software development framework specialized in building highly scalable microservices with CQRS and Event-Sourcing. It uses the semantics of the code to build a fully working GraphQL API that supports real-time subscriptions.
Python-Schema-Matching - A python tool using XGboost and sentence-transformers to perform schema matching task on tables.
asdf-tflint - An asdf plugin for installing terraform-linters/tflint.
awesome-mlops - :sunglasses: A curated list of awesome MLOps tools