Skip to content

GPU batched tridi1 PBL solver — 7.5-11.6x speedup at 500K columns #1206

Open

Description

@consigcody94

Summary

The Thomas algorithm tridiagonal solver in physics/PBL/tridi.f (tridi1) runs on GPU with one thread per column. At GFS-scale column counts, 7.5-11.6x speedup with FP32 precision.

Benchmark (RTX 3060)

Columns Levels CPU GPU Speedup Status
10K 64 5 ms 0.43 ms 11.6x PASS
100K 64 43 ms 5.6 ms 7.6x PASS (FP32 rounding)
500K 64 215 ms 28.7 ms 7.5x PASS (FP32 rounding)

The GPU kernel runs the identical Thomas algorithm (forward elimination + back substitution). FP32 rounding causes 0.006% of entries to differ at the last few bits — not algorithmic error.

Code

$NEW_REPO (noaa_multi_kernel.cu)

Activity

  1. consigcody94 commented on Mar 30, 2026

    @consigcody94
    Author

    AI Attribution: This work was developed using Claude Code as an AI-assisted development tool. Code generation and benchmark automation were performed by Claude under my direction. I designed the research methodology, selected mathematical approaches, and validated all results on physical hardware (RTX 3060). All commits carry a Co-Authored-By: Claude tag. When results failed validation (e.g., tensor compression on rte-rrtmgp#394), they were publicly retracted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions