Skip to content

jeffdaily/moat

Repository files navigation

MOAT

MOAT (Moat Obliteration via Automated Translation) ports popular CUDA GitHub projects to ROCm/HIP, one repo at a time, across AMD targets: Linux gfx90a, Linux gfx1100, and Windows on gfx1101 and gfx1201. It is driven by Claude: a planner analyzes each project, a porter applies the change on a fork in the jeffdaily org, a reviewer checks it, and a validator builds and runs the real tests on AMD hardware. This repo is the control plane; it tracks progress and accumulates porting best practices in PORTING_GUIDE.md.

How it works

Each project gets a folder under projects/ holding its plan, notes, and a per-platform status file. A fresh Claude CLI run in this repo detects its AMD architecture, finds the next actionable project, and continues the pipeline. Linux gfx90a is the lead platform; the follower archs (Linux gfx1100, Windows gfx1101 and gfx1201) reuse the resulting fork branch and re-validate, since the AMD targets share one unified ROCm port. gfx1151 is a retired Windows host: its earlier validations are kept as records, and it is scheduled no new work.

Scope and honesty

The project list below is a best-effort ranked union of targeted GitHub searches, not a census of every CUDA repo (GitHub search caps results per query and misses repos whose dominant language is not Cuda). Ports aim to be minimally invasive: for pure CMake projects we prefer enable_language(HIP) plus a single cuda-to-hip compat header (the colmap model); for pytorch extensions we rely on torch's build-time hipify. A CPU-only build smoketest proves compilation only; correctness is gated on real-GPU test runs. See PORTING_GUIDE.md.

