← ALL WORK

02 / Systems / 2026

OpenMP and CUDA implementations.

Count Gliders / Histogram / Emboss

CONTRIBUTION

Individual coursework

BUILT WITH
C/C++CUDAOpenMPNsight
View source

01 / SCOPE

Problem and
scope.

Count Gliders counts 3 × 3 patterns in a binary grid; Histogram groups integer values into bins; Emboss applies a 3 × 3 image convolution. I implemented OpenMP and CUDA versions of each supplied serial reference, checked their outputs and profiled execution with Nsight.

MY ROLE

I authored the OpenMP and CUDA implementations within a supplied coursework framework. The original serial reference and assignment harness were supplied.

02 / IMPLEMENTATION

Implementation
details.

  1. 01Serial reference
  2. 02OpenMP / CUDA
  3. 03Verify outputs
  4. 04Profile
  5. 05Compare end-to-end
01

Workload-specific algorithms.

Use bit-mask lookup tables and reductions for Count Gliders, private histograms for contention control, and two-dimensional thread mapping for image convolution.

02

CUDA memory and thread layout.

Use constant memory, warp ballot/popcount, grid-stride loops and shared-memory accumulation where the access patterns support them.

03

End-to-end timing.

Include allocation, host–device transfer, execution and cleanup. In the submitted five-million-value histogram comparison, OpenMP took 0.671 ms and CUDA took 2.606 ms including overhead.

03 / RESULTS

Results.

COMPARISON

Execution time by workload.

Serial CPU283.804 ms
CUDA1.186 ms
Serial CPU: 283.804 ms · CUDA: 1.186 ms.2048 × 2048 grid · End-to-end timing

Historical submitted measurements, not a benchmark running in your browser. Bar lengths use the same linear scale within each comparison; switching workloads changes the scale.

Submitted measurements include 2048 × 2048 Count Gliders and Emboss workloads plus five-million-value Histogram runs, using a Release build and 100 iterations on a Ryzen 7600X3D and RTX 5060. End-to-end timings include transfer/allocation costs. These historical results have not been rerun for this website.

Context & limitations

Performance is hardware- and workload-specific. The published demonstration harness was added later; it should not be confused with the original supplied assessment framework.

NEXT PROJECT / 03

Android property management.

ReCoLA / Android property management