 Command
Site Info

sam.onl is a terminal-style knowledge base and notes hub, built with Astro + WebTUI. Use the keybinds below to move between navbar, content, and sidebars, then customize the look with the theme picker.

Theme
Keybinds
Navigation
j / ↓ Next item k / ↑ Previous item g First item in region G Last item in region zz Center focused item h / l Move left/right region ] / [ Next/previous heading } / { Next/previous block ⌃D / ⌃U Half-page down/up
Layout
<zh> / <zl> Toggle left/right sidebar <zj> / <zk> Focus main/navbar <S-h/j/k/l> Focus left/main/navbar/right ⌃H / ⌃L Focus left/right sidebar ⌃J / ⌃K Focus main/navbar
Dialogs
⌃P / : Command palette ⌃X Theme picker / Search ? Show keybinds Esc / ⌃C Close dialog
History
⌃N Next document ⌃B Previous document ⌃O History back ⌃I History forward
 Search
landing: Sam Foreman about: 🪪 About docs/test: Docs Test ideas: 💡 Ideas now: Now more: ➕ More projects: 📚 Projects posts: 📬 Posts talks: 🎙️ Talks posts/2025: 📆 2025 posts/auroragpt: 🤖 AuroraGPT posts/ai-for-physics: ⚛️ AI for Physics posts/dope-slides: 💅 How to Make Dope Slides posts/ezpz-at-alcf: 🍋 ezpz @ ALCF posts/jupyter: 📗 Jupyter posts/resume: 🧑🏻‍💻 Sam Foreman’s Résumé posts/ezpz-v1: 📝 ezpz-v1 posts/torchtune-aurora: 🪛 Torchtune on Aurora posts/torchtune-patch-aurora: 🚑 Torchtune Patch on Aurora posts/svgbob: 🫥 svgbob talks/auroragpt-siam25: AuroraGPT talks/ai-for-science-2024: Parallel Training Methods talks/alcf-hpc-workshop-2024/alcf-hpc-workshop-2024: Deep Learning and Foundation Models at Scale talks/aurora-gpt-fm-for-electric-grid/auroragpt-fm-for-electric-grid: AuroraGPT: Foundation Models for Science talks/hpc-user-forum/auroragpt: AuroraGPT talks/incite-hackathon-2025: ALCF Incite Hackathon 2025 talks/llms-at-scale: Training LLMs at Scale talks/llms-on-polaris: Training LLMs on Polaris talks/openskai25: Open SkAI2025 webtui/components/accordion: Accordion webtui/components/badge: Badge webtui/components/button: Button webtui/components/checkbox: Checkbox webtui/components/dialog: Dialog webtui/components/input: Input webtui/components/popover: Popover webtui/components/pre: Pre webtui/components/progress: Progress webtui/components/radio: Radio webtui/components/range: Range webtui/components/separator: Separator webtui/components/spinner: Spinner webtui/components/switch: Switch webtui/components/table: Table webtui/components/textarea: Textarea webtui/components/tooltip: Popover webtui/components/typography: Typography webtui/components/view: View webtui/contributing/contributing: Contributing webtui/contributing/contributing: ## Local Development webtui/contributing/contributing: ## Issues webtui/contributing/contributing: ## Pull Requests webtui/contributing/style-guide: Style Guide webtui/contributing/style-guide: ## CSS Units webtui/contributing/style-guide: ## Selectors webtui/contributing/style-guide: ## Documentation webtui/installation/astro: Astro webtui/installation/astro: ## Scoping webtui/installation/astro: ### Frontmatter Imports webtui/installation/astro: ### <style> tag webtui/installation/astro: ### Full Library Import webtui/installation/nextjs: Next.js webtui/plugins/plugin-dev: Developing Plugins webtui/plugins/plugin-dev: ### Style Layers webtui/installation/vite: Vite webtui/plugins/theme-catppuccin: Catppuccin Theme webtui/plugins/plugin-nf: Nerd Font Plugin webtui/plugins/theme-custom: Custom Theme webtui/plugins/theme-everforest: Everforest Theme webtui/plugins/theme-gruvbox: Gruvbox Theme webtui/plugins/theme-nord: Nord Theme webtui/plugins/theme-vitesse: Vitesse Theme webtui/start/ascii-boxes: ASCII Boxes webtui/start/changelog: Changelog webtui/start/installation: Installation webtui/start/installation: ## Installation webtui/start/installation: ## Using CSS webtui/start/installation: ## Using ESM webtui/start/installation: ## Using a CDN webtui/start/installation: ## Full Library Import webtui/start/installation: ### CSS webtui/start/installation: ### ESM webtui/start/installation: ### CDN webtui/start/intro: Introduction webtui/start/intro: ## Features webtui/start/plugins: Plugins webtui/start/plugins: ## Official Plugins webtui/start/plugins: ### Themes webtui/start/plugins: ## Community Plugins webtui/start/theming: Theming webtui/start/theming: ## CSS Variables webtui/start/theming: ### Font Styles webtui/start/theming: ### Colors webtui/start/theming: ### Light & Dark webtui/start/theming: ## Theme Plugins webtui/start/theming: ### Using Multiple Theme Accents webtui/start/tuis-vs-guis: TUIs vs GUIs webtui/start/tuis-vs-guis: ## Monospace Fonts webtui/start/tuis-vs-guis: ## Character Cells posts/2025/06: 06 posts/auroragpt/aurora-gpt: 🏎️ Megatron-DeepSpeed on Intel XPU posts/auroragpt/checkpoints: 💾 Converting Checkpoints posts/auroragpt/flash-attn-sunspot: 📸 `flash-attn` on Sunspot posts/auroragpt/determinstic-flash-attn/deterministic-flash-attn: 🎰 Deterministic `flash-attn` posts/auroragpt/long-sequences: 🚂 Loooooooong Sequence Lengths posts/auroragpt/mpi4py-reproducer: 🐛 `mpi4py` bug on Sunspot posts/auroragpt/spike-skipper: 🏔️ Spike Skipper posts/auroragpt/startup-times: 🐢 Starting Up Distributed Training on Aurora posts/auroragpt/startup-times: ## Response posts/auroragpt/startup-times: ### Measuring / Calculating Startup Time posts/auroragpt/startup-times: ## Minimal Working Example posts/ai-for-physics/diffusion: 🎲 MCMC + Diffusion Sampling posts/ai-for-physics/l2hmc-qcd: 🎢 L2HMC for LQCD posts/jupyter/l2hmc-4dsu3: 🔳 `l2hmc-qcd` Example: 4D SU(3) posts/jupyter/test: 🏁 `l2hmc` Example: 2D $U(1)$ talks/auroragpt/alcf-hpc-workshop-2024/auroragpt-alcf-hands-on-hpc-workshop-2024: AuroraGPT: ANL's General Purpose Scientific LLM talks/incite-hackathon-2025/auroragpt: LLMs on Aurora: Overview talks/incite-hackathon-2025/ezpz: LLMs on Aurora: Hands-On talks/openskai25/ai4science: Scientific AI at Scale: AuroraGPT talks/openskai25/training: Scientific AI at Scale: Distributed Training posts/2025/04/28: 🔥 Building PyTorch 2.6 from Source on Aurora posts/2025/05/03: 🚧 Frameworks Issue with numpy \> 2 posts/2025/06/01: 📰 Nice Headings posts/2025/06/02: 🧜‍♀️ Mermaid posts/2025/06/14: 🏗️ Building PyTorch 2.8 from Source on Aurora posts/2025/10/06: 🎨 Mixing Between Distributions While Training posts/2025/09/12: 🍹 BlendCorpus + TorchTitan @ ALCF posts/2025/09/17: 📊 `pbs-tui`: TUI for PBS Job Scheduler Monitoring posts/2025/11/12: 🧊 Cooling Down Checkpoints: Best Practices for Model Evaluation posts/2026/01/07: 🎉 Happy New Year! posts/2026/01/10: 🍋 ezpz posts/2026/02/28: ⏱️ Comparing Launchers on Aurora posts/2026/02/28: ## torchrun posts/2026/02/28: ## ezpz posts/ai-for-physics/l2hmc-qcd/2du1: 🎢 l2hmc-qcd Example: 2D U(1) posts/jupyter/l2hmc/4dsu3: 🔳 l2hmc-qcd Example: 4D SU(3) talks/2025/09/24: Training Foundation Models on Supercomputers talks/2025/10/08: AERIS: Argonne's Earth Systems Model posts/ai-for-physics/l2hmc-qcd/4dsu3nb/index-broken: 🕸️ l2hmc-qcd Example: 4D SU(3) talks/2025/10/15: Training Foundation Models on Supercomputers talks/2025/12/16: AuroraGPT: Training Foundation Models on Supercomputers talks/2025/10/24: Training Foundation Models on Supercomputers posts/drafts/2025/09/22: 📝 2025 Annual Report
 Theme Current: Light j/k or ↑/↓ + Enter

🍋 ezpz

Sam Foreman 2026-01-10

In ancient times1, back in ~ 2022–2023, virtually all (production) PyTorch code was designed to run on NVIDIA GPUs.

In April 2023, AMD announced day-zero support for PyTorch 2.0 within the ROCm 6.0 ecosystem, leveraging new features like TorchDynamo for performance

%%{init: {'themeCSS': '.titleText{color:var(--foreground1)!important;fill:var(--foreground1)!important;font-size:0.95rem!important;font-weight:700;}.taskText{font-weight:600;font-size:0.74rem!important;}.taskText,.taskTextOutsideLeft,.taskTextOutsideRight,.sectionTitle,.tick text{fill:var(--foreground0)!important;}.taskTextOutsideLeft,.taskTextOutsideRight,.sectionTitle{font-size:0.74rem!important;}.tick text{font-size:0.7rem!important;}.taskTextOutsideRight{text-anchor:start;transform:translateX(0.45ch);}.taskTextOutsideLeft{text-anchor:end;transform:translateX(-0.45ch);}.todayMarker{stroke:var(--red)!important;stroke-width:0.12rem;opacity:0.9;}.grid .tick line{stroke:var(--background3)!important;opacity:0.6;}.section0{fill:color-mix(in oklch,var(--background1) 72%,transparent)!important;}.section1{fill:color-mix(in oklch,var(--blue) 38%,transparent)!important;}.active,.done{fill:color-mix(in srgb,var(--blue) 72%,white 28%)!important;}.crit,.milestone{fill:var(--red)!important;stroke:var(--red)!important;}'}}%% gantt title AMD and Intel PyTorch Enablement Timeline dateFormat YYYY axisFormat %Y section AMD ROCm and PyTorch Torch7 era and early CUDA to HIP ports :amd1, 2012, 2016 ROCm 1.0 and HIPIFY tooling :amd2, 2016, 2020 Official PyTorch ROCm Python packages :amd3, 2021, 2022 PyTorch Foundation governance participation :amd4, 2022, 2023 Triton ecosystem support :amd6, 2023, 2024 MI300x PyTorch guidance :amd7, 2024, 2024 section Intel and PyTorch Initial PyTorch contributions :i2, 2018, 2019 Intel Extension for PyTorch launch :i3, 2020, 2024 VTune ITT API integration in PyTorch :milestone, i4, 2022, 1d PyTorch Foundation Premier membership :milestone, i5, 2023, 1d Prototype native Intel GPU support :milestone, i6, 2024, 1d Solid native Intel GPU support :milestone, i7, 2025, 1d IPEX feature upstreaming completion :milestone, i8, 2025, 1d Intel Extension for PyTorch end of life :milestone, crit, i9, 2026, 1d
%%{init: {'themeCSS': '.titleText{color:var(--foreground1)!important;fill:var(--foreground1)!important;font-size:0.95rem!important;font-weight:700;}.taskText{font-weight:600;font-size:0.74rem!important;}.taskText,.taskTextOutsideLeft,.taskTextOutsideRight,.sectionTitle,.tick text{fill:var(--foreground0)!important;}.taskTextOutsideLeft,.sectionTitle{font-size:0.74rem!important;}.taskTextOutsideRight{font-size:0.66rem!important;text-anchor:start;transform:translateX(0.2ch);}.tick text{font-size:0.7rem!important;}.taskTextOutsideLeft{text-anchor:end;transform:translateX(-0.45ch);}.todayMarker{stroke:var(--red)!important;stroke-width:0.12rem;opacity:0.9;}.grid .tick line{stroke:var(--background3)!important;opacity:0.6;}.section0{fill:color-mix(in oklch,var(--orange) 30%,transparent)!important;}.section1{fill:color-mix(in oklch,var(--background2) 76%,transparent)!important;}.section2{fill:color-mix(in oklch,var(--blue) 42%,transparent)!important;}.active,.done{fill:color-mix(in srgb,var(--blue) 72%,white 28%)!important;}.crit,.milestone{fill:var(--red)!important;stroke:var(--red)!important;}'}}%% gantt title PyTorch Vendor Integration Timeline AMD vs Intel dateFormat YYYY-MM-DD axisFormat %Y section AMD Installable PyTorch ROCm Python packages :amd2, 2021-03-04, 1d ROCm marked stable :amd3, 2022-06-28, 1d section PyTorch Releases 1.8 :milestone, crit, pt180, 2021-03-04, 1d 1.12 :pt1120, 2022-06-28, 1d 2.0 :milestone, crit, pt200, 2023-03-15, 1d 2.4 :pt24, 2024-07-24, 1d 2.5 :milestone, crit, pt250, 2024-10-17, 1d 2.6 :pt260, 2025-01-29, 1d 2.7 :pt270, 2025-04-23, 1d 2.8 :crit, pt280, 2025-08-06, 1d 2.9 :pt290, 2025-10-15, 1d 2.10 :pt210, 2026-01-15, 1d section Intel Intel GPU improvements begin :int2, 2024-07-24, 1d Native Intel GPU support in 2.5 :int3, 2024-10-17, 1d Intel GPU eager/compile parity in 2.7 :int4, 2025-04-23, 1d Intel XCCL backend in 2.8 :int5, 2025-04-23, 1d IPEX discontinued :int6, 2025-08-06, 2026-03-31 IPEX end of life :milestone, crit, int7, 2026-03-31, 1d

Intel: Mar 2026 (planned): IPEX end-of-life, move to native PyTorch.

AMD Timeline

  • Pre-2021: Early Efforts and Torch7
    • 2012: Torch7 was released, a precursor to PyTorch, written in C++ and CUDA.
    • ROCm 1.0: AMD demonstrated the ability to port CUDA code to HIP (AMD’s C++ dialect for GPU computing) using the HIPIFY tool, including ports of Caffe and Torch7.
  • 2021-2022: Official Support and Foundation
    • March 2021: PyTorch for the AMD ROCm platform became officially available as a Python package, simplifying installation on supported Linux systems.
    • September 2022: The PyTorch project joined the independent Linux Foundation, with AMD participating as a founding member of the PyTorch Foundation governing board.
  • 2023: PyTorch 2.0 Integration
    • April 2023: AMD announced day-zero support for PyTorch 2.0 within the ROCm 6.0 ecosystem, leveraging new features like TorchDynamo for performance improvements.
    • OpenAI Triton Support: The ecosystem grew to include support for OpenAI Triton, a key component for high-performance AI workloads.
  • 2024-2025: Expanding Accessibility (Windows & Consumer GPUs)
    • June 2024: AMD released guides and information on running PyTorch models on AMD MI300x systems, highlighting near drop-in compatibility with code written for Nvidia GPUs.
    • September 2025: AMD released a public preview of PyTorch on Windows, enabling native AI inference on select consumer Radeon RX 7000 and 9000 series GPUs and Ryzen AI APUs, without needing workarounds like WSL2.
    • October 2024: AMD released a “how-to” guide for using Torchtune, a PyTorch library for fine-tuning LLMs, on AMD GPUs.
    • November 2025: Release of AMD Software: PyTorch on Windows Edition 7.1.1, featuring an update to AMD ROCm 7.1.1.
  • Future/Upcoming
    • 2026: AMD is working on its next generation MI450X rack-scale solution, which aims to be competitive with NVIDIA’s high-end offerings by the second half of 2026.
    • Post-2026: The company has also detailed plans for future MI500 series data center GPUs, targeting a significant increase in AI performance

Intel Timeline

  • 2018: Intel begins contributing to the open-source PyTorch framework.
  • 2020: The Intel® Extension for PyTorch* (IPEX) is launched as a separate package to provide optimized performance on Intel CPUs and GPUs.
  • October 20222: PyTorch 1.13 is released with integrated support for Intel® VTune™ Profiler’s ITT APIs.
  • August 20233: Intel joins the PyTorch Foundation as a Premier member, deepening its commitment to the ecosystem.
  • July 2024: PyTorch 2.4 debuts with initial (prototype) native support for Intel GPUs (client and data center).
  • April 2025: PyTorch 2.7 establishes a solid foundation for Intel GPU support in both eager and graph modes (torch.compile) on Windows and Linux.
  • August 2025: Active development of the separate Intel® Extension for PyTorch* ceases following the PyTorch 2.8 release, as most features are now upstreamed into the main PyTorch project.
  • End of March 2026 (Planned): The Intel® Extension for PyTorch* project will officially reach end-of-life. Users are strongly recommended to use native PyTorch directly.

This made sense at the time, as NVIDIA had the vast majority of the GPU market share and was the only major GPU manufacturer.

This was before the advent of

we were still in the early days of trying to run PyTorch on

I’ve been working on the 🍋 ezpz package for a while now,

Footnotes

  1. Even now, in 2026, a lot of code is still NVIDIA-centric and is rarely designed with multi-platform support in mind.

  2. PyTorch 1.13 release

  3. Intel Joins the PyTorch Foundation