RunPod Debug Tests - Agent 5
Purpose: Minimal reproduction tests to isolate RunPod training crash
Status: ✅ Ready for deployment testing (15 minutes)
Quick Navigation
🚀 Start Here
- QUICK_START.md - 15-minute deployment test guide
📚 Full Documentation
- AGENT_05_COMPLETE.md - Complete agent report and summary
- DEPLOY_TESTS.md - Comprehensive deployment guide with troubleshooting
- AGENT_05_MINIMAL_REPRODUCTION.md - Technical analysis and test strategy
- SUMMARY.md - Executive summary
🔧 Test Binaries
- test1_hello (3.6 MiB) - Minimal Rust binary, no dependencies
- test2_cuda_check (3.7 MiB) - CUDA environment checks
- Location:
s3://se3zdnb5o4/debug_tests/(uploaded ✅) - Pod access:
/runpod-volume/debug_tests/
📝 Source Code
- test1_hello.rs - Minimal hello world
- test2_cuda_check.rs - CUDA detection test
- test3_candle_device.rs - Candle device (unbuilt, CUDA 13.0 blocked)
- test4_parquet_read.rs - Parquet reading (unbuilt, CUDA 13.0 blocked)
- test5_tft_minimal.rs - TFT model (unbuilt, CUDA 13.0 blocked)
What This Agent Discovered
🔥 Critical Finding: CUDA 13.0 Incompatibility
Problem: Local machine has CUDA 13.0, but cudarc (Candle's CUDA wrapper) only supports up to CUDA 12.6.
Impact: Cannot build Candle-based tests locally. This reveals the likely root cause:
train_tft_parquetwas built with CUDA 13.0 libraries locally- RunPod GPUs use CUDA 12.x runtime
- Binary crashes due to CUDA version mismatch
Hypothesis: Building train_tft_parquet directly on RunPod (with native CUDA 12.x) will work.
How to Validate
Step 1: Run Test Binaries (2 minutes)
# Create RunPod pod, attach volume se3zdnb5o4, SSH in
# Test 1 (should work)
chmod +x /runpod-volume/debug_tests/test1_hello
/runpod-volume/debug_tests/test1_hello
# Test 2 (should work)
chmod +x /runpod-volume/debug_tests/test2_cuda_check
/runpod-volume/debug_tests/test2_cuda_check
Step 2: Build on RunPod (10 minutes)
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
# Clone and build
cd /workspace
git clone <repo-url>
cd foxhunt/ml
cargo build --release --example train_tft_parquet --features cuda
# Test
../target/release/examples/train_tft_parquet \
--parquet-file /runpod-volume/test_data/ES_FUT_180d.parquet \
--epochs 1
If this works: ✅ CUDA mismatch confirmed
Expected Outcomes
Scenario A: Tests 1-2 work, native build works
Conclusion: CUDA 13.0 vs 12.x mismatch confirmed
Solution: Always build on RunPod or use CUDA 12.x Docker
Action: Update deployment docs, create Dockerfile
Scenario B: Tests 1-2 work, native build fails
Conclusion: Missing dependencies or configuration
Solution: Install missing packages
Action: Update Dockerfile with dependencies
Scenario C: Test 1 crashes
Conclusion: Fundamental runtime incompatibility
Solution: Different base image or static linking
Action: Try alpine or musl target
Scenario D: Test 2 crashes but test 1 works
Conclusion: CUDA driver/runtime issue
Solution: Use CUDA-enabled base image
Action: Switch to nvidia/cuda image
Files Overview
| File | Size | Description |
|---|---|---|
| QUICK_START.md | 1.9 KB | Fast 15-min deployment guide |
| AGENT_05_COMPLETE.md | 9.8 KB | Complete agent report |
| DEPLOY_TESTS.md | 5.8 KB | Comprehensive deployment guide |
| AGENT_05_MINIMAL_REPRODUCTION.md | 6.2 KB | Technical analysis |
| SUMMARY.md | 4.1 KB | Executive summary |
| test1_hello | 3.6 MiB | Minimal test binary (uploaded) |
| test2_cuda_check | 3.7 MiB | CUDA test binary (uploaded) |
| README.md | This file | Navigation index |
Key Insights
- CUDA versions are NOT interchangeable - ML binaries must match deployment CUDA version
- Systematic debugging works - Even failed builds revealed root cause
- Minimal tests = fast validation - 15 minutes to confirm hypothesis
- Build environment matters - Local CUDA 13.0 ≠ RunPod CUDA 12.x
Next Steps
- User: Run
QUICK_START.mddeployment tests (15 min) - Agent 6: Analyze results and implement solution based on findings
- Production: Update deployment process with CUDA version requirements
Time Investment
- Binary creation: 15 min
- Build investigation: 20 min
- S3 upload: 5 min
- Documentation: 20 min
- Total: 60 min
Deliverables: 2 test binaries (uploaded), 8 documentation files (28 KB), actionable hypothesis
Agent 5 Status: ✅ COMPLETE - Ready for validation testing