Skip to main content

GPUStack

Project description

GPUStack

demo

GPUStack is an open-source GPU cluster manager for running large language models(LLMs).

Key Features

  • Supports a Wide Variety of Hardware: Run with different brands of GPUs in Apple MacBooks, Windows PCs, and Linux servers.
  • Scales with Your GPU Inventory: Easily add more GPUs or nodes to scale up your operations.
  • Lightweight Python Package: Minimal dependencies and operational overhead.
  • OpenAI-compatible APIs: Serve APIs that are compatible with OpenAI standards.
  • User and API key management: Simplified management of users and API keys.
  • GPU metrics monitoring: Monitor GPU performance and utilization in real-time.
  • Token usage and rate metrics: Track token usage and manage rate limits effectively.

Installation

Linux or MacOS

GPUStack provides a script to install it as a service on systemd or launchd based systems. To install GPUStack using this method, just run:

curl -sfL https://get.gpustack.ai | sh -s -

Optionally, you can add extra workers to form a GPUStack cluster by running the following command on other nodes (replace http://myserver and mytoken with your actual server URL and token):

curl -sfL https://get.gpustack.ai | sh -s - --server-url http://myserver --token mytoken

In the default setup, you can run the following to get the token used for adding workers:

cat /var/lib/gpustack/token

Windows

Run PowerShell as administrator (avoid using PowerShell ISE), then run the following command to install GPUStack:

Invoke-Expression (Invoke-WebRequest -Uri "https://get.gpustack.ai" -UseBasicParsing).Content

Optionally, you can add extra workers to form a GPUStack cluster by running the following command on other nodes (replace http://myserver and mytoken with your actual server URL and token):

Invoke-Expression "& { $((Invoke-WebRequest -Uri 'https://get.gpustack.ai' -UseBasicParsing).Content) } --server-url http://myserver --token mytoken"

In the default setup, you can run the following to get the token used for adding workers:

Get-Content -Path "$env:APPDATA\gpustack\token" -Raw

Manual Installation

For manual installation or detailed configurations, refer to the installation docs.

Getting Started

  1. Run and chat with the llama3 model:
gpustack chat llama3 "tell me a joke."
  1. Open http://myserver in the browser to access the GPUStack UI. Log in to GPUStack with username admin and the default password. You can run the following command to get the password for the default setup:

Linux or MacOS

cat /var/lib/gpustack/initial_admin_password

Windows

Get-Content -Path "$env:APPDATA\gpustack\initial_admin_password" -Raw
  1. Click Playground in the navigation menus. Now you can chat with the LLM in the UI playground.

Playground Screenshot

  1. Click API Keys in the navigation menus, then click the New API Key button.

  2. Fill in the Name and click the Save button.

  3. Copy the generated API key and save it somewhere safe. Please note that you can only see it once on creation.

  4. Now you can use the API key to access the OpenAI-compatible API. For example, use curl as the following:

export GPUSTACK_API_KEY=myapikey
curl http://myserver/v1-openai/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $GPUSTACK_API_KEY" \
  -d '{
    "model": "llama3",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "Hello!"
      }
    ],
    "stream": true
  }'

Supported Platforms

  • MacOS
  • Linux
  • Windows

Supported Accelerators

  • Apple Metal
  • NVIDIA CUDA

We plan to support the following accelerators in future releases.

  • AMD ROCm
  • Intel oneAPI
  • MTHREADS MUSA
  • Qualcomm AI Engine

Supported Models

GPUStack uses llama.cpp as the backend and supports large language models in GGUF format. Models from the following sources are supported:

  1. Hugging Face

  2. Ollama Library

Here are some example models:

OpenAI-Compatible APIs

GPUStack serves the following OpenAI compatible APIs under the /v1-openai path:

  • List Models
  • Create Completions
  • Create Chat Completions
  • Create Embeddings

For example, you can use the official OpenAI Python API library to consume the APIs:

from openai import OpenAI
client = OpenAI(base_url="http://myserver/v1-openai", api_key="myapikey")

completion = client.chat.completions.create(
  model="llama3",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello!"}
  ]
)

print(completion.choices[0].message)

GPUStack users can generate their own API keys in the UI.

Documentation

Please see the official docs site for complete documentation.

Build

  1. Install python 3.10+.

  2. Run make build.

You can find the built wheel package in dist directory.

Contributing

Please read the Contributing Guide if you're interested in contributing to GPUStack.

License

Copyright (c) 2024 The GPUStack authors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at LICENSE file for details.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gpustack-0.1.2.tar.gz (88.8 MB view details)

Uploaded Source

Built Distributions

gpustack-0.1.2-py3-none-win_amd64.whl (84.6 MB view details)

Uploaded Python 3 Windows x86-64

gpustack-0.1.2-py3-none-manylinux2014_x86_64.whl (90.3 MB view details)

Uploaded Python 3

gpustack-0.1.2-py3-none-manylinux2014_aarch64.whl (90.3 MB view details)

Uploaded Python 3

gpustack-0.1.2-py3-none-macosx_11_0_universal2.whl (14.7 MB view details)

Uploaded Python 3 macOS 11.0+ universal2 (ARM64, x86-64)

File details

Details for the file gpustack-0.1.2.tar.gz.

File metadata

  • Download URL: gpustack-0.1.2.tar.gz
  • Upload date:
  • Size: 88.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for gpustack-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d3461c0445ad80143d77abc3a6a0a168811d15f0b7096a85afb14672f33e621b
MD5 d058616670fd8c64d11227c144d0a902
BLAKE2b-256 92bc3b10f7534573ae6c6578b99a4ce015323256cc994bb51cfd289435935f95

See more details on using hashes here.

File details

Details for the file gpustack-0.1.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: gpustack-0.1.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 84.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for gpustack-0.1.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2926ef30f4a667f46a55e35ec5002ade745e9188cc60a47eb27433d73c7d713c
MD5 13b5ad053c704bf25a93d82d397c9618
BLAKE2b-256 4f3832104122a4ad0274006cd6baf5600bbf9496009ead7ae16add388b4de409

See more details on using hashes here.

File details

Details for the file gpustack-0.1.2-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for gpustack-0.1.2-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 732a073c43f0458dbafeda0f7fcbd469c49320b2f16ca7ae7a4e1ab48b257751
MD5 f951f0ce088d076ea8cfb985f49a01bf
BLAKE2b-256 2a665989c684a8bccab510ce60ea6b557fd3d17e52ba5f70a48da1f8a7a7a7d0

See more details on using hashes here.

File details

Details for the file gpustack-0.1.2-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for gpustack-0.1.2-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 aa04c6c5bc534adf99794b8612b4b4ca3f4243af1ce767da680404bed9d4d62a
MD5 1ffe468dc6ca31ec5d68c06d7952c723
BLAKE2b-256 11a0ab1833117bd69ac6334bb6d5797a889291257edff316de91d59dcf1c444f

See more details on using hashes here.

File details

Details for the file gpustack-0.1.2-py3-none-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for gpustack-0.1.2-py3-none-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 323d489b2653cf15f0efe67f3840dc038f2b2123531b8302d80617b7000cfa4e
MD5 7ef76697d973c4ba4085fa000e73a72f
BLAKE2b-256 591f974f954b8f997f495587426cb07e4dd5e736dd2481a7388c5f50a8dd5884

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page