How koaie/apt-cuda-cw works
This coursework repository benchmarks CPU and single-GPU implementations of floating-point histograms, with parallel C and Fortran versions. The principal workflow is to load bin edges and data, compute CPU and GPU histograms, compare results, time runs, and write histogram output. The sampled C sources establish the CPU algorithm and file I/O; the README documents the benchmark and GPU workflow, but the benchmark and GPU implementation bodies were not sampled, so their internal calls and data transfers are not expanded.
Main entry points: bench.cu C benchmark · bench.cuf Fortran benchmark · hist_gpu.cu C GPU histogram · hist_gpu.cuf Fortran GPU histogram
Components 12
Input and output
- Data and bins
- C file I/O
c/io.c - Fortran file I/O
fortran/io.f95 - Histogram output
Histogram implementations
- C CPU histogram
c/hist_cpu.c - C GPU histogram
c/hist_gpu.cu - Fortran CPU histogram
fortran/hist_cpu.f95 - Fortran GPU histogram
fortran/hist_gpu.cuf
Benchmark workflow
- C benchmark
c/bench.cu - Fortran benchmark
fortran/bench.cuf
Other components
- User
- NVIDIA GPU
Connections 14
- User → C benchmark: runs
- User → Fortran benchmark: runs
- Data and bins → C file I/O: reads
- Data and bins → Fortran file I/O: reads
- C benchmark → C file I/O: uses I/O
- C benchmark → C CPU histogram: computes CPU
- C benchmark → C GPU histogram: computes GPU
- C GPU histogram → NVIDIA GPU: executes on
- C benchmark → Histogram output: writes result
- Fortran benchmark → Fortran file I/O: uses I/O
- Fortran benchmark → Fortran CPU histogram: computes CPU
- Fortran benchmark → Fortran GPU histogram: computes GPU
- Fortran GPU histogram → NVIDIA GPU: executes on
- Fortran benchmark → Histogram output: writes result