Projects we will not port (already ported, already supported, can't be ported, or not a real target) are recorded with reasons in data/dispositions.json and kept out of the actionable list; utils/triage.py manages those decisions.

Projects

Status: ✅ done · 🔧 in progress · 🟡 queued (gfx1201 follower; lead done) · 🔄 re-check (HEAD moved) · ⬜ todo/gated · 🚫 blocked/failed · — n/a or pending. Outcome: 🟣 PR merged · 🟢 PR open · 🔴 PR closed · 🔵 validated (existing ROCm confirmed on N archs) · 🍴 fork-only · ⚪ superseded · — pending. † The Windows archs (gfx1101 / gfx1201 / gfx1151) are a redundant tier -- any ONE completed (✅) satisfies the Windows requirement for PR-readiness; the two Linux archs (gfx90a then gfx1100) are each required. gfx1101 and gfx1151 are optional targets (validated results are recorded, but they are never scheduled and never gate anything). The project name links to upstream, (fork) to the port branch on our fork.

Project gfx90a
Linux
gfx1100
Linux
gfx1101 †
Windows
gfx1201 †
Windows
gfx1151 †
Windows
Outcome
3 (fork) 🟢 #400
3dgrut 🚫
3DGS-LM (fork) 🟢 #15
3DUNDERWORLD-SLS-GPU_CPU (fork) 🟢 #33
3P-ADMM-PC2 (fork) 🟣 #10
accelerated-scan (fork) 🟢 #17
aihwkit (fork) 🟢 #770
alien (fork) 🚫 🟢 #710
amgcl (fork) 🟣 #315
arbor (fork) 🟢 #2512
arrayfire (fork) 🟢 #3708
AutoDock-GPU (fork) 🟢 #320
bam (fork) 🚫
baspacho (fork) 🟢 #10
bellhopcuda (fork) 🟢 #65
brian2cuda (fork) 🟢 #327
catboost (fork) 🟢 #3111
colmap (fork) 🚫 🚫 🚫 🟢 #4420
colvars 🚫 🚫 🚫 🚫
CPM.cu 🚫
CTranslate2 (fork) 🔵 validated (5 arch)
CubbyFlow (fork)
cucim (fork) 🟡
cuCollections (fork) 🟡
cuda-efficient-features (fork) 🟢 #3
CUDA-L2 🚫
CUDA-ScanMatcher-ICP (fork) 🟢 #10
cudaKDTree (fork) 🟢 #40
CudaSift (fork) 🟢 #97
cudf (fork) 🟡
cuEquivariance 🚫
cugraph (fork) 🟡
CuMesh (fork)
cuml (fork) 🟡
cuPDLP-C (fork) 🟢 #41
cuPDLPx (fork)
cupoch (fork)
CuRast (fork) 🟢 #2
cuSZ (fork)
cuvs (fork) 🟡
CV-CUDA (fork) 🚫 🚫
DDN-SLAM (fork)
DEM-Engine (fork)
dgSPARSE-Lib (fork)
dietgpu (fork)
DiffPhysDrone (fork)
DynOSAM 🚫
egg.c (fork)
ElasticFusion (fork)
EnvGS (fork)
espresso (fork) 🚫
evogp (fork)
faiss (fork)
FaithC (fork)
Fast-Poisson-Image-Editing (fork) 🟣 #25
faster-gaussian-splatting (fork)
FastGeodis (fork)
fdtd3d (fork)
ffpa-attn (fork) 🚫
FLAMEGPU2 (fork)
FlashKDA 🚫 🚫 🚫 🚫
FlashMoE 🚫
FlashRT 🚫
foldmason (fork)
foldseek (fork)
fp6_llm 🚫 🚫 🚫 🚫
fused-ssim (fork) 🔵 validated (3 arch)
futhark 🚫 🚫 🚫 🚫
gaussian_splatting (fork)
gdtk (fork)
GOMC (fork)
GooFit (fork) 🚫
gpu4pyscf (fork) 🚫 🚫
GPU_IPC (fork) 🚫
Gpufit (fork) 🚫
GPUMD (fork) 🟣 #1538
gpuRIR (fork)
gRASPA (fork)
gsplat (fork) 🟢 #970
gtsam_points (fork) 🟢 #99
heavydb 🚫
HEonGPU (fork) 🚫
icicle (fork) 🚫 🚫
k2 (fork) 🟢 #1353
kaldi (fork) 🚫 🚫 🔵 validated (2 arch)
kaldifeat (fork)
lc0 (fork) 🚫 🚫 🚫 🟢 #2420
LEAP (fork)
libCEED 🚫 🚫 🚫 🚫
libhipcxx (fork) 🟢 #23
libSGM (fork) 🟢 #89
LichtFeld-Studio (fork) 🚫 🚫
LiteGS (fork)
llm-awq (fork)
llm.c (fork) 🟢 #854
llmq 🚫
LMCache (fork) 🚫 🚫 🔵 validated (2 arch)
mahout (fork) 🟢 #1399
marian-dev (fork)
MASt3R-SLAM (fork)
mcx (fork)
metaeuk (fork)
mHC.cu (fork)
mirage 🚫
mmcv 🚫
MMseqs2 (fork)
MPPI-Generic (fork)
mwa_hyperdrive 🚫
NATTEN 🚫 🚫 🚫 🚫
nerfacc (fork)
ntransformer (fork)
nvdiffrast (fork)
OCTproZ (fork)
ohm (fork)
oneflow (fork) 🚫 🚫
op43dgs (fork)
Open3D (fork) 🚫 🟢 #7509
opencv_contrib (fork) 🟢 #4147
PhoenixOS 🚫
plumed2 (fork) 🚫 🚫
plvs (fork) 🔄 🔄 🔧
Pointcept (fork) 🟡 🟡
popsift (fork) 🟢 #186
prismatic (fork)
pyslam 🚫
pytorch3d (fork) 🟣 #2039
pytorch_cluster 🚫
pytorch_scatter 🚫
pytorch_sparse
qrack (fork)
Quest (fork) 🚫
QUICK (fork) 🚫 🚫
raft (fork) 🟡
rmcl (fork)
rmm (fork) 🟡
RWKV-CUDA (fork)
RXMesh (fork) 🟢 #73
SCAMP (fork)
SpargeAttn 🚫
sparser-faster-llms 🚫 🚫 🚫 🚫
spconv 🚫
splatad (fork)
sppark (fork) 🚫 🚫
stdgpu (fork) 🚫
STRUMPACK (fork) 🚫 🚫 🔵 validated (2 arch)
symforce (fork)
TIGRE (fork)
tiny-vllm (fork)
torch-linear-assignment (fork)
trt-shim-rocm (fork) 🔧 🚫 🚫
TTT3R (fork)
TurboFNO (fork)
unified-cache-management (fork) 🟢 #1021
Velvet (fork)
visionaray (fork)
yalm (fork)
YarnBall (fork)
ZhiLight (fork) 🚫 🚫

Layout

See projects/README.md for the per-project files, PORTING_GUIDE.md for porting strategy and fault classes, and CLAUDE.md for how a Claude CLI drives the pipeline.

About

MOAT: a Claude-driven effort to port popular CUDA GitHub projects to ROCm/HIP across AMD targets (Linux gfx90a, gfx1100, Windows gfx1151)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors