GeoWave3D
AI 科研综合平台
GeoWave3D/main main
Manual Execution CUDA 13.1 GPU NVIDIA L20
src/kernel.cu AI 建议

Experiment 014

已完成 Testing Agent

8 阶声波有限差分 · 共享内存 halo 版 · 由 Testing Agent 执行 · 代码 a83c12f

GPU NVIDIA L20 Grid 951×501×510 Δx 10 m Δt 1 ms Steps 1500 Workflow Manual
Configuration
Backend
CUDA 13.1
Precision
FP32
Grid
951 × 501 × 510
dx
10 m
dt
1 ms
Steps
1500
Execution
Agent
Testing Agent
GPU
NVIDIA L20 · 89%
Started
14:02:14
End
14:02:27
Results
Total Runtime
12.84 s
Kernel Runtime
6.48 s
Kernel Step
4.32 ms
Memory
8.7 GB
Max Error
2.1e-3
Throughput
89.4 GB/s
Artifacts
Data wavefield_001.npy Benchmark benchmark.json Log run.log Figure wavefield_t1.5s.svg

Wavefield · t = 1.5 s

已完成 Visualization Agent

z-slice 255 · 8 阶声波快照 · 由 wavefield_001.npy 渲染

Code a83c12f Experiment 014 Data wavefield_001.npy Agent Visualization Skill Wavefield Plot Figure wavefield_t1.5s.svg
t = 1.5 s · z-slice 255 0250 500750950 5004003002001000 x (m) z (m) +1.00−1.0
Metadata
Grid951×501×510
Time Step1.5 s
ColormapSeismic
Range−1.0 / +1.0
Resolution10 m
Provenance
Codekernel.cu · a83c12f
ExperimentExperiment 014
Datawavefield_001.npy
AgentVisualization · Gemini
SkillWavefield Plot
Figurewavefield_t1.5s.svg
AI Analysis
波前呈椭圆近似理想;x 方向采样在远场略低于 Nyquist,建议网格加密或插值后再发布。

Benchmark · kernel 运行时

已完成 Performance Agent

L20 · 1500 steps · kernel 6.48 s(4.32 ms/step)· 由 perf_scaling_L20.json 渲染 · 来源 Experiment 014 · 代码 a83c12f

目标 4.5 ms 基线共享内存向量化LaunchBnd常量内存CUDA Graph 5.824.313.64 3.123.052.94 ms / step
配置ms/stepGB/s加速比
基线(全局读 ×24)5.8239.11.00×
共享内存 tile4.3152.81.35×
向量化 float43.6462.51.60×
__launch_bounds__(128)3.1272.91.87×
常量内存 FD_W3.0574.61.91×
CUDA Graph 捕获2.9477.41.98×

Code Analysis · src/kernel.cu

已完成 Code Analysis Agent

由 Code Analysis Agent 以 GPT-5.6 分析 · 产出 analysis/findings.json

34
代码行
4
导出符号
1
热点循环
2
风险项
结构洞察
INFO单内核 stencil 设计,__constant__ 权重 + __restrict__ 指针提示无别名。
INFOleapfrog 时间步进在 L31solver.cpp 的 swap 保持一致。
风险与建议
WARN每网格点 24 次全局读;建议共享内存 tile 以削减 4/5 访存。
WARN8 阶模板展开可能引发寄存器溢出,建议 __launch_bounds__(128) 并观察占用率。
正确性核验
OKhalo guard 与 8 阶模板索引范围一致;跳界处理正确。
main src/kernel.cu Ln 26, Col 1UTF-8LFC++ / CUDA空格: 2