-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Iris is AMD's powerful and intuitive multi-GPU programming framework built on Triton. We're here to make distributed GPU computing accessible to everyone! It's designed by experts and built for scale, ensuring you get a robust and efficient experience.
Iris is a Triton-based framework for Remote Memory Access (RMA) that provides SHMEM-like APIs for multi-GPU programming. Think of it as your friendly companion for writing multi-GPU code as easily as single-GPU code! We've focused on clean abstractions and minimal dependencies to keep things simple and powerful.
- π Simple & Intuitive: Write multi-GPU programs without the complexity
- β‘ High Performance: Inherits Triton's programmability and performance
- π§ Familiar APIs: SHMEM-like patterns, Triton-style device APIs, and PyTorch-like host APIs
- ποΈ Expert Design: Built from scratch by GPU and distributed computing experts
- β‘ Minimal Dependencies: Only Triton, PyTorch, HIP runtime, and mpi4py
We have comprehensive examples to help you learn Iris:
- Basic Operations: Start with load/store operations
- Atomic Operations: Learn cross-GPU atomics
- Message Passing: Point-to-point communication
- GEMM Examples: Matrix multiplication with communication
# Basic operations
mpirun -np 8 python examples/00_load/load_bench.py
# GEMM benchmarks
mpirun -np 8 python examples/07_gemm_all_scatter/benchmark.py --benchmark --validate
We're building something special here, and we'd love for you to be part of it! Here's how you can get involved:
- GitHub Discussions: Perfect for asking questions, sharing ideas, or just chatting about multi-GPU programming
- General Questions: "How do I implement X pattern?"
- Best Practices: "What's the recommended way to do Y?"
- Show & Tell: Share your Iris projects and experiences!
- GitHub Issues: Help us make Iris better by reporting bugs
- Feature Requests: Have an idea? We want to hear it!
- Documentation: Spotted something unclear? Let us know!
- Pull Requests: Code improvements, bug fixes, new features
- Documentation: Help make our docs clearer and more helpful
- Examples: Share your use cases and implementations
- Testing: Help us ensure Iris works great for everyone
- Check our examples - We have working code for most common patterns
- Look at the docs - Programming Model, Setup Guide
- Start a discussion - Our community is friendly and helpful!
- Open an issue - For bugs or clear problems
- Start with small examples to understand the patterns
- Check GPU memory availability vs. your heap size
- Don't forget to use barriers for synchronization!
- Programming Model: Deep dive into how Iris works
- Fine-grained Overlap: Advanced optimization techniques
- Setup Alternatives: Different ways to get Iris running
- Contributing Guide: How to contribute to Iris
We're excited to see what you'll build with Iris! Remember:
- Ask questions in Discussions - no question is too basic!
- Share your experiences - we love hearing success stories
- Contribute back - help make Iris better for everyone
- Have fun - multi-GPU programming should be enjoyable!
Happy coding with Iris! π
This project is intended for research purposes and is provided by AMD Research and Advanced Development team.
π¬ Start a Discussion | π Report an Issue | π Make a PR