Skip to main content

FlagGems is a function library written in Triton.

Project description

github+banner-20260130

中文版 | English

About

FlagGems is part of FlagOS, a fully open-source system software stack designed to unify the model–system–chip layers and foster an open and collaborative ecosystem. It enables a "develop once, run anywhere" workflow across diverse AI accelerators, unlocking hardware performance, eliminating fragmentation among AI chipset-specific software stacks, and substantially lowering the cost of porting and maintaining AI workloads.

FlagGems is a high-performance, generic operator library implemented in Triton language. It is built on a collection of backend-neutral kernels that aims to accelerate LLM (Large-Language Models) training and inference across diverse hardware platforms.

By registering with the ATen backend of PyTorch, FlagGems facilitates a seamless transition, allowing model developers to switch to Triton without changing the low level APIs. Users can continue using their familiar Pytorch APIs while at the same time benefit from new hardware acceleration technologies. For kernel developers, the Triton language offers readability, user-friendliness and performance comparable to CUDA. This convenience allows developers to engage in the development of FlagGems with minimal learning investment.

Features

FlagGems provides the following technical features.

  • A large collection of PyTorch compatible operators
  • Hand-optimized performance for selective operators
  • Eager-mode ready, independent of torch.compile
  • Automatic pointwise operator codegen supporting arbitrary input types and layout
  • Fast per-function runtime kernel dispatching
  • Multi-backend interface enabling support of diverse hardware platforms
  • Over 10 supported backends
  • C++ Triton function dispatcher (working in progress)

Check the features documentation for more details.

Getting Started

  • Refer to the Getting Started for a quick start.
  • Refer to the usage documentation for some details on using the software.

Sample models for testing

  • Bert-base-uncased
  • Llama-2-7b
  • Llava-1.5-7b

Contribution

  • If you are interested in contributing to the FlagGems project, please refer to contribution guide. Any contributions would be highly appreciated.

  • Please file an issue for feature requests or bug reports.

  • Drop us an email at contact@flagos.io when you have questions or suggestions to share.

  • Join the FlagGems WeChat group by scanning the QR code below. You will receive first-hand messages about updates and new releases. Let the team know your questions or ideas!

    开源小助手

Citation

If you find our work useful, please consider citing our project:

@misc{flaggems2024,
    title={FlagOS/FlagGems: An operator library for large language models implemented in the Triton language.},
    url={https://github.com/flagos-ai/FlagGems},
    journal={GitHub},
    author={The FlagOS contributors},
    year={2024}
}

License

The FlagGems project is licensed under the Apache License (Version 2.0).

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flag_gems-5.0.1rc0-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file flag_gems-5.0.1rc0-py3-none-any.whl.

File metadata

  • Download URL: flag_gems-5.0.1rc0-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for flag_gems-5.0.1rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 e600c2ea958c4fc6ab64a4f972e78ca3a1845109815f108174e2ed5c06d90be6
MD5 dff49370f37f1aada43751ea83f8f4cb
BLAKE2b-256 1ec31cc833d684b2a44a5000d5249f7f82ce5cf31a10856630a8a9cbdc0a345b

See more details on using hashes here.

Provenance

The following attestation bundles were made for flag_gems-5.0.1rc0-py3-none-any.whl:

Publisher: release.yaml on flagos-ai/FlagGems

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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