Commit Graph

1 Commits

Author SHA1 Message Date
Jukka Aho 7f9e382a40 feat(demos): Add GPU-only demonstration (simplified single-GPU test)
New 203-line GPU-only demonstration (simplified without MPI complexity):

Setup and validation (lines 1-52):
- Checks for CUDA availability, exits if not found
- Reports GPU model and memory
- Sets up problem: 10000 nodes, 1000 elements
- Type-stable data: nodes (Float64), connectivity (Int), E, ν

GPU kernel (lines 54-120):
- assemble_element_kernel! for CUDA
- Type-stable: Float64, Int32, CuDeviceMatrix/Vector
- No allocations in kernel
- Computes simplified assembly: K_local = E * (1-ν²)

Execution (lines 122-170):
- Transfers data to GPU (nodes, connectivity)
- Reports bytes transferred
- Launches kernel with thread blocks
- Transfers results back from GPU

Verification (lines 172-203):
- Compares computed vs expected values
- Reports success/failure
- Key achievements summary:
  * Type-stable kernel compiled
  * Fast GPU memory transfer (typed arrays)
  * Zero allocations in kernel
- Why it matters: Dict-based storage CANNOT compile for GPU
- Conclusion: type stability required for modern HPC

Purpose: Simpler test than full MPI version, focuses on GPU capability
Run: julia demos/gpu_only_demo.jl (requires CUDA GPU)
2025-11-09 10:51:41 +02:00