Skip to content

Rename iris/device/ to iris/mem/, unify Context class names - #520

Merged
mawad-amd merged 4 commits into
mainfrom
muhaawad/device-to-mem
Apr 26, 2026
Merged

Rename iris/device/ to iris/mem/, unify Context class names#520
mawad-amd merged 4 commits into
mainfrom
muhaawad/device-to-mem

Conversation

@mawad-amd

Copy link
Copy Markdown
Collaborator

Summary

  • Move device-side remote memory access primitives from iris/device/iris/mem/ to better describe what the module provides (remote memory access)
  • Unify class names across Triton and Gluon backends: DeviceContextContext, IrisDeviceCtxContext, DeviceTracingTracing, GluonDeviceTracingTracing
  • iris/device/ files become thin backward-compat shims (re-exports from iris.mem.*). The __translate dunder is explicitly re-exported since import * excludes dunder names
  • All internal imports updated to canonical iris.mem.* paths; examples left unchanged to exercise shim path

Why mem?

The Context provides remote memory access (load/store/atomics across GPUs). 3 chars, same energy as x, ccl, ops. The hierarchy: mem (primitives) → ccl (collectives) → ops (fused). Users go deeper only when writing device kernels, and only mem requires explicit backend selection (iris.mem.triton vs iris.mem.gluon).

Test plan

  • Verify backward compat: from iris.device.triton.context import DeviceContext still works
  • Verify new paths: from iris.mem.triton.context import Context works
  • Verify top-level API: from iris import DeviceContext, Context, load, store
  • Verify gluon: from iris.gluon import IrisDeviceCtx
  • torchrun --nproc_per_node=4 examples/25_ccl_all_gather/example.py
  • torchrun --nproc_per_node=4 examples/25_ccl_all_reduce/example.py
  • pytest tests/ -x -v

🤖 Generated with Claude Code

Move device-side remote memory access primitives from iris/device/ to
iris/mem/ to better reflect what the module provides. Unify class names
across backends: DeviceContext → Context, IrisDeviceCtx → Context,
DeviceTracing → Tracing, GluonDeviceTracing → Tracing.

iris/device/ files become thin backward-compat shims that re-export from
iris.mem.*. The __translate dunder is explicitly re-exported since star
imports exclude dunder names. All internal imports updated; examples
left unchanged to exercise the shim path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added in-progress We are working on it iris Iris project issue labels Apr 25, 2026
@mawad-amd
mawad-amd requested a review from Copilot April 26, 2026 00:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR reorganizes Iris device-side remote memory access code under iris.mem and standardizes backend class naming (Context, Tracing) while keeping iris.device.* as backward-compatible shims.

Changes:

  • Introduces iris/mem/ (Triton + Gluon) with Context, Tracing, ops, and device utils.
  • Updates internal imports to canonical iris.mem.* paths and re-exports old iris.device.* modules as compatibility shims.
  • Updates top-level exports (iris.Context, iris.DeviceContext, ops) and adjusts unit tests/import call sites accordingly.

Reviewed changes

Copilot reviewed 30 out of 30 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tests/unittests/test_device_context.py Updates import-path test to point at iris.mem.*
iris/x/reduce_scatter.py Switches kernel context import to iris.mem.triton.context
iris/x/gather.py Switches kernel context import to iris.mem.triton.context
iris/x/all_to_all.py Switches kernel context import to iris.mem.triton.context
iris/x/all_reduce.py Switches kernel context import to iris.mem.triton.context
iris/x/all_gather.py Switches kernel context import to iris.mem.triton.context
iris/mem/utils.py Adds device-side HIP/CDNA utility intrinsics under iris.mem
iris/mem/triton/tracing.py Adds canonical Triton tracing aggregate under iris.mem.triton
iris/mem/triton/ops.py Adds canonical Triton RMA functional API under iris.mem.triton
iris/mem/triton/context.py Adds canonical Triton Context aggregate under iris.mem.triton
iris/mem/triton/init.py Exposes canonical Triton API + backward-compat aliases
iris/mem/gluon/tracing.py Adds canonical Gluon tracing aggregate under iris.mem.gluon
iris/mem/gluon/context.py Adds canonical Gluon Context aggregate under iris.mem.gluon
iris/mem/gluon/init.py Exposes canonical Gluon API + backward-compat aliases
iris/mem/init.py Creates iris.mem package root
iris/host/iris.py Re-points host re-export of device tracing to iris.mem.triton.tracing
iris/gluon.py Re-points Gluon convenience imports to iris.mem.gluon.*
iris/experimental/init.py Re-points experimental Gluon context import to iris.mem.gluon
iris/device/utils.py Converts iris.device.utils into shim re-exporting iris.mem.utils
iris/device/triton/tracing.py Converts Triton tracing module into shim re-exporting iris.mem.triton.tracing
iris/device/triton/ops.py Converts Triton ops module into shim re-exporting iris.mem.triton.ops
iris/device/triton/context.py Converts Triton context module into shim (explicitly re-exporting __translate)
iris/device/triton/init.py Converts Triton package into shim re-exporting iris.mem.triton
iris/device/gluon/tracing.py Converts Gluon tracing module into shim re-exporting iris.mem.gluon.tracing
iris/device/gluon/context.py Converts Gluon context module into shim re-exporting iris.mem.gluon.context
iris/device/gluon/init.py Converts Gluon package into shim re-exporting iris.mem.gluon
iris/device/init.py Converts iris.device into shim re-exporting iris.mem
iris/ccl/all_to_all.py Switches Gluon context import to iris.mem.gluon.context
iris/ccl/all_gather.py Switches Gluon context import to iris.mem.gluon.context
iris/init.py Exposes Context and repoints DeviceContext/ops to iris.mem.triton.*

Comment thread tests/unittests/test_device_context.py
Comment thread iris/mem/triton/tracing.py
Comment thread iris/mem/triton/tracing.py
Comment thread iris/mem/triton/ops.py
Comment thread iris/mem/triton/tracing.py
mawad-amd and others added 2 commits April 25, 2026 17:32
Address Copilot review: test_device_context_imports now also verifies
that iris.device.triton.context.DeviceContext resolves to the same
object as the canonical iris.mem.triton.context.Context path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix stale documentation references caught by review agents:
- iris/__init__.py and iris/experimental/__init__.py docstrings
- docs/reference/gluon/device-functions.md automethod directives
- docs/reference/triton/device-functions.md autofunction directives

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mawad-amd
mawad-amd marked this pull request as ready for review April 26, 2026 23:49
@mawad-amd
mawad-amd requested review from BKP and neoblizz as code owners April 26, 2026 23:49
@mawad-amd
mawad-amd merged commit 59fe573 into main Apr 26, 2026
43 checks passed
@mawad-amd
mawad-amd deleted the muhaawad/device-to-mem branch April 26, 2026 23:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

in-progress We are working on it iris Iris project issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants