← 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.

Parallel hardware creates opportunities, but not every workload benefits equally. The task was to implement three workloads, measure their full execution cost and understand where the time went.

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

Match the implementation to the workload.

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

02

Work with the GPU memory hierarchy.

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

03

Measure more than the kernel.

Include allocation, host–device transfer, execution and cleanup. The histogram example is especially useful: OpenMP can outperform end-to-end CUDA when overhead dominates.

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.

04 / SUMMARY

The comparison is only meaningful when transfer, allocation and workload-specific behavior are included.
Open repository
NEXT PROJECT / 03

Android property management.

ReCoLA / Android property management