Skip to content

ILGPU v2.0: Docker Support + AI Readiness#1579

Open
m4rs-mt wants to merge 12 commits into
masterfrom
new_ai_readiness
Open

ILGPU v2.0: Docker Support + AI Readiness#1579
m4rs-mt wants to merge 12 commits into
masterfrom
new_ai_readiness

Conversation

@m4rs-mt
Copy link
Copy Markdown
Owner

@m4rs-mt m4rs-mt commented Apr 19, 2026

This PR packages everything needed to run the compiler service in a container, deploy it to a remote host, and redesigns the canonical CI workflow to use those images for GPU-bound jobs. It also introduces CLAUDE.md — an onboarding file that helps AI coding assistants navigate the repository.

This PR is deliberately narrow — it contains only infrastructure / tooling / process files. No source-code changes.

The first three commits are PR placeholders for the runtime-library, AOT-compiler, and compiler-bindings PRs; once those land on master they collapse into real merge commits.

A note on authorship - AI warning

Much of the test-infrastructure work in this PR was done with AI-assistant pair programming (Claude via Claude Code).

What's in this PR

Docker images for the compiler service (Src/docker/, 5 files)

Three Dockerfiles, one per GPU-bound backend:

  • Dockerfile.cuda — NVIDIA CUDA toolkit + ILGPUC.CompilerService for emitting PTX/cubin.
  • Dockerfile.rocm — AMD ROCm + hipcc for HIP code generation.
  • Dockerfile.opencl — Intel ocloc + clang-for-OpenCL for OpenCL backends.

Plus:

  • Src/docker/run.sh — multi-image launcher that selects the right image based on the target backend requested.
  • Src/docker/README.md — explains how to build, tag, and publish the images and how they're consumed from CI.

Deployment scripts (Src/scripts/, 2 files)

  • deploy-compiler-service.sh — systemd-based remote deployment helper. SSHes to a target host, pulls the relevant docker image, and registers / starts a systemd unit pointing at it.
  • README.md — documents the deploy flow, required host prerequisites, and how to roll back a deployment.

Root configuration

  • .dockerignore — excludes test artefacts, IDE files, and bin//obj/ from Docker build contexts.

GitHub Actions workflows (3 files)

  • .github/workflows/docker-publish.yml — monthly GHCR publish of the CUDA / ROCm / OpenCL compiler-service images.
  • .github/workflows/cleanup-ghcr.yml — monthly GHCR retention: keeps recent tags, prunes old ones so the container registry doesn't grow unbounded.
  • .github/workflows/ci.yml — the canonical CI workflow is redesigned around the new compiler-service images. Jobs now cover: the standalone build, the xUnit test suite (run against the CPU backend), and GPU-bound Docker-run jobs that exercise the full pipeline inside a containerized CUDA/ROCm/OpenCL toolchain. This replaces the previous ILGPU.Tests.CPU/Cuda test harnesses.

Src/CLAUDE.md

An AI-assistant onboarding file at the top of Src/ describing:

  • Build & test commands (including the --blame-hang-timeout 360s guard that prevents endless loops in compiler tests).
  • Project structure at a glance (ILGPU / ILGPUC / ILGPUC.Compilers / ILGPUC.CompilerService / ILGPUC.Tests).
  • The compilation pipeline from IL bytecode through ILFrontendModuleBuilder.Seal()OptimizerBackend.GenerateCode().
  • IR architecture pointers (type hierarchy, value hierarchy, transformation framework).
  • Pipeline-stage debug flags and snapshot-regeneration workflow.

Scope boundary

No test project (ILGPUC.Tests/), no samples (Samples/), and no backend / compiler source changes.

Depends on

PR #1578

m4rs-mt and others added 12 commits December 15, 2025 19:16
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…tory.

Co-Authored-By: Claude <noreply@anthropic.com>
…n jobs.

Co-Authored-By: Claude <noreply@anthropic.com>
…once the new ILGPUC.Tests project lands on the tests PR.

Co-Authored-By: Claude <noreply@anthropic.com>
@m4rs-mt m4rs-mt added this to the v2.0 milestone Apr 19, 2026
@m4rs-mt m4rs-mt marked this pull request as ready for review April 20, 2026 00:03
m4rs-mt added a commit that referenced this pull request Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant